@charset "utf-8";

.source-header-hero { --cream: var(--yr-cream); --green: #2F5943; --green-deep: #274C39; --orange: #C4511A; --ink: #23301F; --ink-soft: #3A4535; }

.source-header-hero, .source-header-hero * { margin: 0px; padding: 0px; box-sizing: border-box; }

.source-header-hero .header { display: flex; align-items: center; gap: 24px; padding: 14px 24px 14px 32px; background: rgb(255, 255, 255); position: relative; z-index: 10; }

.source-header-hero .logo { font-size: 22px; font-weight: 700; letter-spacing: 0.06em; white-space: nowrap; }

.source-header-hero .logo .corp { font-size: 13px; font-weight: 600; margin-right: 2px; }

.source-header-hero .nav { display: flex; gap: 28px; margin-left: auto; align-items: center; }

.source-header-hero .nav a { color: var(--ink); text-decoration: none; font-size: 14px; font-weight: 500; letter-spacing: 0.04em; white-space: nowrap; }

.source-header-hero .nav a:hover { color: var(--green); }

.source-header-hero .header-btns { display: flex; gap: 10px; margin-left: 20px; }

.source-header-hero .btn-recruit, .source-header-hero .btn-consult { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 700; letter-spacing: 0.03em; padding: 12px 18px; border-radius: 4px; text-decoration: none; white-space: nowrap; }

.source-header-hero .btn-recruit { background: var(--green); color: rgb(255, 255, 255); }

.source-header-hero .btn-recruit:hover { background: rgb(58, 107, 82); }

.source-header-hero .btn-consult { background: var(--orange); color: rgb(255, 255, 255); }

.source-header-hero .btn-consult:hover { background: rgb(217, 95, 36); }

.source-header-hero .btn-icon { width: 17px; height: 17px; flex-shrink: 0; }

.source-header-hero .hero { position: relative; height: 840px; overflow: hidden; }

.source-header-hero .hero-photo { position: absolute; inset: 0px; width: 100%; height: 100%; object-fit: cover; background: rgb(109, 122, 95); }

.source-header-hero .hero-panel { position: absolute; top: 0px; left: 0px; height: 100%; width: 47%; min-width: 600px; background: transparent; padding: 48px 150px 40px 56px; display: flex; flex-direction: column; overflow: visible; }

.source-header-hero .hero-panel::before { content: ""; position: absolute; inset: 0px; z-index: 1; background: var(--cream); clip-path: polygon(0 0, 81% 0, 100% 39%, 81% 100%, 0 100%); pointer-events: none; }

.source-header-hero .hero-panel > * { position: relative; z-index: 2; }

.source-header-hero .hero-title { font-size: 40px; white-space: nowrap; font-weight: 800; line-height: 1.5; letter-spacing: 0.06em; color: var(--ink); }

.source-header-hero .hero-lead { margin-top: 22px; font-size: 15px; line-height: 1.9; letter-spacing: 0.05em; color: var(--ink-soft); font-weight: 500; }

.source-header-hero .hero-lead + .hero-lead { margin-top: 16px; }

.source-header-hero .hero-features { display: flex; flex-wrap: wrap; gap: 18px 40px; margin-top: 26px; }

.source-header-hero .feature { display: flex; align-items: center; gap: 12px; font-size: 13.5px; font-weight: 700; line-height: 1.6; letter-spacing: 0.04em; color: var(--ink); }

.source-header-hero .feature > div { white-space: nowrap; }

.source-header-hero .feature .svg-asset { width: 34px; height: 34px; flex-shrink: 0; }

.source-header-hero .hero-cta { margin-top: 24px; align-self: flex-start; display: inline-flex; align-items: center; justify-content: space-between; gap: 48px; background: var(--orange); color: rgb(255, 255, 255); text-decoration: none; font-size: 16px; font-weight: 700; letter-spacing: 0.08em; padding: 18px 28px; border-radius: 4px; min-width: 320px; z-index: 4; }

.source-header-hero .hero-cta:hover { background: rgb(217, 95, 36); }

.source-header-hero .hero-cta .arrow { font-size: 18px; }

.source-header-hero .hero-band { position: absolute; left: 0px; right: 0px; bottom: 0px; z-index: 3; pointer-events: none; }

.source-header-hero .hero-band .ridge { position: relative; z-index: 1; display: block; width: 100%; height: auto; }

.source-header-hero .hero-band .hero-band-illustration { position: absolute; inset: 0px; z-index: 2; display: block; width: 100%; height: 100%; object-fit: contain; object-position: right bottom; mix-blend-mode: multiply; opacity: 0.42; -webkit-mask-image: url("https://yoshiokaringyo.co.jp/system_panel/uploads/images/20260721170158560514.svg"); mask-image: url("https://yoshiokaringyo.co.jp/system_panel/uploads/images/20260721170158560514.svg"); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }

.source-header-hero .band-script { position: absolute; right: 56px; bottom: 32px; z-index: 4; font-family: Georgia, "Times New Roman", serif; font-style: italic; color: rgba(255, 255, 255, 0.9); font-size: 21px; line-height: 1.7; text-align: right; letter-spacing: 0.04em; }

@media (max-width: 1180px) {
  .source-header-hero .nav { display: none; }
}

@media (max-width: 860px) {
  .source-header-hero .header { flex-wrap: wrap; }

  .source-header-hero .header-btns { margin-left: auto; }

  .source-header-hero .btn-recruit, .source-header-hero .btn-consult { font-size: 12px; padding: 10px 12px; }

  .source-header-hero .hero { height: auto; min-height: 0px; background: var(--cream); }

  .source-header-hero .hero-photo { position: relative; height: 320px; display: block; }

  .source-header-hero .hero-panel { position: relative; width: 100%; min-width: 0px; height: auto; padding: 40px 24px; }

  .source-header-hero .hero-panel::before { clip-path: none; }

  .source-header-hero .hero-title { font-size: 28px; white-space: normal; }

  .source-header-hero .hero-features { flex-direction: column; gap: 16px; }

  .source-header-hero .hero-cta { min-width: 0px; width: 100%; }

  .source-header-hero .hero-band { position: relative; }

  .source-header-hero .band-script { position: relative; right: auto; bottom: auto; padding: 0px 24px 32px; text-align: left; }
}

.source-header-hero { font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; color: #23301f; background: #fff; }

.source-about { --green: #2f4a35; --green-deep: #263c2b; --cream: var(--yr-cream); --heading: #2f4a35; --body: #4b4a44; }

.source-about, .source-about * { box-sizing: border-box; margin: 0px; padding: 0px; }

.source-about, .source-about { background: var(--yr-cream); }

.source-about { font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", sans-serif; display: flex; justify-content: center; padding: 24px; }

.source-about .stage { position: relative; width: 1024px; background: var(--cream); overflow: hidden; aspect-ratio: 1024/682; }

.source-about .wave-top, .source-about .wave-bottom { position: absolute; left: 0px; z-index: 1; pointer-events: none; }

.source-about .wave-top { top: 0px; width: 50%; }

.source-about .wave-bottom { bottom: 0px; width: 100%; }

.source-about .content { position: relative; z-index: 3; display: grid; grid-template-columns: 0.92fr 1.08fr; gap: 40px; padding: 52px 0px 60px 60px; height: 100%; }

.source-about .left { display: flex; flex-direction: column; padding-top: 26px; }

.source-about .headline { font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif CJK JP", "Noto Serif JP", serif; color: var(--heading); font-weight: 500; font-size: 30px; line-height: 1.55; letter-spacing: 0.03em; }

.source-about .divider { width: 40px; height: 2px; background: rgb(185, 180, 165); margin: 26px 0px 24px; }

.source-about .lead p { color: var(--body); font-size: 13.5px; line-height: 2.05; letter-spacing: 0.02em; margin-bottom: 18px; }

.source-about .btn { margin-top: 14px; align-self: flex-start; display: flex; align-items: center; justify-content: flex-start; gap: 16px; background: var(--green); color: var(--cream); font-size: 14px; letter-spacing: 0.08em; padding: 17px 26px; text-decoration: none; min-width: 0; }

.source-about .btn .arrow { font-size: 15px; }

.source-about .right { display: flex; flex-direction: column; gap: 10px; padding-top: 4px; }

.source-about .hero { width: 100%; height: 63%; overflow: hidden; }

.source-about .hero img { width: 100%; height: 100%; object-fit: cover; display: block; }

.source-about .thumbs { display: flex; flex: 1 1 0%; }

.source-about .thumbs .t { flex: 1 1 0%; overflow: hidden; }

.source-about .thumbs .t + .t { margin-left: -45px; }

.source-about .thumbs .t:nth-child(1) { clip-path: polygon(var(--thumb-slant) 0, 100% 0, calc(100% - var(--thumb-slant)) 100%, 0 100%); border-bottom-left-radius: 24px; }

.source-about .thumbs .t:nth-child(2) { clip-path: polygon(var(--thumb-slant) 0, 100% 0, calc(100% - var(--thumb-slant)) 100%, 0 100%); }

.source-about .thumbs .t:nth-child(3) { clip-path: polygon(var(--thumb-slant) 0, 100% 0, 100% 100%, 0 100%); }

.source-about .thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }

.source-carrier { --green-hero: #123527; --green-hero-dark: #173525; --green-bottom: #123527; --orange: #c05a1e; --cream: #efe9dc; --card-title: #2b2b28; --card-body: #5a564f; --blue: #2f86d8; }

.source-carrier, .source-carrier * { margin: 0px; padding: 0px; box-sizing: border-box; }

.source-carrier { font-family: "Noto Serif CJK JP", "Noto Serif JP", serif; background: rgb(14, 42, 30); color: rgb(255, 255, 255); }

.source-carrier .page { max-width: 1024px; margin: 0px auto; }

.source-carrier .hero { position: relative; height: 482px; overflow: hidden; background: var(--green-hero); }

.source-carrier .hero-photo { position: absolute; top: 0px; left: 0px; width: 57%; height: 100%; object-fit: cover; object-position: center; border-radius: 0 20% 55% 26% / 0 50% 50% 30%; }

.source-carrier .hero-content { position: absolute; top: 0px; right: 0px; width: 46%; height: 100%; padding: 56px 56px 56px 40px; display: flex; flex-direction: column; justify-content: center; z-index: 2; }

.source-carrier .hero-title { font-size: 39px; font-weight: 600; line-height: 1.4; letter-spacing: 0.03em; margin-bottom: 26px; }

.source-carrier .hero-rule { width: 56px; height: 2px; background: var(--orange); margin-bottom: 26px; }

.source-carrier .hero-body { font-size: 16px; line-height: 2; color: rgba(255, 255, 255, 0.9); letter-spacing: 0.02em; }

.source-carrier .interview { background: var(--green-bottom); padding: 52px 56px 60px; }

.source-carrier .section-head { display: flex; align-items: center; gap: 24px; margin-bottom: 40px; }

.source-carrier .section-head h2 { font-size: 24px; font-weight: 600; letter-spacing: 0.14em; white-space: nowrap; }

.source-carrier .section-head .line { flex: 1 1 0%; height: 1px; background: rgba(255, 255, 255, 0.5); }

.source-carrier .cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 26px; margin-bottom: 46px; }

.source-carrier .card { background: var(--cream); border-radius: 6px; padding: 30px 26px 34px; min-height: 210px; }

.source-carrier .card h3 { font-size: 20px; font-weight: 600; line-height: 1.5; color: var(--card-title); margin-bottom: 14px; }

.source-carrier .card .name { font-size: 15px; color: var(--card-title); margin-bottom: 20px; }

.source-carrier .card .name { text-align: right; }

.source-carrier .card p { font-size: 13.5px; line-height: 1.9; color: var(--card-body); }

.source-carrier .cta-wrap { text-align: center; }

.source-carrier .cta { display: inline-flex; align-items: center; gap: 40px; background: var(--orange); color: rgb(255, 255, 255); font-size: 16px; letter-spacing: 0.06em; padding: 18px 44px; border-radius: 3px; text-decoration: none; }

.source-experience { --green-deep: #173f2e; --green-dark: #1c4a37; --green-title: #1d4c39; --green-soft: #dfe8d5; --cream: var(--yr-cream); --card: #fdfbf4; --text: #3c4640; --muted: #57635b; --serif: "Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif; --sans: "Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; }

.source-experience, .source-experience * { margin: 0px; padding: 0px; box-sizing: border-box; }

.source-experience { background: var(--green-deep); font-family: var(--sans); color: var(--text); }

.source-experience { position: relative; z-index: 100; }

.source-experience .topbar { height: 56px; background: var(--green-deep); border-bottom: 2px solid rgb(109, 179, 201); }

.source-experience .sheet { position: relative; background: var(--cream); border-radius: 0 0 18px 18px; overflow: hidden; padding: 72px 48px 0px; }

.source-experience .inner { max-width: 1080px; margin: 0px auto; position: relative; }

.source-experience .hero { position: relative; min-height: 300px; }

.source-experience .hero-photo { position: absolute; top: -72px; right: -48px; width: 46%; min-width: 380px; height: 340px; overflow: hidden; }

.source-experience .hero-photo { z-index: 10; }

.source-experience .hero-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

.source-experience .hero-photo .hero-photo-shaped { object-fit: contain; object-position: right top; }

.source-experience .hero-photo .hero-photo-plain { display: none; }

.source-experience .hero-copy { max-width: 58%; padding-top: 24px; }

.source-experience .hero-copy h2 { font-family: var(--serif); font-weight: 600; font-size: 38px; line-height: 1.55; letter-spacing: 0.04em; white-space: nowrap; color: var(--green-title); }

.source-experience .hero-copy p { margin-top: 28px; font-size: 14px; line-height: 2.1; letter-spacing: 0.05em; color: var(--muted); }

.source-experience .cards { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; margin-top: 36px; }

.source-experience .card { background: var(--card); border-radius: 14px; padding: 0px; overflow: hidden; box-shadow: 0 1px 2px rgba(23,63,46,.06),0 6px 18px rgba(23,63,46,.06); display: flex; flex-direction: column; }

.source-experience .card-head { display: flex; align-items: flex-start; gap: 12px; min-height: 88px; padding: 22px 18px 0px; }

.source-experience .badge-circle { flex: 0 0 52px; width: 52px; height: 52px; border-radius: 50%; background: var(--green-dark); display: flex; align-items: center; justify-content: center; }

.source-experience .badge-circle .svg-asset { width: 28px; height: 28px; }

.source-experience .head-text .num { font-family: var(--serif); font-style: italic; font-size: 22px; color: rgb(138, 143, 126); display: block; line-height: 1; margin-bottom: 8px; }

.source-experience .head-text h3 { font-family: var(--serif); font-weight: 600; font-size: 15.5px; line-height: 1.5; letter-spacing: 0.02em; color: var(--green-title); }

.source-experience .card-body { font-size: 13px; line-height: 1.95; letter-spacing: 0.03em; color: var(--muted); margin: 10px 0px 16px; padding: 0px 20px; }

.source-experience .card-photo { width: 100%; aspect-ratio: 4/3; overflow: hidden; margin-top: auto; }

.source-experience .card-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

.source-experience .cta-wrap { display: flex; justify-content: center; margin: 44px 0px 0px; position: relative; z-index: 2; }

.source-experience .cta { font-family: var(--serif); font-size: 15px; letter-spacing: 0.12em; color: rgb(242, 239, 228); background: var(--green-dark); text-decoration: none; border-radius: 999px; padding: 16px 56px; display: inline-flex; align-items: center; gap: 28px; transition: background .2s; }

.source-experience .cta:hover { background: rgb(15, 53, 39); }

.source-experience .cta .arrow { font-family: var(--sans); }

.source-experience .deco { position: relative; margin-top: -30px; height: 190px; pointer-events: none; }

.source-experience .deco .svg-asset { position: absolute; bottom: 0px; left: 0px; width: 100%; height: auto; display: block; }

.source-experience .deco .deco-illustration { position: absolute; bottom: 6px; height: auto; display: block; mix-blend-mode: multiply; opacity: 0.44; z-index: 3; }

.source-experience .deco .deco-illustration--left { left: 0px; width: min(735px,54vw); }

.source-experience .deco .deco-illustration--right { right: 0px; width: min(490px,36vw); }

.source-experience .deco .svg-asset { z-index: 2; }

.source-experience .footer-wave { background: var(--green-deep); height: 56px; }

@media (max-width:960px) {
  .source-experience .sheet { padding: 56px 20px 0px; }

  .source-experience .hero-photo { position: static; width: 100%; min-width: 0px; height: 240px; border-radius: 18px; margin-bottom: 28px; }

  .source-experience .hero-photo .hero-photo-shaped { display: none; }

  .source-experience .hero-photo .hero-photo-plain { display: block; }

  .source-experience .hero-copy { max-width: 100%; padding-top: 0px; }

  .source-experience .hero-copy h2 { font-size: 28px; white-space: normal; }

  .source-experience .cards { grid-template-columns: 1fr 1fr; }
}

@media (max-width:560px) {
  .source-experience .cards { grid-template-columns: 1fr; }

  .source-experience .hero-copy h2 { font-size: 22px; }
}

.source-flow { --cream: var(--yr-cream); --cream2: #EFE7DA; --ink: #2C2C2B; --gray: #6f6b64; --dgreen: #2f4a2b; --green: #4d6b3c; --greensoft: #e7efe1; --orange: #e07b2b; --white: #ffffff; --line: #eae4d8; }

.source-flow, .source-flow * { box-sizing: border-box; margin: 0px; padding: 0px; }

.source-flow { font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "Meiryo", system-ui, sans-serif; background: var(--cream); color: var(--ink); line-height: 1.6; }

.source-flow .wrap { max-width: 1024px; margin: 0px auto; padding: 40px 24px 0px; position: relative; overflow: hidden; }

.source-flow .top { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start; }

.source-flow .hero { position: relative; padding-top: 8px; min-height: 360px; }

.source-flow .hero h2 { font-size: 33px; line-height: 1.3; font-weight: 800; color: var(--ink); letter-spacing: 0.5px; position: relative; z-index: 5; max-width: 250px; }

.source-flow .hero h2 .sm { display: inline; font-style: normal; font-size: 22px; }

.source-flow .hero h2 .hl { position: relative; display: inline-block; font-style: normal; }

.source-flow .hero h2 .hl::after { content: ""; position: absolute; left: -2px; right: -2px; bottom: 6px; height: 12px; background: rgb(242, 201, 138); z-index: -1; border-radius: 2px; }

.source-flow .hero .lead { font-size: 13px; color: var(--gray); line-height: 1.9; margin-top: 22px; max-width: 250px; position: relative; z-index: 5; }

.source-flow .hero .lead { padding-bottom: 32px; }

.source-flow .photo-wrap { position: absolute; top: 8px; right: -12px; width: 250px; height: 342px; z-index: 2; }

.source-flow .photo { position: absolute; right: 0px; top: 0px; width: 236px; height: 342px; z-index: 2; }

.source-flow .photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; display: block; }

.source-flow .photo img.shaped-photo { object-fit: fill; }

.source-flow .bubble { position: absolute; top: 24px; left: 26px; width: 206px; z-index: 4; color: var(--dgreen); font-size: 12.5px; font-weight: 700; line-height: 1.7; transform: rotate(-4deg); text-align: center; font-family: "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif; }

.source-flow .bubble .u { display: inline-block; border-bottom: 2px solid rgb(207, 155, 90); padding-bottom: 1px; }

.source-flow .worries { background: var(--white); border-radius: 14px; padding: 26px 26px 22px; box-shadow: 0 4px 16px rgba(0,0,0,.05); position: relative; }

.source-flow .worries .tag { position: absolute; top: -15px; left: 50%; transform: translateX(-50%); background: var(--dgreen); color: rgb(255, 255, 255); font-size: 14px; font-weight: 700; padding: 7px 26px; border-radius: 8px; white-space: nowrap; letter-spacing: 0.5px; }

.source-flow .wgrid { display: grid; grid-template-columns: 1fr; gap: 18px 22px; margin-top: 16px; }

.source-flow .witem { display: flex; align-items: center; gap: 11px; }

.source-flow .icircle { flex: 0 0 46px; width: 46px; height: 46px; border-radius: 50%; background: var(--greensoft); display: flex; align-items: center; justify-content: center; }

.source-flow .icircle .svg-asset { width: 25px; height: 25px; }

.source-flow .witem p { font-size: 12.5px; font-weight: 600; color: rgb(58, 58, 56); line-height: 1.45; }

.source-flow .wgrid { position: relative; }

.source-flow .wgrid::before { content: none; }

.source-flow .flow { margin-top: 60px; background: var(--white); border-radius: 16px; padding: 44px 30px 34px; position: relative; box-shadow: 0 4px 16px rgba(0,0,0,.05); }

.source-flow .flow .tag { position: absolute; top: -17px; left: 50%; transform: translateX(-50%); background: var(--dgreen); color: rgb(255, 255, 255); font-size: 15px; font-weight: 700; padding: 8px 30px; border-radius: 8px; white-space: nowrap; }

.source-flow .steps { display: grid; grid-template-columns: repeat(6,1fr); gap: 6px; align-items: start; }

.source-flow .step { text-align: center; position: relative; padding: 0px 4px; }

.source-flow .step .num { width: 26px; height: 26px; border-radius: 50%; background: var(--dgreen); color: rgb(255, 255, 255); font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0px auto 12px; }

.source-flow .step .sicon { height: 56px; display: flex; align-items: flex-end; justify-content: center; margin-bottom: 12px; }

.source-flow .step .sicon .svg-asset { width: 46px; height: 46px; }

.source-flow .step h4 { font-size: 14px; font-weight: 700; color: var(--dgreen); line-height: 1.4; margin-bottom: 8px; }

.source-flow .step p { width: max-content; max-width: 100%; margin: 0px auto; font-size: 11px; color: var(--gray); line-height: 1.6; white-space: nowrap; }

.source-flow .step .arrow { position: absolute; top: 64px; right: -9px; color: var(--orange); font-size: 18px; font-weight: 900; z-index: 5; }

.source-flow .step:last-child .arrow { display: none; }

.source-flow .cta { text-align: center; padding: 44px 0px 90px; position: relative; }

.source-flow .cta .catch { font-size: 15px; color: rgb(90, 87, 80); font-weight: 600; margin-bottom: 22px; display: inline-flex; align-items: center; gap: 14px; }

.source-flow .cta .catch::before, .source-flow .cta .catch::after { content: ""; width: 22px; height: 1.5px; background: rgb(154, 148, 136); transform: rotate(70deg); display: inline-block; }

.source-flow .cta .catch::before { transform: rotate(-70deg); }

.source-flow .btn { display: inline-flex; align-items: center; justify-content: space-between; gap: 40px; min-width: 320px; background: var(--orange); color: rgb(255, 255, 255); font-size: 16px; font-weight: 500; letter-spacing: 0.06em; padding: 18px 44px; border-radius: 3px; text-decoration: none; }

.source-flow .btn .svg-asset { width: 20px; height: 20px; }

.source-flow .trees { position: absolute; right: 12px; bottom: 10px; }

.source-flow .trees .trees-illustration { display: block; width: 100px; height: auto; mix-blend-mode: multiply; opacity: 0.5; }

@media (min-width: 768px) {
  .source-flow .trees { right: 20px; bottom: 24px; }

  .source-flow .trees .trees-illustration { width: 180px; }
}

.source-flow .bottomband { position: absolute; left: -40px; bottom: 0px; width: 523.4px; height: 125px; z-index: 0; }

.source-flow .bottomband img { display: block; width: 100%; height: 100%; }

.source-jisseki, .source-jisseki * { margin: 0px; padding: 0px; box-sizing: border-box; }

.source-jisseki { --bg: var(--yr-cream); --ink: #163427; --green-deep: #143a2b; --green-tag: #2f4a3a; --gray: #6f6b64; --orange: #c8641f; --card-border: #e5e0d5; }

.source-jisseki { background: var(--bg); font-family: "Noto Sans JP", sans-serif; color: var(--ink); }

.source-jisseki .section { position: relative; max-width: 1024px; margin: 0px auto; padding: 70px 56px 90px; overflow: hidden; }

.source-jisseki .deco { position: absolute; inset: 0px; width: 100%; height: 100%; z-index: 1; pointer-events: none; }

.source-jisseki .content { position: relative; z-index: 2; }

.source-jisseki .top { display: flex; justify-content: space-between; gap: 48px; margin-bottom: 54px; }

.source-jisseki .headline-wrap { display: flex; align-items: center; gap: 18px; padding-top: 10px; }

.source-jisseki .tree-ill { flex: 0 0 auto; width: 74px; height: auto; opacity: 0.9; }

.source-jisseki .jisseki-catch { font-family: "Noto Serif JP", serif; font-weight: 600; color: var(--green-deep); font-size: 37px; line-height: 1.45; letter-spacing: 1px; white-space: nowrap; }

.source-jisseki .intro { flex: 0 1 auto; width: fit-content; max-width: 320px; margin-left: auto; margin-right: 56px; padding-top: 8px; text-align: left; }

.source-jisseki .intro h3 { font-family: "Noto Serif JP", serif; font-weight: 600; color: var(--green-deep); font-size: 21px; margin-bottom: 16px; }

.source-jisseki .intro p { font-size: 13.5px; line-height: 2.05; color: rgb(74, 70, 63); }

.source-jisseki .cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }

.source-jisseki .card { background: rgb(253, 252, 250); border: 1px solid var(--card-border); border-radius: 8px; padding: 26px 24px 30px; }

.source-jisseki .tag { display: inline-block; background: var(--green-tag); color: rgb(255, 255, 255); font-size: 11px; font-weight: 500; letter-spacing: 0.5px; padding: 5px 13px; border-radius: 4px; margin-bottom: 15px; }

.source-jisseki .card h3 { font-family: "Noto Serif JP", serif; font-weight: 600; font-size: 17px; color: rgb(31, 43, 35); margin-bottom: 20px; letter-spacing: 0.5px; }

.source-jisseki .block { margin-bottom: 16px; }

.source-jisseki .block:last-child { margin-bottom: 0px; }

.source-jisseki .block .lbl { font-size: 13px; font-weight: 700; color: rgb(31, 43, 35); margin-bottom: 6px; }

.source-jisseki .block p { font-size: 12.5px; line-height: 1.75; color: rgb(86, 82, 75); }

.source-jisseki .btn-wrap { text-align: center; margin-top: 52px; }

.source-jisseki .btn { display: inline-flex; align-items: center; justify-content: center; gap: 40px; background: var(--orange); color: rgb(255, 255, 255); font-size: 15px; font-weight: 500; letter-spacing: 2px; text-decoration: none; padding: 18px 52px; border-radius: 4px; min-width: 300px; }

.source-jisseki .btn .arrow { font-size: 16px; }

.source-philosophy { --green: #33463a; --green-deep: #2c3d32; --cream: var(--yr-cream); --cream-2: #eeeadf; --panel: #e9e5d9; --text: #4a4a44; --muted: #6f6b61; }

.source-philosophy, .source-philosophy * { box-sizing: border-box; margin: 0px; padding: 0px; }

.source-philosophy { text-rendering: optimizelegibility; }

.source-philosophy { font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; color: var(--text); background: var(--cream); line-height: 1.9; }

.source-philosophy .serif { font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif; }

.source-philosophy .wrap { max-width: 1120px; margin: 0px auto; padding: 0px 24px; }

.source-philosophy .hero { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; max-width: 1180px; margin: 0px auto; }

.source-philosophy .hero__text { background: var(--cream); padding: 72px 56px 72px 8px; display: flex; flex-direction: column; justify-content: center; position: relative; overflow: hidden; }

.source-philosophy .hero__leaf { position: absolute; left: -40px; bottom: -10px; width: 220px; opacity: 0.14; pointer-events: none; }

.source-philosophy .hero h2 { font-weight: 600; color: var(--green); font-size: 44px; line-height: 1.55; letter-spacing: 0.04em; margin-bottom: 32px; position: relative; }

.source-philosophy .hero p { color: var(--muted); font-size: 14px; line-height: 2.1; letter-spacing: 0.02em; position: relative; }

.source-philosophy .hero__img { position: relative; background-size: cover; background-position: center center; min-height: 420px; }

.source-philosophy .hero__img::before { content: ""; position: absolute; inset: 0px; background: linear-gradient(to right, var(--cream) 0%, rgba(243,239,231,0.6) 8%, rgba(243,239,231,0) 22%); pointer-events: none; }

.source-philosophy .message-outer { background: var(--panel); margin: 0px auto; max-width: 1180px; border-radius: 22px 22px 0 0; padding: 56px; }

.source-philosophy .message { display: grid; grid-template-columns: 0.82fr 1fr; gap: 56px; align-items: center; max-width: none; margin: 0px; }

.source-philosophy .message__img { background-size: cover; background-position: center center; border-radius: 8px; min-height: 280px; height: 100%; }

.source-philosophy .message h3 { font-weight: 600; color: var(--green); font-size: 30px; line-height: 1.5; letter-spacing: 0.04em; margin-bottom: 26px; }

.source-philosophy .message p { color: var(--muted); font-size: 14px; line-height: 2.1; letter-spacing: 0.02em; margin-bottom: 34px; }

.source-philosophy .btn { display: inline-flex; align-items: center; justify-content: space-between; gap: 36px; min-width: 260px; padding: 16px 28px; border: 1.5px solid var(--green); border-radius: 8px; color: var(--green); background: transparent; font-size: 15px; font-weight: 500; letter-spacing: 0.06em; text-decoration: none; transition: background .2s,color .2s; }

.source-philosophy .btn:hover { background: var(--green); color: rgb(255, 255, 255); }

.source-philosophy .btn .arrow { font-size: 16px; }

@media (max-width:820px) {
  .source-philosophy .hero { grid-template-columns: 1fr; }

  .source-philosophy .hero__text { padding: 48px 24px; order: 1; }

  .source-philosophy .hero__img { order: 0; min-height: 300px; }

  .source-philosophy .hero h2 { font-size: 34px; }

  .source-philosophy .hero h2 br { display: none; }

  .source-philosophy .message-outer { padding: 40px 20px 56px; border-radius: 16px 16px 0 0; }

  .source-philosophy .message { grid-template-columns: 1fr; gap: 32px; }

  .source-philosophy .message__img { min-height: 240px; }

  .source-philosophy .message h3 { font-size: 24px; }

  .source-philosophy .btn { width: 100%; }
}

.source-philosophy .hero__img { background-image: url("https://yoshiokaringyo.co.jp/system_panel/uploads/images/20260725113814352035.jpg"); }

.source-philosophy .message__img { background-image: url("https://yoshiokaringyo.co.jp/system_panel/uploads/images/20260725113815789595.jpg"); }

@media (min-width:1024px) {
  .source-header-hero .hero-panel {
    height: 623px;
    margin-top: 46px;
    margin-bottom: 35px;
    padding-left: max(56px, calc((100vw - 1180px) / 2));
  }

  .source-about .stage {
    aspect-ratio: auto;
    min-height: 682px;
    height: auto;
  }

  .source-about .content {
    min-height: 682px;
    height: auto;
  }

  .source-about .left {
    justify-content: center;
    padding-top: 0;
    padding-bottom: 0;
  }

  .source-carrier .hero-photo {
    margin-left: -52px;
  }

  .source-experience .hero-photo {
    top: -172px;
  }

  .source-flow .top {
    align-items: center;
  }

  .source-flow .photo-wrap {
    top: 0;
    bottom: 0;
    height: auto;
  }

  .source-flow .photo {
    top: 0;
    bottom: 0;
    height: 100%;
  }

}

@media (min-width:1024px) and (max-width:1180px) {
  .source-header-hero .hero-panel {
    height: calc(100% - 46px);
    margin-bottom: 0;
  }
}

.source-flow .steps {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
}

.source-flow .step p {
  width: auto;
  white-space: normal;
}

.source-about {
  background: transparent;
  padding: 0;
}

.source-header-hero .hero,
.source-about .stage,
.source-carrier .page,
.source-experience .sheet,
.source-philosophy .hero {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.source-flow .wrap,
.source-jisseki .section {
  width: 100%;
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}

.source-about .content {
  padding-left: max(60px, calc((100vw - 1180px) / 2));
}

.source-about .thumbs {
  --thumb-slant: clamp(18px, 4vw, 57px);
}

.source-about .thumbs .t + .t {
  margin-left: -45px;
}

.source-carrier .hero-content {
  padding-right: max(56px, calc((100vw - 1180px) / 2));
}

.source-carrier .interview {
  padding-left: max(56px, calc((100vw - 1180px) / 2));
  padding-right: max(56px, calc((100vw - 1180px) / 2));
}

.source-experience .inner {
  max-width: 1180px;
}

.source-experience .hero-photo {
  right: calc((100vw - 100%) / -2);
}

.source-experience .topbar,
.source-experience .footer-wave {
  display: none;
}

.source-experience .sheet {
  border-radius: 0;
  overflow: visible;
}

.source-experience .deco {
  width: 100vw;
  margin-left: calc((100vw - 100%) / -2);
}

.source-flow .cta .catch::before {
  transform: rotate(70deg);
}

.source-flow .cta .catch::after {
  transform: rotate(-70deg);
}

.source-flow--steps .wrap,
.source-flow--cta .wrap {
  padding-top: 0;
}

.source-flow--intro .wrap {
  padding-top: 0;
}

.source-flow--cta .bottomband {
  left: calc(50% - 50vw);
  width: min(523.4px, 42vw);
  height: auto;
  aspect-ratio: 523.4 / 125;
  z-index: 1;
}

.source-flow--cta .bottomband img {
  margin-left: -162px;
  margin-bottom: -5px;
}

.source-flow--cta .wrap {
  overflow: visible;
}

.source-jisseki .tag {
  width: fit-content;
  max-width: 100%;
}

.source-philosophy .hero__text {
  padding-left: max(24px, calc((100vw - 1180px) / 2));
}

.source-philosophy {
  padding-bottom: 48px;
}

.source-philosophy .message-outer {
  width: calc(100% - 96px);
  max-width: 1180px;
  margin: 32px auto 0;
  border-radius: 22px;
}

@media (max-width:820px) {
  .source-philosophy {
    padding-bottom: 20px;
  }

  .source-philosophy .message-outer {
    width: calc(100% - 40px);
    margin-top: 20px;
    border-radius: 16px;
  }
}

@media (max-width:960px) {
  .source-flow .steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 36px;
  }

  .source-flow .step .arrow {
    display: none;
  }

  .source-jisseki .intro p br {
    display: none;
  }
}

@media (max-width:1023px) {
  .source-jisseki .top {
    flex-direction: column;
    gap: 28px;
  }

  .source-jisseki .intro {
    margin: 0;
    width: 100%;
    max-width: none;
    text-align: left;
  }
}

@media (max-width:560px) {
  .source-flow .steps {
    grid-template-columns: 1fr;
  }

  .source-jisseki .section {
    padding-left: 24px;
    padding-right: 24px;
  }

  .source-jisseki .headline-wrap {
    align-items: flex-start;
  }

  .source-jisseki .jisseki-catch {
    font-size: 27px;
    white-space: normal;
  }
}

@media (max-width: 1023px) {
  .source-about .stage {
    width: 100%;
    aspect-ratio: auto;
  }

  .source-about .content {
    display: flex;
    flex-direction: column;
    height: auto;
    padding: 40px 24px 44px;
    gap: 32px;
  }

  .source-about .left {
    padding-top: 0;
  }

  .source-about .headline {
    font-size: 24px;
  }

  .source-about .btn {
    width: 100%;
    min-width: 0;
  }

  .source-about .right {
    padding-top: 0;
    padding-bottom: 28px;
  }

  .source-about .hero {
    height: 220px;
  }

  .source-about .thumbs {
    height: 130px;
  }
}

@media (max-width: 860px) {
  .source-carrier .hero {
    height: auto;
  }

  .source-carrier .hero-photo {
    position: relative;
    width: 100%;
    height: 260px;
    border-radius: 0;
  }

  .source-carrier .hero-content {
    position: relative;
    width: 100%;
    height: auto;
    padding: 40px 24px;
  }

  .source-carrier .hero-title {
    font-size: 26px;
  }

  .source-carrier .interview {
    padding: 44px 24px 48px;
  }

  .source-carrier .cards {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-bottom: 36px;
  }
}

@media (max-width: 560px) {
  .source-experience .cta {
    padding: 14px 28px;
    gap: 14px;
    font-size: 14px;
  }
}

@media (max-width: 1023px) {
  .source-flow--intro .wrap {
    padding-top: 28px;
  }

  .source-flow .top {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .source-flow .hero {
    min-height: 0;
    padding-top: 0;
  }

  .source-flow .hero h2 {
    max-width: none;
    font-size: 26px;
  }

  .source-flow .hero h2 br {
    display: none;
  }

  .source-flow .hero h2 .sm {
    font-size: inherit;
  }

  .source-flow .hero .lead {
    max-width: none;
  }

  .source-flow .photo-wrap {
    display: none;
  }

  .source-flow .witem p br {
    display: none;
  }

  .source-flow .worries {
    padding: 26px 12px 22px;
  }

  .source-flow .wgrid {
    gap: 18px 6px;
  }

  .source-flow .witem {
    gap: 4px;
  }

  .source-flow .icircle {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
  }

  .source-flow .icircle .svg-asset {
    width: 16px;
    height: 16px;
  }

  .source-flow .witem p {
    font-size: 12px;
  }
}

@media (max-width: 560px) {
  .source-flow .steps {
    row-gap: 8px;
  }

  .source-flow .step {
    padding-bottom: 12px;
  }

  .source-flow .step .num {
    margin-bottom: 6px;
  }

  .source-flow .step .sicon {
    height: 34px;
    margin-bottom: 6px;
  }

  .source-flow .step .sicon .svg-asset {
    width: 30px;
    height: 30px;
  }

  .source-flow .step h4 {
    margin-bottom: 4px;
  }

  .source-flow .step .arrow {
    display: block;
    position: static;
    margin: 8px 0 0;
    transform: rotate(90deg);
  }
}

@media (max-width: 560px) {
  .source-flow--cta .bottomband {
    display: none;
  }

  .source-jisseki .jisseki-catch br {
    display: none;
  }

  .source-flow .btn {
    width: 100%;
    min-width: 0;
    gap: 16px;
    padding: 16px 24px;
  }
}

@media (max-width: 860px) {
  .source-jisseki .cards {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

@media (max-width: 560px) {
  .source-jisseki .headline-wrap {
    gap: 10px;
  }

  .source-jisseki .tree-ill {
    width: 36px;
  }

  .source-jisseki .jisseki-catch {
    font-size: 24px;
  }
}

*{box-sizing:border-box}

.source-header-hero .hero-features{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px!important;margin-top:18px!important}

.source-header-hero .feature>div{white-space:normal}

.source-carrier .section-head h3{font-size:20px!important;font-weight:600;letter-spacing:0.14em;white-space:nowrap}

@media (min-width:1024px){.source-header-hero .hero-panel{width:70%!important;min-width:0px!important;height:calc(100% - 46px)!important;margin-bottom:0px!important}}

@media (max-width:768px){.source-header-hero .hero-features{grid-template-columns:1fr}.source-header-hero h1,.source-about h1,.source-carrier h1,.source-experience h1,.source-flow h1,.source-jisseki h1,.source-philosophy h1{font-size:28px!important}.source-header-hero h2,.source-about h2,.source-carrier h2,.source-experience h2,.source-flow h2,.source-jisseki h2,.source-philosophy h2{font-size:24px!important}}

*{box-sizing:border-box}
