/* The orange circumference encloses the copy; navy opens into the left margin. */
main{overflow-x:clip}
.mission{overflow:visible}
.mission>.purpose-backdrop{inset:0;width:100%;height:100%;max-width:none;margin:0;overflow:visible;opacity:0;transition:opacity .4s ease}
.mission>.purpose-backdrop.rings-ready{opacity:.9}
.mission>.mission-grid>div:first-child{align-self:start}
.mission .purpose-orbit{transform-box:view-box}
/* Small photographic cues alongside each product-flow heading. */
.product-step-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:18px;min-height:63px}
.product-flow .product-step-heading h4{margin:8px 0 0}
.product-thumb{width:48px;height:48px;flex-shrink:0;position:relative;overflow:hidden;border-radius:9px;background:#fff}
.product-thumb>img{position:absolute;top:0;left:0;width:300%;height:auto;max-width:none;display:block;object-fit:initial}
.product-thumb-02>img{left:-100%}.product-thumb-03>img{left:-200%}
.product-flow>li:not(:last-child)::after{top:114px}
.lab-feedback{border-top:1px dashed #ebc5ad;border-radius:15px}
.company-map{display:inline;text-decoration:underline;text-decoration-color:#b1c4db;text-underline-offset:5px;text-decoration-thickness:1px;line-height:1.9}
.company-map:hover{color:#c75620;text-decoration-color:currentColor}
.map-link-hint{display:inline-flex;align-items:center;gap:7px;margin-left:12px;font-size:12px;white-space:nowrap;color:var(--muted)}
.person-meta>span{display:block;line-height:1.7;overflow-wrap:anywhere}
@media(max-width:1100px) and (min-width:761px){.product-step-heading{gap:5px}.product-thumb{width:36px;height:36px;border-radius:7px}.product-flow .product-step-heading h4{font-size:15px}}
@media(max-width:760px){.mission>.purpose-backdrop{inset:0;width:100%;height:100%;opacity:0}.mission>.purpose-backdrop.rings-ready{opacity:.36}.product-step-heading{gap:5px;min-height:62px}.product-thumb{width:38px;height:38px;border-radius:7px}.product-flow .product-step-heading h4{font-size:14px;white-space:nowrap}.product-flow>li:not(:last-child)::after{top:111px}.map-link-hint{display:flex;width:max-content;margin:7px 0 0}}
@media(max-width:390px){.product-step-heading{gap:3px}.product-thumb{width:31px;height:31px;border-radius:6px}.product-flow .product-step-heading h4{font-size:13px}}
@media(prefers-reduced-motion:reduce){.mission>.purpose-backdrop{transition:none}}

/* Visible, uninterrupted fine-line geometry. */
.mission>.purpose-backdrop.rings-ready{opacity:.9}
.mission .purpose-ring{stroke-width:1;vector-effect:non-scaling-stroke}
/* A smooth periodic waveform with a gentle vertical tide. */
.wave-boundary{height:180px}
.boundary-wave{opacity:.85;animation-duration:48s}
.boundary-wave.wave-orange{opacity:.9;animation-duration:61s}
.boundary-wave path{animation:boundary-breathe 14s ease-in-out infinite;transform-origin:center}
.boundary-wave.wave-orange path{animation-duration:19s;animation-delay:-7s}
@keyframes boundary-breathe{0%,100%{transform:translateY(-8px)}50%{transform:translateY(8px)}}
/* Keep the close control fixed while the content scrolls in its own track. */
#detail-dialog{padding:0;overflow:hidden;max-height:85dvh}
#dialog-content{max-height:85dvh;overflow-y:scroll;overscroll-behavior:contain;padding:68px 48px 44px 55px;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:#526f92 #eee8de}
#dialog-content::-webkit-scrollbar{width:14px}
#dialog-content::-webkit-scrollbar-track{background:#eee8de;border-radius:7px;margin:20px 0}
#dialog-content::-webkit-scrollbar-thumb{background:#526f92;border:3px solid #eee8de;border-radius:7px;min-height:48px}
#dialog-content::-webkit-scrollbar-thumb:hover{background:#203a60}
#detail-dialog .dialog-close{position:absolute;top:17px;right:24px;float:none;margin:0;padding:0;width:40px;height:40px;display:grid;place-items:center;line-height:1;box-shadow:0 0 0 5px #fff;z-index:3}
.dialog-close svg{display:block;width:20px;height:20px;pointer-events:none}
#detail-dialog .dialog-close:hover{background:#365b84}
@media(max-width:760px){.wave-boundary{height:140px}.boundary-wave{width:200%;animation-name:boundary-flow}#dialog-content{padding:68px 24px 30px}#detail-dialog .dialog-close{right:24px;top:16px}}
@media(prefers-reduced-motion:reduce){.boundary-wave path{animation:none}}

/* Compact navigation and restrained mobile feedback. */
.header .nav-entry{padding:8px 21px;min-height:0;line-height:1.4}
.header .nav-entry>.arrow-glyph{line-height:1}
.representative-link{text-decoration:underline;text-underline-offset:5px;text-decoration-color:#b7a58e;display:inline-flex;gap:14px;align-items:center}
.representative-link:hover{color:#c75620}
.mobile-nav{border-color:#e6dfd4;box-shadow:0 14px 24px #203a600a;max-height:calc(100dvh - 110px);overflow-y:auto}
.menu-toggle span{transition:transform .22s cubic-bezier(.22,1,.36,1);transform-origin:center}
.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
@media(max-width:760px){.header .nav-entry{padding:6px 12px;line-height:1.4}.menu-toggle{min-height:40px;justify-content:center;flex-shrink:0}.mobile-nav{padding:12px 6% 22px}.mobile-nav a{transition:color .18s,background .18s}.mobile-nav a:hover{color:#c75620}}
@media(max-width:360px){.header .nav-entry{padding:6px 10px}}
@media(prefers-reduced-motion:reduce){.menu-toggle span,.mobile-nav a{transition:none}}

/* Give both section boundaries the same open, flowing rhythm. */
.business-stacked{padding-bottom:36px}
#why-join{padding-top:35px}
#why-join>.section-marker{border-top:0}
@media(max-width:760px){.business-stacked{padding-bottom:24px}#why-join{padding-top:20px}}

/* Dedicated introduction columns prevent long body copy from squeezing the title. */
#business>.business-introduction{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start;justify-content:normal;gap:clamp(28px,4vw,64px);margin-bottom:55px}
#business>.business-introduction>h2{min-width:0;margin:0;font-size:clamp(26px,3vw,44px);line-height:1.65;letter-spacing:.01em}
#business>.business-introduction>h2>span{display:block;white-space:nowrap}
#business>.business-introduction>p{min-width:0;max-width:36em;margin:0;padding-top:4px;font-size:16px;line-height:2.1;overflow-wrap:anywhere;line-break:strict}
@media(max-width:960px){#business>.business-introduction{grid-template-columns:minmax(0,1fr);gap:22px;margin-bottom:38px}#business>.business-introduction>h2{font-size:32px}#business>.business-introduction>p{max-width:42em;padding-top:0}}
@media(max-width:760px){#business>.business-introduction{gap:20px;margin-bottom:32px}#business>.business-introduction>h2{font-size:clamp(24px,7vw,31px)}#business>.business-introduction>p{max-width:none;font-size:15px;line-height:2.05}}
