/* Version 3: a visible path from first challenge to future possibilities.
   Palette, fonts, photos and copy inherit from Version 2. */
:root{--story-ink:#193f38;--story-deep:#286455;--story-line:#a7dfba;--story-glow:#d9f986;--story-bg:#f8fcf4}
/* Full logo bounds: source alpha bbox 94..985 × 337..750 on a 1080 square. */
.site-header .brand{width:154px;height:68px;margin-right:auto;overflow:hidden}
.site-header .brand img{width:170px;max-width:none;left:-11px;top:-52px}
/* Quiet page-level progress, with numbered waypoints. */
.story-progress{position:fixed;right:19px;top:50%;z-index:30;transform:translateY(-50%);width:105px;display:flex;flex-direction:column;align-items:center;gap:12px;pointer-events:none;color:#2b6f5b;text-align:center;opacity:0;transition:opacity .3s ease}
.story-progress.has-steps{opacity:1}.story-progress-track{position:relative;display:block;width:2px;height:154px;background:#badfc6;border-radius:2px;overflow:hidden}.story-progress-fill{position:absolute;inset:0 auto auto 0;width:100%;height:var(--page-progress,0%);background:linear-gradient(#4fbbaa,#7ebd55);border-radius:2px;transition:height .16s linear}.story-progress-label{font-size:.72rem;font-weight:800;line-height:1.5;max-width:100px;min-height:2.1em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.story-progress-count{font:800 .75rem/1 Inter,"Noto Sans JP",sans-serif;letter-spacing:.08em;color:#4a9c80}
body[data-page="company"] .story-progress,body[data-page="contact"] .story-progress,body[data-page^="entry-"] .story-progress{display:none}
/* First view reads like an opening chapter. */
.home-hero{min-height:740px;grid-template-columns:51% 49%;position:relative}
.home-hero:before{content:"";position:absolute;left:4.8vw;top:0;bottom:0;width:1px;background:#ffffff7a;z-index:1}
.home-hero:after{content:"";position:absolute;left:calc(4.8vw - 5px);bottom:86px;width:11px;height:11px;border-radius:50%;background:#279b7c;border:3px solid #ecffd9;z-index:2}
.hero-copy{padding-left:max(8.3vw,calc((100vw - 1350px)/2));padding-right:5vw}.hero-copy h1{max-width:750px}.hero-image img{object-position:52% center}
.home-hero .eyebrow{display:inline-flex;gap:10px;align-items:center;padding:7px 13px;border:1px solid #73b79499;border-radius:100px;letter-spacing:.1em}
/* Home sections connect as distinct chapters without changing their copy. */
body[data-page="index"] main>.section:not(.closing){position:relative;padding-left:clamp(105px,12vw,190px)}
body[data-page="index"] main>.section:not(.closing):before{content:"";position:absolute;left:6.7vw;top:0;bottom:0;width:2px;background:linear-gradient(#b8e8c0,#73c6ac)}
body[data-page="index"] main>.section:not(.closing):after{content:"";position:absolute;left:calc(6.7vw - 8px);top:clamp(86px,8vw,145px);height:18px;width:18px;background:#b5ef8a;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #6eb79e}
body[data-page="index"] main>.section:not(.closing) .eyebrow{font-size:1.04rem;letter-spacing:.08em;color:#27866b}
body[data-page="index"] main>.section:not(.closing) h2{max-width:870px}
/* A section-specific rhythm: choose the next story at every image break. */
.split-feature{position:relative}.split-feature .split-copy{background:linear-gradient(130deg,#e9fbec,#ecfaf6)}.split-feature.reverse .split-copy{background:linear-gradient(130deg,#eef8e7,#eaf8f3)}
.split-feature .split-photo img{object-position:center}.image-banner{height:690px}.image-banner>div{max-width:870px}
.card{position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,#c6f47e,#8adcc4);opacity:.85}.card .small-number{font-size:1.05rem;color:#319376}
/* Table-of-contents becomes a horizontal, touch-friendly journey. */
.intern-toc{display:flex;gap:0;padding:35px max(5.5vw,calc((100vw - 1400px)/2)) 31px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-color:#7ccaad #eaf6ed}
.intern-toc a{position:relative;display:flex;flex:1 0 165px;flex-direction:column;align-items:flex-start;gap:7px;padding:25px 17px 16px 5px;border:0;border-top:2px solid #bbddc7;scroll-snap-align:start;font-size:.87rem;min-height:93px;line-height:1.5}
.intern-toc a:before{content:"";position:absolute;top:-8px;left:3px;width:12px;height:12px;background:#fff;border:2px solid #5fb898;border-radius:50%;transition:transform .3s,background .3s,border-color .3s}
.intern-toc a b{font-size:1.12rem;letter-spacing:.04em;color:#308c70}
.intern-toc a.is-current{color:#155c4a;border-top-color:#319c7c}.intern-toc a.is-current:before{background:#d8f786;border-color:#258a68;transform:scale(1.25)}
/* Numbered chapter spine: the sticky chapter title remains visible while reading. */
.intern-chapter-inner{position:relative;max-width:1510px;grid-template-columns:32% minmax(0,1fr);gap:7%;padding-left:max(10vw,125px);padding-right:clamp(80px,9vw,145px)}
.intern-chapter-inner:before{content:"";position:absolute;left:max(6vw,70px);top:0;bottom:0;width:2px;background:linear-gradient(#bde9b8,#78c6b3)}
.intern-chapter-inner:after{content:"";position:absolute;left:calc(max(6vw,70px) - 10px);top:clamp(92px,8vw,140px);width:22px;height:22px;box-sizing:border-box;border-radius:50%;background:#dbfa88;border:3px solid #fff;box-shadow:0 0 0 2px #63b797;transition:transform .35s,box-shadow .35s}
.intern-chapter.is-active .intern-chapter-inner:after{transform:scale(1.18);box-shadow:0 0 0 6px #b9efd270}
.intern-chapter-header{top:65px}.intern-chapter-header .eyebrow{display:inline-block;background:#ddf5d4;border-radius:100px;padding:8px 14px;color:#28735b;letter-spacing:.04em;line-height:1.45}
.intern-chapter-header h2{margin-top:17px}.intern-chapter-content{max-width:880px}.intern-chapter.intern-tint{background:#f2faf2}
.intern-subsection{position:relative;padding-left:26px;border-top:0;border-left:2px solid #a9dabc;margin:28px 0 42px;padding-top:0;padding-bottom:0}
.intern-subsection h3{margin-bottom:18px}.intern-subsection:last-child{margin-bottom:0}
/* The explicit career steps stand out as individual milestones. */
#intern-04 .intern-subsection{background:#fff;border:1px solid #cae6d5;border-left:5px solid #8fcf93;border-radius:0 18px 18px 0;padding:25px 29px;margin:20px 0;box-shadow:0 12px 28px #4d9c7020}
#intern-04 .intern-subsection:nth-of-type(even){margin-left:5%}
#recruit-04 .intern-subsection{background:#fff;border:1px solid #d3e9da;border-left:5px solid #84d2b7;border-radius:0 18px 18px 0;padding:27px 30px;box-shadow:0 10px 28px #559d7818}
#recruit-04 .intern-subsection:nth-of-type(even){margin-left:5%}
.faq-item,.interview-item{border-left:4px solid #a2dba9;padding-left:28px}
/* Short pages share the same path language without forcing an invented timeline. */
.page-heading{border-bottom:1px solid #c4e5ce}.page-heading .eyebrow{display:inline-block;border-bottom:2px solid #75bb92;padding-bottom:9px}.page-heading h1{max-width:1050px}
.business-details{position:relative}.business-detail{position:relative;grid-template-columns:27% 1fr;gap:8%}.business-detail:before{content:"";position:absolute;left:-3.1vw;top:79px;width:14px;height:14px;border-radius:50%;background:#c8f17e;box-shadow:0 0 0 3px #80c2a0}
.business-detail-label{position:sticky;top:70px;align-self:start}.business-card .text-link{margin-top:35px}
.message-articles{border-left:2px solid #a7dabc;padding-left:clamp(25px,4vw,60px)}.message-article{position:relative}.message-article:before{content:"";position:absolute;left:calc(-1 * clamp(25px,4vw,60px) - 8px);top:6px;width:14px;height:14px;border-radius:50%;background:#d4f68c;box-shadow:0 0 0 3px #82c5a5}.message-aside a.is-current{color:#138565;font-weight:900}
/* Photographs function as pauses between chapters, never decorative replacements. */
.culture-chapter-photo{margin:0 0 45px}.culture-chapter-photo img{height:500px;object-fit:cover}.people-hero .intern-hero-photo img,.culture-hero .intern-hero-photo img{object-position:center 42%}
/* Progressive entrance only for the active chapter marker; existing reduced-motion behavior remains. */
@keyframes story-arrive{from{opacity:.35;transform:translateY(14px)}to{opacity:1;transform:none}}
.home-hero h1,.intern-hero h1{animation:story-arrive .8s cubic-bezier(.2,.7,.2,1) both}
@media(max-width:1200px){.story-progress{right:7px;width:68px}.story-progress-label{display:none}.intern-chapter-inner{padding-right:8vw}.business-detail:before{display:none}}
@media(max-width:850px){.story-progress{top:70px;left:0;right:0;width:auto;height:3px;transform:none;display:block}.story-progress-track{width:100%;height:3px;background:#e5f4e7}.story-progress-fill{height:100%;width:var(--page-progress,0%);background:linear-gradient(90deg,#a3d95f,#4ebcaa);transition:width .16s}.story-progress-label,.story-progress-count{display:none}.home-hero{min-height:0}.home-hero:before,.home-hero:after{display:none}.hero-copy{padding-left:7vw}body[data-page="index"] main>.section:not(.closing){padding-left:12vw;padding-right:7vw}body[data-page="index"] main>.section:not(.closing):before{left:6vw}body[data-page="index"] main>.section:not(.closing):after{left:calc(6vw - 8px)}.intern-chapter-inner{padding:77px 8vw 80px 13vw;grid-template-columns:1fr;gap:38px}.intern-chapter-inner:before{left:6vw}.intern-chapter-inner:after{left:calc(6vw - 10px);top:83px}.intern-chapter-header{position:static}.intern-toc{padding:32px 7vw 20px}.intern-toc a{flex:0 0 176px}.business-detail-label{position:static}.culture-chapter-photo img{height:370px}}
@media(max-width:600px){.site-header .brand{width:144px;height:64px}.site-header .brand img{width:157px;left:-9px;top:-48px}.story-progress{top:70px}.home-hero h1,.intern-hero h1{animation-duration:.65s}.intern-chapter-inner{padding-left:13vw;padding-right:7vw}.intern-chapter-inner:before{left:6vw}.intern-chapter-inner:after{left:calc(6vw - 9px);width:20px;height:20px}.intern-toc a{flex-basis:155px;font-size:.84rem}.intern-subsection{padding-left:18px}#intern-04 .intern-subsection,#recruit-04 .intern-subsection{padding:21px 20px}#intern-04 .intern-subsection:nth-of-type(even),#recruit-04 .intern-subsection:nth-of-type(even){margin-left:0}.culture-chapter-photo img{height:275px}.message-articles{padding-left:22px}.message-article:before{left:-30px}}
@media(prefers-reduced-motion:reduce){.home-hero h1,.intern-hero h1{animation:none}.story-progress-fill,.intern-chapter-inner:after,.intern-toc a:before{transition:none}}
/* Four existing home chapters become a compact navigation path. */
.home-story-nav{position:sticky;top:0;z-index:15;display:flex;justify-content:center;gap:0;background:#f9fff8eb;backdrop-filter:blur(14px);border-bottom:1px solid #cde7d5;padding:0 5vw;overflow-x:auto;scrollbar-width:thin}
.home-story-nav a{position:relative;display:flex;align-items:center;gap:11px;min-width:175px;justify-content:center;padding:22px 22px;color:#387261;font-size:.82rem;font-weight:850;white-space:nowrap;transition:color .25s,background .25s}
.home-story-nav a:not(:last-child):after{content:"";position:absolute;right:-4px;top:50%;height:7px;width:7px;border-top:2px solid #87ba99;border-right:2px solid #87ba99;transform:translateY(-50%) rotate(45deg)}
.home-story-nav b{font:900 1rem/1 Inter,"Noto Sans JP",sans-serif;color:#4caa7b}.home-story-nav a:hover,.home-story-nav a.is-current{background:#e8f8df;color:#195c4c}.home-story-nav a.is-current:before{content:"";position:absolute;bottom:0;left:15%;right:15%;height:3px;background:#74be8d;border-radius:3px}
#journey-about,#journey-business,#journey-discover,#journey-next{scroll-margin-top:75px}
@media(max-width:850px){.home-story-nav{justify-content:flex-start}.home-story-nav a{min-width:150px;padding:17px 16px;font-size:.74rem}.home-story-nav a:not(:last-child):after{right:-3px}}

/* Four business photographs from the supplied four-panel image. */
.business-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.business-photo-grid .card,.business-grid .business-card{overflow:hidden}
.business-photo-grid .card{padding:0 0 30px;min-height:0}
.business-card-photo{overflow:hidden;background:#eaf7ed;aspect-ratio:715/337}
.business-card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease}
.business-photo-grid .card:hover .business-card-photo img,.business-grid .business-card:hover .business-card-photo img{transform:scale(1.035)}
.business-photo-grid .card>:not(.business-card-photo){margin-left:28px;margin-right:28px}
.business-photo-grid .card .small-number{margin-top:25px}
.business-photo-grid .card h3{margin-top:8px}
.business-photo-grid .card .text-link{margin-top:24px}
.business-grid .business-card{padding:0 0 35px}
.business-grid .business-card>:not(.business-card-photo){margin-left:36px;margin-right:36px}
.business-grid .business-card>span{display:block;margin-top:28px}
.business-grid .business-card h3{margin-top:8px}
.business-grid .business-card .text-link{margin-top:22px}
@media(max-width:700px){.business-photo-grid{grid-template-columns:1fr;gap:18px}.business-photo-grid .card>:not(.business-card-photo){margin-left:22px;margin-right:22px}.business-grid .business-card>:not(.business-card-photo){margin-left:24px;margin-right:24px}}
@media(prefers-reduced-motion:reduce){.business-card-photo img{transition:none}}

/* Keep the global navigation available throughout the page. */
.site-header{position:sticky;top:0;z-index:100}
.home-story-nav{top:82px;z-index:90}
html{scroll-padding-top:98px}
#journey-about,#journey-business,#journey-discover,#journey-next{scroll-margin-top:155px}
.intern-chapter-header,.business-detail-label{top:105px}
@media(max-width:1100px){.home-story-nav{top:72px}html{scroll-padding-top:88px}}
@media(max-width:600px){.home-story-nav{top:70px}html{scroll-padding-top:84px}#journey-about,#journey-business,#journey-discover,#journey-next{scroll-margin-top:132px}}

/* Loading artwork stays centered, with its progress indicator directly below. */
.site-loader-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:min(420px,80vw)}
.site-loader-content img{width:100%;height:auto}
.site-loader-track{display:block;width:min(270px,62vw);height:5px;border-radius:100px;overflow:hidden;background:#c9e8d6}
.site-loader-fill{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#c6f47e,#53c5b8);transform-origin:left;animation:oripula-loading 1.8s ease-in-out both}
@keyframes oripula-loading{0%{transform:scaleX(.08)}75%{transform:scaleX(.78)}100%{transform:scaleX(1)}}
/* Representative photo on the MESSAGE first view. */
body[data-page="message"] .page-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);grid-template-rows:auto 1fr;align-items:center;column-gap:7%;padding-top:55px;padding-bottom:55px;min-height:550px}
body[data-page="message"] .page-heading .eyebrow{grid-column:1;align-self:end}
body[data-page="message"] .page-heading h1{grid-column:1;align-self:start}
.message-portrait{grid-column:2;grid-row:1/3;align-self:stretch;margin:0;min-height:440px;overflow:hidden;border-radius:22px}
.message-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 25%}
/* The story desktop grid must release its second column on phones. */
@media(max-width:850px){.business-detail{grid-template-columns:minmax(0,1fr);gap:26px}.business-detail-label,.business-detail-copy{min-width:0}body[data-page="message"] .page-heading{grid-template-columns:1fr;grid-template-rows:auto auto auto;min-height:0;padding:55px 7vw 0;gap:0}body[data-page="message"] .page-heading .eyebrow,body[data-page="message"] .page-heading h1{grid-column:1}.message-portrait{grid-column:1;grid-row:3;min-height:0;aspect-ratio:5/4;margin:22px -7.53vw 0;border-radius:0}.message-portrait img{object-position:center 20%}}
@media(prefers-reduced-motion:reduce){.site-loader-fill{animation:none}}
.site-loader-content{width:min(390px,80vw);gap:22px}
.site-loader-logo{display:block;position:relative;overflow:hidden;width:100%;aspect-ratio:891/413}
.site-loader-logo img{position:absolute;max-width:none;width:121.212%;height:auto;left:-10.55%;top:-81.6%}

/* Mobile navigation remains attached to the viewport after scrolling. */
@media(max-width:1100px){
  .mobile-nav:not([hidden]){position:fixed;top:72px;left:0;right:0;width:100%;z-index:99;max-height:calc(100dvh - 72px);overflow-y:auto;overscroll-behavior:contain;background:rgba(248,255,248,.82);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);box-shadow:0 18px 38px #22533d26;border-bottom:1px solid #afd8c4}
  .mobile-nav a{border-bottom-color:#a9d6c0a8}
}
@media(max-width:600px){.mobile-nav:not([hidden]){top:70px;max-height:calc(100dvh - 70px)}}

/* Oripū illustrations for the four discovery routes; the card text stays live HTML. */
.discover-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.discover-card-grid .card{padding:0 0 30px;min-height:0}
.discover-card-art{width:100%;aspect-ratio:1350/660;position:relative;overflow:hidden;background:#edf9f0}
.discover-card-art img{position:absolute;left:-4.5%;top:-5%;max-width:none;width:109%;height:auto;transition:transform .55s ease}
.discover-card-grid .card:hover .discover-card-art img{transform:scale(1.035)}
.discover-card-grid .card>:not(.discover-card-art){margin-left:28px;margin-right:28px}
.discover-card-grid .card .small-number{margin-top:25px}
.discover-card-grid .card h3{margin-top:8px}
.discover-card-grid .card .text-link{margin-top:24px}
@media(max-width:700px){.discover-card-grid{grid-template-columns:1fr;gap:18px}.discover-card-grid .card>:not(.discover-card-art){margin-left:22px;margin-right:22px}}
@media(prefers-reduced-motion:reduce){.discover-card-art img{transition:none}}

/* Version 4: Oripū appears as a quiet, repeatable brand motif. */
.oripu-accent{display:block;width:clamp(90px,12vw,175px);height:auto;object-fit:contain;pointer-events:none;user-select:none}
body[data-page="index"] #journey-about .oripu-accent{position:absolute;right:7vw;bottom:32px;width:clamp(125px,17vw,230px)}
body[data-page="message"] .message-intro .oripu-accent{width:132px;margin:12px 0 -30px auto}
body[data-page="internship"] .intern-finish{position:relative;padding-right:clamp(190px,21vw,320px)}
body[data-page="internship"] .intern-finish .oripu-accent{position:absolute;right:7vw;bottom:19px;width:clamp(120px,15vw,195px)}
body[data-page="parents"] .pair-intro .oripu-accent,body[data-page="recruit"] .pair-intro .oripu-accent,body[data-page="people"] .pair-intro .oripu-accent,body[data-page="culture"] .pair-intro .oripu-accent{margin:0 0 -26px auto;width:125px}
body[data-page="about"] .page-heading,body[data-page="business"] .page-heading,body[data-page="company"] .page-heading,body[data-page="contact"] .page-heading,body[data-page^="entry-"] .page-heading{position:relative;padding-right:clamp(180px,24vw,345px)}
.page-heading>.oripu-accent{position:absolute;right:6vw;bottom:26px;width:clamp(120px,15vw,195px)}
@media(max-width:850px){body[data-page="index"] #journey-about .oripu-accent{position:static;margin:4px 0 -24px auto;width:112px}body[data-page="internship"] .intern-finish{padding-right:7vw}body[data-page="internship"] .intern-finish .oripu-accent{position:static;width:112px;margin:23px 0 -27px auto}.page-heading>.oripu-accent{position:static;width:105px;margin:12px 0 -22px auto}body[data-page="about"] .page-heading,body[data-page="business"] .page-heading,body[data-page="company"] .page-heading,body[data-page="contact"] .page-heading,body[data-page^="entry-"] .page-heading{padding-right:7vw}}

/* CULTURE / 社内旅行: one shared memory, then scenes from the trip. */
.culture-trip-gallery{display:grid;grid-template-columns:1fr 1fr .86fr;grid-template-rows:280px 225px;gap:12px;margin:0 0 45px}
.culture-trip-gallery figure{margin:0;min-width:0;min-height:0;overflow:hidden;border-radius:15px;background:#e8f4ec}
.culture-trip-gallery img{width:100%;height:100%;object-fit:cover}
.culture-trip-gallery .trip-group{grid-column:1/3;grid-row:1}.culture-trip-gallery .trip-group img{object-position:center 48%}
.culture-trip-gallery .trip-ocean{grid-column:1;grid-row:2}.culture-trip-gallery .trip-dining{grid-column:2;grid-row:2}
.culture-trip-gallery .trip-museum{grid-column:3;grid-row:1/3}.culture-trip-gallery .trip-museum img{object-position:center center}
@media(max-width:850px){.culture-trip-gallery{grid-template-columns:1fr 1fr;grid-template-rows:260px 175px 300px;gap:9px}.culture-trip-gallery .trip-group{grid-column:1/-1;grid-row:1}.culture-trip-gallery .trip-ocean{grid-column:1;grid-row:2}.culture-trip-gallery .trip-dining{grid-column:2;grid-row:2}.culture-trip-gallery .trip-museum{grid-column:1/-1;grid-row:3}.culture-trip-gallery .trip-museum img{object-position:center 47%}}
@media(max-width:600px){.culture-trip-gallery{display:flex;flex-direction:column;gap:10px;margin-bottom:35px}.culture-trip-gallery figure{width:100%;flex:none}.culture-trip-gallery .trip-group{height:255px}.culture-trip-gallery .trip-ocean{height:190px}.culture-trip-gallery .trip-dining{height:245px}.culture-trip-gallery .trip-museum{height:400px}.culture-trip-gallery .trip-group img{object-position:center 55%}.culture-trip-gallery .trip-museum img{object-position:center 45%}}

.culture-events-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 45px}
.culture-events-gallery figure{margin:0;min-width:0;overflow:hidden;border-radius:15px;background:#e8f4ec;aspect-ratio:4/3}
.culture-events-gallery img{width:100%;height:100%;object-fit:cover;object-position:center center}
@media(max-width:600px){.culture-events-gallery{grid-template-columns:1fr;gap:10px;margin-bottom:35px}}

#culture-04 .culture-chapter-photo{max-width:560px}
#culture-04 .culture-chapter-photo img{height:auto;aspect-ratio:1108/1477;object-fit:cover}
