/* Contact page only. Navigation, footer and global brand typography are inherited. */
.contact-page{background:var(--paper)}
.contact-hero{padding:clamp(2.75rem,4.5vw,4rem) 0 clamp(3rem,5vw,4.5rem)}
.contact-hero__grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);align-items:center;gap:clamp(3rem,6vw,5rem)}
.contact-hero__copy h1{max-width:11ch;font-size:clamp(3.2rem,5.6vw,4.9rem);line-height:1.02}
.contact-hero__copy>p:not(.eyebrow){max-width:44ch;margin:0 0 1.75rem;color:var(--muted);font-size:1.08rem;line-height:1.75}
.contact-action{display:inline-flex;align-items:center;justify-content:center;gap:1rem;min-height:52px;padding:.8rem 1.35rem;border:2px solid transparent;border-radius:12px;background:var(--blue);color:#fff;font-weight:650;font-size:.95rem;line-height:1.45;text-decoration:none;box-shadow:0 7px 18px rgba(7,80,168,.14);transition:background-color .18s ease}
.contact-action:hover{background:var(--royal)}
.contact-page a:focus-visible{outline-color:var(--navy)}
.contact-close a:focus-visible{outline-color:#fff}
.contact-action>span{font-size:1.3rem;line-height:1}
.contact-action--outline{background:transparent;border-color:var(--blue);color:var(--blue);box-shadow:none}
.contact-action--outline:hover{background:var(--sky-2)}
.contact-action--gold{background:var(--gold);color:var(--navy);box-shadow:0 7px 18px rgba(0,0,0,.12)}
.contact-action--gold:hover{background:#ffca4a}
.contact-hero__visual{position:relative;isolation:isolate;width:min(100%,460px);justify-self:center;margin:0 10px}
.contact-hero__visual::before{content:"";position:absolute;z-index:-1;inset:24px -20px -14px 18px;border-radius:44% 56% 48% 52%;background:var(--sky);transform:rotate(5deg)}
.contact-hero__photo{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 52%;border:7px solid #fff;border-radius:32px;box-shadow:var(--shadow);transform:rotate(1.5deg)}
.contact-doodle{position:absolute;pointer-events:none;object-fit:contain}
.contact-hero__star{width:40px;height:40px;left:calc(100% - 12px);bottom:calc(100% + 4px);transform:rotate(12deg)}
.contact-hero__rays{width:40px;height:30px;bottom:-30px;left:-40px;transform:rotate(225deg)}
.contact-options{padding:0 0 clamp(2.5rem,4vw,3.5rem)}
.contact-options__heading{margin-bottom:1.6rem}
.contact-options__heading h2{max-width:22ch;font-size:clamp(2.1rem,3.4vw,3rem);margin-bottom:.65rem}
.contact-options__heading>p{margin:0;color:var(--muted)}
.contact-options__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.contact-option{min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding:32px;border-radius:24px;background:#fff;box-shadow:0 12px 32px rgba(19,50,88,.065)}
.contact-option__heading{display:flex;align-items:center;gap:16px}
.contact-option__heading h3{margin:0;font-size:1.85rem}
.contact-option__icon{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:16px;background:var(--gold-soft);color:var(--blue)}
.contact-option--email .contact-option__icon{background:var(--sky-2)}
.contact-symbol{width:30px;height:30px}
.contact-option__detail{display:block;max-width:100%;margin:1.25rem 0 .7rem;color:var(--navy);font-family:Fredoka,Poppins,sans-serif;font-size:1.65rem;font-weight:550;line-height:1.5;text-decoration:none}
.contact-option__detail:hover{text-decoration:underline;text-underline-offset:5px}
.contact-option__email{font-family:Poppins,Arial,sans-serif;font-size:clamp(.82rem,1.55vw,1.14rem);font-weight:600;white-space:nowrap;line-height:2.17}
.contact-option>p{margin:0 0 1.5rem;max-width:46ch;font-size:.94rem;line-height:1.75;color:var(--muted)}
.contact-option>.contact-action{margin-top:auto}
.contact-location{margin-top:24px;border-radius:24px;background:var(--sky-2);overflow:hidden}
.contact-location__viewport{height:360px}
.contact-location__map{display:block;width:100%;height:100%;border:0}
.contact-location__placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100%;padding:24px;text-align:center}
.contact-location__pin{flex-shrink:0;color:var(--blue)}
.contact-location .contact-location__placeholder h2{margin:0}
.contact-location__placeholder p{max-width:64ch;margin:0;color:var(--muted);font-size:.87rem;line-height:1.65}
.contact-location__placeholder p a{color:var(--blue);text-underline-offset:3px}
.contact-location__placeholder .contact-action{cursor:pointer;flex-shrink:0}
.contact-location__status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.contact-location__details{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:24px 28px}
.contact-location h2{font-size:1.6rem;margin:0 0 .5rem}
.contact-location address{max-width:62ch;font-style:normal;color:var(--muted);font-size:.88rem;line-height:1.75}
.contact-location__link{display:inline-flex;align-items:center;gap:.6rem;min-height:44px;color:var(--blue);font-size:.86rem;font-weight:650;text-decoration:underline;text-underline-offset:5px}
.contact-close{padding-bottom:clamp(3rem,5vw,4.5rem)}
.contact-close__panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:48px;padding:40px 44px;border-radius:28px;background:var(--blue);box-shadow:0 14px 32px rgba(7,80,168,.12)}
.contact-close__copy h2{max-width:23ch;margin:0 0 1rem;color:#fff;font-size:clamp(2.15rem,3.1vw,2.8rem);line-height:1.08}
.contact-close__copy p{max-width:62ch;margin:0;color:#dceaff;font-size:.94rem;line-height:1.75}
.contact-close__action{position:relative}
.contact-close__rays{width:32px;height:auto;left:calc(100% + 2px);bottom:calc(100% - 8px);transform:none}
@media(max-width:1050px){
  .contact-hero__grid{gap:3rem}
  .contact-option{padding:28px}
  .contact-location__details{grid-template-columns:1fr;gap:12px}
  .contact-location__link{justify-self:start}
  .contact-close__panel{grid-template-columns:1fr;gap:40px;padding:36px}
  .contact-close__copy h2{max-width:24ch}
  .contact-close__action{justify-self:start}
}
@media(max-width:900px){
  .contact-hero__grid{grid-template-columns:1fr;gap:3.25rem}
  .contact-hero__copy{max-width:650px}
  .contact-hero__copy h1{max-width:13ch}
  .contact-hero__visual{width:min(100% - 24px,440px)}
}
@media(max-width:660px){
  .contact-hero{padding:2.5rem 0 3rem}
  .contact-hero__copy h1{font-size:clamp(2.6rem,12vw,3.6rem);max-width:12ch;margin-bottom:1.2rem}
  .contact-hero__copy>p:not(.eyebrow){font-size:.96rem;margin-bottom:1.5rem}
  .contact-hero__copy>.contact-action{width:100%}
  .contact-hero__visual{width:min(100% - 30px,380px);margin-inline:0}
  .contact-hero__photo{border-width:6px;border-radius:28px}
  .contact-hero__star{width:32px;height:32px;left:calc(100% - 12px)}
  .contact-hero__rays{display:none}
  .contact-options__heading h2{font-size:clamp(2rem,8vw,2.6rem)}
  .contact-options__heading>p{font-size:.92rem}
  .contact-options__grid{grid-template-columns:1fr;gap:18px}
  .contact-option{padding:24px}
  .contact-option__heading h3{font-size:1.7rem}
  .contact-option>.contact-action{width:100%}
  .contact-option__email{font-size:clamp(.82rem,3.65vw,1rem)}
  .contact-location__details{padding:24px 20px}
  .contact-location__viewport{height:300px}
  .contact-location__placeholder{gap:8px;padding:16px}
  .contact-location__pin{width:28px;height:28px}
  .contact-location__placeholder p{font-size:.8rem;line-height:1.5}
  .contact-location__placeholder .contact-action{min-height:46px}
  .contact-location h2{font-size:1.4rem}
  .contact-location address{font-size:.84rem}
  .contact-location__link{font-size:.82rem}
  .contact-close__panel{padding:28px 24px;gap:40px}
  .contact-close__copy h2{font-size:clamp(2rem,8.2vw,2.5rem)}
  .contact-close__copy p{font-size:.9rem}
  .contact-close__action,.contact-close__action .contact-action{width:100%}
  .contact-close__rays{width:26px;height:auto}
}
@media(max-width:360px){
  .contact-option{padding:20px}
  .contact-option__heading{gap:12px}
  .contact-option__email{font-size:.82rem}
  .contact-location__details{padding:20px 16px}
  .contact-close__panel{padding:28px 20px}
  .contact-action{padding-inline:1rem;font-size:.89rem}
}
