/* Content stays typographic; photographs keep their original framing. */
.brand-mosaic{display:grid;grid-template-columns:1.12fr 1fr;grid-template-rows:1fr 1fr;gap:12px;min-width:0;min-height:480px;align-self:stretch}
.mosaic-tile{position:relative;display:block;overflow:hidden;border-radius:20px;min-width:0;min-height:0;background:#dce3df}
.mosaic-tile:first-child{grid-row:1/3}
.mosaic-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mosaic-tile::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#111b22a6);pointer-events:none}
.mosaic-tile>span{position:absolute;z-index:1;left:18px;right:14px;bottom:18px;color:white;font-size:clamp(16px,1.6vw,23px);line-height:1.25;font-weight:700}
.scenario-photo-pair{display:grid;grid-template-rows:1fr 1fr;gap:16px;min-width:0}
.scenario-photo-pair figure,.makers-grid figure{margin:0;min-width:0}
.scenario-photo-pair img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:14px}
.scenario-photo-pair figcaption,.makers-grid figcaption{font-size:15px;line-height:1.5;margin-top:10px;color:var(--muted,#595f69)}
.family-photo{margin:0 0 24px;border-radius:14px;overflow:hidden}
.family-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.makers-story{padding:50px 0 70px}
.makers-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.makers-grid img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:20px}
@media(max-width:1100px){.brand-mosaic{min-height:430px;gap:10px}.mosaic-tile>span{left:14px;bottom:14px}}
@media(max-width:760px){.brand-mosaic{min-height:360px;grid-template-columns:1fr 1fr;grid-template-rows:200px 150px}.mosaic-tile:first-child{grid-column:1/-1;grid-row:auto}.mosaic-tile{border-radius:14px}.mosaic-tile>span{font-size:17px}.scenario-photo-pair{gap:20px}.makers-story{padding:30px 0 45px}.makers-grid{grid-template-columns:1fr;gap:24px}}
@media(max-width:400px){.brand-mosaic{grid-template-rows:180px 140px;min-height:330px}.mosaic-tile>span{font-size:15px;left:10px;right:8px;bottom:12px}}
.partner-process li{padding-left:0}.partner-process li:before{display:none}.scenario h3{margin-top:0}.steps-grid article{display:block}.steps-grid h3{margin:0 0 12px}.roles-grid h3,.value-grid h3,.partner-types h3{margin-top:0}.family-grid article{overflow:hidden}
.scenario-image img{object-fit:cover;padding:0}
.travel .button{background:#106b4b;color:#fff}.travel .button:hover{background:#0b553b}
.contact-art{width:168px;height:168px;object-fit:contain;margin:0 0 20px}
button:focus-visible,summary:focus-visible,[tabindex="0"]:focus-visible{outline:3px solid #7a3fe8;outline-offset:5px}
.site-footer a:focus-visible{outline-color:#b8eeff}
.contact-methods strong,.contact-reveal a{overflow-wrap:anywhere}
@media(prefers-reduced-motion:no-preference){.contact-art{transition:transform .4s ease}.contact-intro:hover .contact-art{transform:translateY(-4px) rotate(-3deg)}}
@media(max-width:760px){.partner-process li{padding-left:0}.steps-grid article{display:block}.contact-art{width:112px;height:112px;margin-bottom:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Keep footer layout rules together, after the shared and corporate styles. */
.footer-main > *{min-width:0}
@media(max-width:760px){
  .site-footer .footer-main{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;padding:36px 0 28px}
  .site-footer .footer-brand{grid-column:1/-1}
  .site-footer .footer-brand>span{max-width:440px}
  .site-footer .footer-column{min-width:0;max-width:none;gap:6px}
  .site-footer .footer-column h2{font-size:14px;line-height:1.5;margin:0 0 8px}
  .site-footer .footer-column a,.site-footer .footer-unavailable{min-height:44px;padding:8px 0;font-size:16px;line-height:1.5;gap:12px;justify-content:space-between;flex-wrap:nowrap;overflow-wrap:anywhere}
  .site-footer .footer-column a>span,.site-footer .footer-unavailable .soon{flex-shrink:0}
  .site-footer .footer-place{padding-top:10px}
  .site-footer .footer-bottom{padding:18px 0 22px;gap:12px 20px;flex-wrap:wrap}
  .site-footer .footer-bottom a{min-height:44px;margin-left:auto;white-space:nowrap}
}
@media(max-width:479px){
  .site-footer .footer-main{grid-template-columns:minmax(0,1fr);gap:24px}
  .site-footer .footer-column{border-top:1px solid #ffffff26;padding-top:20px}
  .site-footer .footer-brand p{font-size:20px;line-height:1.4;margin-top:20px}
  .site-footer .footer-brand>span{margin-top:12px}
}
