/* v17: shared readability rules; visual order follows the source on small screens. */
.hero-identity{font-weight:600;color:var(--green)}
.site-content .hero .hero-identity{font-size:15px;line-height:1.8;margin:0 0 18px;max-width:none}
.site-content .hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:26px}
.site-content .hero-actions .ogino-link-block{margin:0}
.site-content .hero-actions a{white-space:normal}
.site-content .hero-copy{padding-block:64px 74px;max-width:650px}
.site-content .hero h1{font-size:clamp(30px,3vw,43px)}
.site-content .hero p{max-width:440px}
.site-content :is(h1,h2,h3),.page-heading h1{line-break:strict;overflow-wrap:anywhere;text-wrap:balance}
.site-content :is(.split,.story,.editorial-split,.representative-layout)>*{min-width:0}
.breadcrumb{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 8px}
.breadcrumb span{margin:0}
.ogino-contact :is(#public-form,#public-confirm,#public-complete){scroll-margin-top:105px}
.ogino-contact #confirm-values dt{font-size:14px}
.ogino-contact #confirm-values dd{overflow-wrap:anywhere}
.site-content .international-teaser h2{font-size:clamp(24px,2.7vw,32px);line-height:1.7;margin-bottom:22px}
.site-content .international-teaser p{margin-bottom:20px}
.site-content .international-teaser .ogino-link-block{margin:0}
.site-content .timeline{grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}
.site-content .timeline>article{min-width:0}
.site-header .language-link{font-size:12px;letter-spacing:.03em}
@media(max-width:1100px){
 .site-header{height:76px}.menu-toggle{display:block;min-width:48px;min-height:48px}
 .site-header .nav{display:none;position:absolute;top:76px;left:0;right:0;max-height:calc(100dvh - 76px);overflow:auto;padding:18px 6% 26px;background:#fff;box-shadow:0 12px 20px #193b2910;flex-direction:column;align-items:stretch;gap:0;font-size:15px}
 .site-header .nav.open{display:flex}.site-header .nav a{padding:14px 8px;min-height:48px;white-space:normal;border-bottom:1px solid #e4e7dd}
 .site-header .nav a:after{display:none}.site-header .nav a.nav-contact{order:initial;padding:15px 20px;margin:10px 0;text-align:center}
 .site-header .nav .shop-link,.site-header .nav .language-link{font-size:14px}
 .site-content .timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
}
@media(max-width:782px){.admin-bar .site-header .nav{max-height:calc(100dvh - 122px)}}
@media(max-width:600px){
 .cta-band p{font-size:15px;line-height:1.9}
 .site-header{height:70px}.site-header .nav{top:70px;max-height:calc(100dvh - 70px)}
 .wrap,.km-wrap{width:calc(100% - 40px)}
 .site-content .hero-copy{padding:28px 0 30px}
 .site-content .hero .eyebrow{font-size:11px;letter-spacing:.1em;margin-bottom:13px}
 .site-content .hero .hero-identity{font-size:14px;margin-bottom:14px}
 .site-content .hero h1{font-size:clamp(26px,7.4vw,32px);line-height:1.6;letter-spacing:.015em;margin-bottom:18px}
 .site-content .hero p:not(.eyebrow):not(.hero-identity):not(.ogino-link-block){font-size:16px;line-height:1.9;letter-spacing:0}
 .site-content .hero-actions{display:grid;gap:10px;margin-top:22px}
 .site-content .hero-actions a.button{width:100%;font-size:14px;padding:14px 16px;gap:12px}
 .site-content .hero-actions a.text-link{font-size:14px;min-height:44px}
 .site-content .hero-photo{margin-left:20px;border-radius:48px 0 0 0;aspect-ratio:3/2}
 .site-content :is(.hero-copy,.story-copy,.section-title,.cta-band) p br,.page-heading p br{display:none}
 .site-content :is(h2,h3) br,.page-heading h1 br,.km-content :is(h1,h2,h3) br{display:none}
 .page-heading h1{font-size:28px;line-height:1.6;letter-spacing:.015em}
 .site-content .reading.editorial-copy h2{font-size:clamp(23px,6.5vw,26px)}
 .site-content .reading.editorial-copy h2 br{display:initial}
 .site-content .representative-copy h2{font-size:clamp(23px,6.5vw,26px)}
 .site-content .representative-copy h2 br{display:initial}
 .site-content .representative-role{font-size:14px}
 .page-heading p,.site-content :is(.reading,.split,.story-copy,.business-card,.category-item,.value,.reason,.step,.representative-copy) p:not(.eyebrow):not(.step-number):not(.reason-num):not(.representative-role):not(.representative-signature),.site-content .section-title p{font-size:15px;line-height:1.95}
 .site-content :is(.eyebrow,.audience,.service-label){font-size:12px;line-height:1.8}
 .site-content .section-title h2,.site-content .story-copy h2,.site-content .split h2{font-size:26px;line-height:1.65}
 .site-content .card-art,.site-content .split-art{width:100%;height:auto;aspect-ratio:3/2}
 .site-content .story-visual{aspect-ratio:3/2;border-top-right-radius:48px}
 .site-content .representative-portrait{max-width:280px}.site-content .third-generation-portrait{max-width:280px}
 .site-content .product-image{width:100%;max-width:340px}
 .site-content .product-image img{padding:24px;object-fit:contain}
 .site-content .timeline{display:grid;grid-template-columns:minmax(0,1fr);border-top:0;border-left:1px solid #b9c5b3;gap:24px;padding:0 0 0 22px;overflow:visible}
 .site-content .timeline article{padding-top:0}.site-content .timeline article:before{top:9px;left:-27px}
 .site-content .timeline article p{font-size:15px;line-height:1.9}
 .site-content .timeline article>p:first-child{font-size:12px}
 .site-content .steps>.step{padding:22px}
 .site-content .step>.flow-illustration{height:auto;aspect-ratio:3/2;max-width:260px;margin:0 auto 16px}
 .site-content .funeral-strengths .strength-illustration{max-width:280px}
 .site-content .numbers{gap:24px 0}.number strong{font-size:clamp(31px,10vw,43px)}
 .number .label,.number p{font-size:12px}.number .unit{font-size:12px}
 .site-content .faq summary,.site-content .faq details p{font-size:15px;line-height:1.85}
 .site-content .data-table th,.site-content .data-table td{font-size:14px;padding:16px 10px}
 .site-content .data-table th{width:28%;min-width:5.5em}
 .site-content .cta-band p{font-size:15px;line-height:1.9}
 .site-content .cta-actions{min-width:0}.site-content .cta-actions a{font-size:14px;gap:12px;padding:15px 16px}
 .footer-links{grid-template-columns:1fr;gap:14px;font-size:14px}.footer-links a{min-height:44px;padding:10px 0}
 .footer-links a.footer-sub{font-size:13px}.footer-company p{font-size:13px}.footer-bottom{font-size:12px}
 .footer-bottom a{min-height:44px;display:inline-flex;align-items:center}
 .breadcrumb{font-size:12px}.breadcrumb a{padding-block:6px}
 .ogino-site .ogino-contact{width:calc(100% - 40px);padding-inline:0}
 .ogino-site .ogino-contact .steps li{font-size:12px;padding-inline:2px;line-height:1.6}
 .ogino-site .ogino-contact .consent{font-size:14px;line-height:1.8}.ogino-site .ogino-contact .consent input{margin-top:4px}
 .ogino-site .ogino-contact .actions button{width:100%}.ogino-site .ogino-contact small{font-size:12px}
 .km-header-inner{flex-wrap:wrap;gap:8px;padding-block:10px;min-height:74px}
 .km-brand{flex-shrink:1;min-width:0}.km-brand>span{font-size:18px}.km-brand small{font-size:11px}
 .km-navigation .km-button{font-size:12px;padding:10px 12px}
 .km-content .km-hero h1{font-size:clamp(28px,7.8vw,35px);line-height:1.65}
 .km-content .km-hero-photo{aspect-ratio:3/2;border-top-left-radius:48px}
 .km-content p:not(.km-eyebrow):not(.km-step-number):not(.km-benefit-number):not(.km-service-name):not(.km-note-title){font-size:15px;line-height:1.95}
 .km-content .km-audience,.km-content .km-eyebrow{font-size:12px}
 .km-content .km-step .flow-illustration{height:auto;aspect-ratio:3/2;max-width:260px}
 .km-faq summary,.km-content .km-faq details>p{font-size:15px}
 .km-footer nav a{font-size:13px;min-height:44px;display:inline-flex;align-items:center}.km-footer p{font-size:12px}
}
@media(max-width:360px){
 .wrap,.km-wrap{width:calc(100% - 32px)}
 .site-content .hero h1{font-size:26px}.site-content .hero h1 br{display:none}
 .km-header-inner{justify-content:center}.km-navigation{width:100%;justify-content:center}.km-navigation .km-button{width:100%}
 .site-content .representative-signature strong{font-size:27px}
}
