@font-face { font-family:"Sora"; src:url("fonts/Sora.ttf") format("truetype"); font-weight:100 800; font-display:swap; }
@font-face { font-family:"Baloo Thambi"; src:url("fonts/BalooThambi.ttf") format("truetype"); font-weight:400; font-display:swap; }
:root {
  --purple:#6B2DA5; --green:#66AF5F; --terracotta:#9D6141; --blue:#80AEF8; --lavender:#E8E8F5;
  --logo-green:#1DB159; --white:#fff; --page-gutter:clamp(22px,5vw,96px);
  --paper:var(--lavender); --ink:var(--purple); --muted:var(--purple); --line:var(--purple); --purple-dark:var(--purple);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--lavender); color:var(--purple); font-family:"Sora",sans-serif; font-size:16px; line-height:1.65; }
h1,h2,h3 { font-family:"Baloo Thambi",sans-serif; font-weight:400; margin:0; }
p { margin:0; }
a { color:inherit; text-decoration:none; text-underline-offset:5px; }
a:hover { text-decoration:underline; }
img { max-width:100%; display:block; height:auto; }
button,input,textarea { font:inherit; }
:focus-visible { outline:3px solid currentColor; outline-offset:5px; }
[id] { scroll-margin-top:28px; }
::selection { background:var(--purple); color:var(--lavender); }
.icon { width:21px; height:21px; flex:none; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:50px; padding:13px 22px; border:1px solid currentColor; border-radius:6px; font-size:14px; font-weight:600; line-height:1.4; text-align:center; cursor:pointer; transition:opacity .2s; }
.button:hover { text-decoration:none; opacity:.88; }
.button-primary { background:var(--purple); color:var(--lavender); border-color:var(--purple); }
.button-light,.header-cta { background:var(--logo-green); color:var(--white); border-color:var(--logo-green); }
.button-light { font-size:16px; }
.eyebrow { font-size:13px; line-height:1.5; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.chapter { margin-bottom:24px; }
.text-link { display:inline-flex; align-items:center; gap:12px; font-size:14px; font-weight:600; padding:8px 0; text-decoration:underline; }
.campaign { overflow:clip; }
.skip-link { position:absolute; top:8px; left:8px; padding:12px; background:var(--purple); color:var(--lavender); z-index:20; transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.section-inner { width:100%; max-width:1360px; margin-inline:auto; }
.campaign-hero { position:relative; isolation:isolate; display:flex; align-items:center; min-height:clamp(640px,100svh,980px); padding:152px max(var(--page-gutter),calc((100vw - 1440px)/2)) 120px; }
.hero-media,.hero-media video,.hero-poster,.hero-poster img { position:absolute; inset:0; width:100%; height:100%; }
.hero-media { z-index:-2; background:var(--lavender); left:auto; right:0; width:min(100%,calc(clamp(640px,100svh,980px) * 16 / 9)); }
/* Preserve the complete 16:9 scene instead of magnifying/cropping the owl. */
.hero-media video,.hero-poster img { object-fit:contain; object-position:center; mask-image:linear-gradient(90deg,transparent,#000 7%,#000 96%,transparent); }
.hero-media::after { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(0deg,var(--lavender),transparent 10%,transparent 93%,var(--lavender)); }
.hero-poster { z-index:1; }
.hero-poster.is-playing { visibility:hidden; }
.campaign-hero::after { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg,var(--lavender),rgba(232,232,245,.95) 30%,rgba(232,232,245,0) 63%); }
.campaign-header { position:absolute; inset:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:28px; padding:24px max(var(--page-gutter),calc((100vw - 1440px)/2)); }
.campaign-brand { display:block; width:210px; flex:none; }
.campaign-header nav { display:flex; gap:24px; align-items:center; padding:6px 6px 6px 22px; background:rgba(232,232,245,.94); border-radius:8px; font-size:14px; font-weight:500; }
.campaign-header nav > a:not(.button) { display:inline-flex; align-items:center; min-height:44px; }
.header-cta { font-size:16px; min-height:46px; padding:12px 18px; gap:10px; }
.hero-copy { width:min(590px,44vw); }
.hero-copy h1 { font-size:clamp(60px,6.6vw,104px); line-height:1; letter-spacing:0; margin:0 0 24px; text-wrap:balance; }
.hero-lead { max-width:470px; font-size:16px; line-height:1.65; margin:0 0 30px; }
.hero-caption { position:absolute; bottom:24px; left:max(var(--page-gutter),calc((100vw - 1440px)/2)); right:max(var(--page-gutter),calc((100vw - 1440px)/2)); display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid rgba(107,45,165,.35); padding-top:14px; font-size:12px; letter-spacing:.03em; }
.hero-caption a { background:var(--lavender); padding:8px 12px; border-radius:6px; }
.editorial { position:relative; isolation:isolate; padding:72px var(--page-gutter) 80px; background:var(--lavender); }
.editorial-scene { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:-2; }
.editorial::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(180deg,var(--lavender),transparent 20%,transparent 80%,var(--lavender)),linear-gradient(90deg,rgba(232,232,245,.86),rgba(232,232,245,.88) 58%,rgba(232,232,245,.66)); }
.editorial-heading { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:end; }
.editorial h2,.closing h2 { font-size:clamp(46px,4.6vw,72px); line-height:1.04; letter-spacing:0; }
.editorial-heading > p { max-width:500px; padding-bottom:6px; font-size:17px; }
.editorial-layout { margin-top:40px; }
.service-rows { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:64px; }
.service-row { display:grid; grid-template-columns:minmax(135px,.7fr) minmax(0,1.3fr); align-content:start; gap:24px; border-top:1px solid rgba(107,45,165,.45); padding:28px 0; }
.service-row h3 { font-size:28px; line-height:1.14; padding-top:2px; }
.service-row p,.service-row ul { font-size:14px; line-height:1.7; }
.service-row ul { padding:0; margin:0; list-style:none; }
.service-row li + li { margin-top:4px; }
.service-row .text-link { margin-top:10px; }
.parcel-actions { display:flex; align-items:center; gap:28px; margin-top:14px; }
.partner-links { display:flex; align-items:center; gap:18px; margin:0; flex:none; }
.partner-links a { display:block; flex:0 1 90px; }
.partner-links img { width:90px; height:72px; object-fit:contain; }
.tracking-block { min-width:0; }
.tracking-label { margin:0; }
.tracking-links { display:flex; flex-wrap:wrap; gap:8px 20px; padding-top:9px; font-size:14px; font-weight:600; }
.tracking-links a { text-decoration:underline; }
.closing { position:relative; isolation:isolate; padding:64px var(--page-gutter) 22px; background:var(--purple); color:var(--lavender); }
.closing-intro { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.closing-intro > div { max-width:470px; }
.closing-intro p { font-size:16px; margin-bottom:22px; }
.contact-shortcuts { display:flex; gap:22px; flex-wrap:wrap; margin-top:12px; font-size:13px; }
.contact-shortcuts a { display:inline-flex; gap:10px; align-items:center; min-height:44px; }
.visit-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:32px; margin-top:36px; border-top:1px solid rgba(232,232,245,.45); padding-top:26px; }
.visit-grid .eyebrow { font-size:11px; margin-bottom:10px; }
.visit-grid a { overflow-wrap:anywhere; }
.visit-grid p,.visit-grid a { font-size:14px; }
.location-line { display:flex; align-items:center; flex-wrap:wrap; gap:16px; margin-bottom:8px; }
.location-line > p { font-size:19px; line-height:1.4; max-width:240px; }
.location-apps { display:flex; gap:8px; }
.map-pin { width:52px; min-height:61px; border-radius:6px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; background:var(--lavender); color:var(--purple); }
.map-pin img { height:26px; width:26px; object-fit:contain; }
.map-pin span { font-size:10px; line-height:1.2; }
.contact-phone,.contact-phone:hover { display:inline-flex; align-items:center; gap:10px; margin-top:8px; font-family:"Baloo Thambi",sans-serif; font-size:24px !important; line-height:1.2; text-decoration:none; }
.visit-hours { padding-inline:28px; border-inline:1px solid rgba(232,232,245,.35); }
.visit-hours h3 { font-size:26px; line-height:1.2; margin-bottom:10px; }
.visit-hours p + p { margin-top:6px; }
.visit-emails > div + div { margin-top:18px; }
.social-section { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:28px; border-top:1px solid rgba(232,232,245,.45); padding:22px 0; }
.social-heading { display:flex; align-items:center; gap:16px; }
.social-heading > img { filter:brightness(0) invert(1); flex:none; }
.social-heading h3 { font-size:25px; line-height:1.25; }
.social-heading p { font-size:13px; margin-top:3px; }
.social-section .text-link { flex:none; }
.campaign-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; border-top:1px solid rgba(232,232,245,.45); padding-top:18px; }
.campaign-footer img { width:260px; }
.campaign-footer > div { text-align:right; font-size:10px; }
.campaign-footer a { display:inline-block; min-height:32px; }
.reveal { transition:opacity .75s ease,transform .75s ease; }
.reveal-ready { opacity:0; transform:translateY(22px); }
.reveal:focus-within { opacity:1; transform:none; }

@media (max-width:1100px) {
 .campaign-header { gap:16px; }
 .campaign-brand { width:185px; }
 .campaign-header nav { gap:18px; }
 .editorial-heading,.closing-intro { gap:36px; }
 .service-rows { column-gap:36px; }
 .service-row { grid-template-columns:1fr; gap:14px; }
 .service-row h3 br { display:none; }
 .visit-grid { gap:22px; }
 .visit-hours { padding-inline:22px; }
}
/* A tall window gets a complete scene followed by copy, never a zoomed crop. */
@media (max-aspect-ratio:4/3), (max-width:1000px) {
 .campaign-hero { display:flex; flex-direction:column; align-items:stretch; min-height:0; padding:0; }
 .campaign-header { position:relative; order:0; padding:20px var(--page-gutter); }
 .hero-media { position:relative; inset:auto; order:1; z-index:0; aspect-ratio:16/9; width:100%; height:auto; max-height:880px; }
 .hero-media video,.hero-poster img { mask-image:none; }
 .hero-media::after { background:linear-gradient(0deg,var(--lavender),transparent 14%,transparent 94%,var(--lavender)); }
 .campaign-hero::after { display:none; }
 .hero-copy { order:2; width:100%; max-width:840px; margin:0 auto; padding:22px var(--page-gutter) 28px; text-align:center; }
 .hero-copy h1 { font-size:clamp(44px,6.8vw,76px); max-width:680px; margin:0 auto 18px; text-wrap:balance; }
 .hero-lead { max-width:650px; margin:0 auto 24px; }
 .hero-caption { position:relative; inset:auto; order:3; margin:0 var(--page-gutter); padding:16px 0; }
}
@media (max-width:850px) {
 .campaign-header { flex-wrap:wrap; justify-content:center; gap:12px; padding-top:16px; padding-bottom:12px; }
 .campaign-brand { width:180px; }
 .campaign-header nav { width:100%; justify-content:center; gap:clamp(12px,3vw,24px); padding:4px; }
 .header-cta { font-size:13px; padding:10px 12px; gap:7px; }
 .visit-grid { grid-template-columns:1fr 1fr; }
 .visit-hours { border-right:0; padding-right:0; }
 .visit-emails { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:20px 48px; }
 .visit-emails > div + div { margin:0; }
}
@media (max-width:600px) {
 .campaign-header nav { font-size:12px; gap:14px; flex-wrap:wrap; }
 .campaign-header nav .header-cta { flex-basis:100%; max-width:220px; }
 .campaign-brand { width:164px; }
 .hero-copy { padding-top:18px; }
 .hero-copy h1 { max-width:340px; font-size:clamp(42px,10vw,58px); }
 .hero-lead { font-size:14px; line-height:1.7; }
 .hero-caption { flex-direction:column; gap:7px; font-size:10px; text-align:center; }
 .hero-caption a { font-size:11px; padding:5px; }
 .editorial { padding-block:46px 48px; }
 .editorial-scene { object-position:70% center; }
 .editorial::before { background:linear-gradient(180deg,var(--lavender),rgba(232,232,245,.86) 20%,rgba(232,232,245,.86) 85%,var(--lavender)); }
 .chapter { font-size:11px; margin-bottom:20px; }
 .editorial-heading,.closing-intro { grid-template-columns:1fr; gap:22px; }
 .editorial h2,.closing h2 { font-size:clamp(42px,10vw,58px); }
 .editorial-heading > p { font-size:15px; }
 .editorial-layout { margin-top:28px; }
 .service-rows { grid-template-columns:1fr; }
 .service-row { padding:24px 0; gap:12px; }
 .service-row h3 { font-size:28px; }
 .service-row p,.service-row ul { font-size:14px; }
 .parcel-actions { align-items:flex-start; flex-direction:column; gap:12px; }
 .closing { padding-block:44px 20px; }
 .closing-intro p { font-size:15px; }
 .button-light { gap:10px; font-size:14px; padding-inline:14px; }
 .visit-grid { grid-template-columns:1fr; margin-top:28px; gap:22px; }
 .visit-grid > div { padding:0 0 22px; border:0; border-bottom:1px solid rgba(232,232,245,.35); }
 .visit-emails { grid-column:auto; flex-direction:column; gap:20px; }
 .visit-grid .visit-emails { border-bottom:0; padding-bottom:0; }
 .social-section { align-items:start; flex-direction:column; gap:12px; margin-top:24px; }
 .social-heading h3 { font-size:23px; }
 .social-heading { gap:12px; }
 .social-heading > img { width:28px; }
 .campaign-footer { flex-direction:column; align-items:start; gap:12px; }
 .campaign-footer > div { text-align:left; font-size:9px; }
 .campaign-footer img { width:230px; }
}
@media (prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { transition:none !important; animation:none !important; }
 .reveal-ready { opacity:1; transform:none; }
 .hero-media video { visibility:hidden; }
 .hero-poster.is-playing { visibility:visible; }
}
