:root{--navy:#0A1F4F;--navy2:#071638;--pink:#FBA6D0;--pink-t:#FDE3F1;--cyan:#7EE3F0;--ice:#E8F3FC;--ink:#1B2B55;--w:1200px}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;color:var(--ink);line-height:1.6;background:#fff;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}a{color:inherit;text-decoration:none}
.inner{max-width:var(--w);margin:0 auto;padding:0 28px}
h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:700;color:var(--navy);line-height:1.15}
.eyebrow{display:flex;align-items:center;gap:12px;font:600 11.5px/1 'Poppins',sans-serif;letter-spacing:.24em;text-transform:uppercase;color:var(--navy)}
.eyebrow:before{content:"";width:28px;height:2px;background:var(--pink)}.center .eyebrow{justify-content:center}
.btn{display:inline-flex;align-items:center;gap:10px;font:600 15px/1 'Inter',sans-serif;padding:16px 26px;border-radius:6px;border:1.5px solid var(--pink);background:var(--pink);color:var(--navy);transition:.2s;cursor:pointer}
.btn:hover{background:#fff;transform:translateY(-1px)}.btn svg{width:18px;height:18px}
.btn.ghost{background:transparent;border-color:#6F8BD6;color:#fff}.btn.ghost:hover{background:#fff;color:var(--navy)}
.btn.ghost.dk{border-color:var(--navy);color:var(--navy)}.btn.sm{padding:11px 22px;font-size:14px}
/* header */
.topbar{background:var(--navy);position:sticky;top:0;z-index:50;padding-top:env(safe-area-inset-top)}
.topbar .inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:86px}
.brand{display:flex;align-items:center;gap:14px;color:#fff}.brand svg{width:46px;height:54px;flex:none}
.brand b{display:block;font:700 17px/1.1 'Poppins',sans-serif;letter-spacing:.02em}
.brand small{display:block;font:600 9.5px/1 'Poppins',sans-serif;letter-spacing:.14em;margin-top:6px;color:#DCE6FF}
.mainnav{display:flex;gap:30px}.mainnav a{color:#fff;font-size:14.5px;padding:8px 0;border-bottom:2px solid transparent}
.mainnav a:hover,.mainnav a[aria-current=page]{border-color:var(--pink);color:var(--pink)}
.hamburger{display:none;background:none;border:0;width:40px;height:40px;cursor:pointer}.hamburger span{display:block;height:2px;margin:6px 8px;background:#fff}
/* hero */
.hero{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.hero .inner{position:relative;z-index:2;padding-top:46px;padding-bottom:40px;min-height:420px}
.hero-copy{max-width:640px}.hero .eyebrow{color:#DCE6FF;margin-bottom:22px}
.hero h1{color:#fff;font:800 clamp(40px,5.6vw,66px)/1.05 'Poppins',sans-serif;letter-spacing:-.01em}
.hero h1 .p{color:var(--pink)}.hero h1 .c{color:var(--cyan)}
.hero p.lede{font-size:18px;line-height:1.55;margin:22px 0 28px;color:#EAF0FF}
.actions{display:flex;gap:16px;flex-wrap:wrap}
.badges{display:flex;gap:26px;flex-wrap:wrap;margin-top:34px}.badge{display:flex;align-items:center;gap:11px;font-size:13.5px;line-height:1.25;color:#fff}.badge svg{width:36px;height:36px;flex:none}
/* image slots: show a labelled placeholder until the photo file exists */
.ph-slot{position:relative;display:grid;place-items:center;background:repeating-linear-gradient(45deg,#16306B 0 14px,#1B3A7D 14px 28px)}
.ph-slot:before{content:attr(data-label);white-space:pre-line;text-align:center;color:#D5E1FF;font:600 13px/1.5 'Poppins',sans-serif;letter-spacing:.06em;padding:14px 20px;border:2px dashed #7F9BE0;border-radius:8px;background:rgba(10,31,79,.7)}
.ph-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-img{position:absolute;top:0;right:0;bottom:0;width:62%;-webkit-mask:linear-gradient(90deg,transparent,#000 38%);mask:linear-gradient(90deg,transparent,#000 38%)}
/* handwritten tagline on the hero photo */
.hero-script{position:absolute;z-index:3;right:5%;bottom:11%;transform:rotate(-9deg);text-align:center;font-family:'Caveat','Segoe Script','Bradley Hand',cursive;font-weight:700;color:var(--navy);font-size:clamp(30px,3.7vw,50px);line-height:1;text-shadow:0 0 14px rgba(255,255,255,.75),0 0 4px rgba(255,255,255,.6);pointer-events:none}
.hero-script span{display:block}.hero-script span+span{margin-top:2px}
.hs-line{display:block;width:92%;margin:4px auto 0}.hs-heart{display:block;width:.55em;margin:6px auto 0;filter:drop-shadow(0 0 4px rgba(255,255,255,.7))}
/* sections */
.section{padding:56px 0}.center{text-align:center}.center .eyebrow{margin-bottom:14px}
.section h2{font-size:clamp(28px,3.6vw,40px)}.sub{font-size:19px;margin-top:10px;color:var(--ink)}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:34px;text-align:left}
.card{background:#fff;border:1px solid #DCE8F5;border-radius:6px;overflow:hidden;box-shadow:0 2px 10px rgba(10,31,79,.05);display:flex;flex-direction:column}
.card img{width:100%;height:150px;object-fit:cover}.card .bd{padding:18px 20px 22px;display:flex;flex-direction:column;flex:1}
.card .hd{display:flex;align-items:center;gap:12px;margin-bottom:10px}.card .hd svg{width:38px;height:38px;color:var(--navy);flex:none}
.card h3{font-size:20px;line-height:1.15}.card p{font-size:14.5px;line-height:1.55;flex:1}.card .btn{margin-top:16px;justify-content:center;width:100%}
.why{background:var(--navy);color:#fff;display:grid;grid-template-columns:42% 1fr}
.why .ph{min-height:260px}
.why .tx{padding:34px 40px;display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:center}
.why h2{color:#fff;font-size:34px;margin:14px 0 10px}.why p{font-size:14.5px;color:#DCE6FF;margin-bottom:18px}.why .eyebrow{color:#DCE6FF}
.icons{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 14px;text-align:center;font-size:12.5px;line-height:1.3}
.icons div{display:flex;flex-direction:column;align-items:center;gap:8px}
.ring{width:54px;height:54px;border:1.5px solid #fff;border-radius:50%;display:grid;place-items:center}.ring svg{width:26px;height:26px}
.bookband{background:var(--ice)}.bookband .inner{display:flex;align-items:center;gap:34px;padding-top:28px;padding-bottom:28px;flex-wrap:wrap}
.cal{width:78px;height:78px;border-radius:50%;background:var(--pink);display:grid;place-items:center;color:var(--navy);flex:none}.cal svg{width:38px;height:38px}
.bookband .t{flex:1;min-width:260px}.bookband h2{font-size:27px;margin:6px 0 4px}.bookband p{font-size:14.5px}
.steps{display:flex;gap:0}.steps div{display:flex;align-items:center;gap:12px;padding:0 24px;border-left:1px solid #B9CDE6;font-size:13.5px;line-height:1.3}.steps svg{width:36px;height:36px;color:var(--navy);flex:none}
/* footer */
.site-footer{background:var(--navy);color:#fff;padding-top:36px}
.foot{display:grid;grid-template-columns:1.2fr 1.2fr 1.1fr;gap:30px;align-items:start;padding-bottom:26px}
.foot .tag{margin-top:16px;font-size:15px}.flinks{display:grid;grid-auto-flow:column;grid-template-rows:repeat(5,auto);gap:6px 40px;padding-left:34px;border-left:1px solid #26407A;font-size:13.5px}
.flinks a:hover,.fc a:hover{color:var(--pink)}.flinks a[aria-current=page]{text-decoration:underline;color:var(--pink)}
.fc{padding-left:34px;border-left:1px solid #26407A;font-size:13.5px;display:grid;gap:10px}.fc div{display:flex;gap:12px;align-items:center}.fc svg{width:18px;height:18px;flex:none}
.social{display:flex;gap:16px;margin-top:4px}.foot-bottom{border-top:1px solid #26407A;display:flex;justify-content:space-between;padding:16px 0;font-size:12.5px;gap:16px;flex-wrap:wrap}
@media(max-width:980px){.mainnav,.topbar .btn{display:none}.hamburger{display:block}.mainnav.open{display:flex;flex-direction:column;position:absolute;top:86px;left:0;right:0;background:var(--navy);padding:14px 28px 22px;gap:14px}
.cards{grid-template-columns:repeat(2,1fr)}.why,.why .tx,.foot{grid-template-columns:1fr}.flinks,.fc{border:0;padding:0}.steps{flex-wrap:wrap;gap:14px}.steps div{border:0;padding:0}.hero-img{width:100%;opacity:.35}.flinks{grid-auto-flow:row;grid-template-rows:none;grid-template-columns:1fr 1fr}}
@media(max-width:760px){.hero-script{display:none}}
@media(max-width:560px){.cards{grid-template-columns:1fr}.inner{padding:0 20px}}
/* ---- contact page ---- */
.hero h1.serif{font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:clamp(34px,4.6vw,56px);line-height:1.1}
.cgrid{display:grid;grid-template-columns:1fr 1.3fr;gap:44px;align-items:start}
.formcard{background:var(--ice);border-radius:12px;padding:26px 26px 28px}
.formcard h2,.cright h2{font-size:clamp(30px,3.4vw,40px);margin:12px 0 10px}.formcard>p,.cright>p{font-size:16.5px;margin-bottom:22px}
.f{position:relative;display:block;margin-bottom:14px}.f svg{position:absolute;left:16px;top:50%;width:20px;height:20px;transform:translateY(-50%);color:var(--navy);pointer-events:none}
.f input,.f select,.f textarea{width:100%;font:400 15px 'Inter',sans-serif;color:var(--ink);background:#fff;border:1.5px solid #C9D9EC;border-radius:6px;padding:16px 16px 16px 48px;outline:0;appearance:none;-webkit-appearance:none}
.f textarea{min-height:104px;resize:vertical}.f.ta svg{top:20px;transform:none}.f select{padding-right:44px}
.f.sel:after{content:"";position:absolute;right:18px;top:50%;width:8px;height:8px;border:solid var(--navy);border-width:0 2px 2px 0;transform:translateY(-70%) rotate(45deg);pointer-events:none}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(251,166,208,.45)}
.formcard .btn{width:100%;justify-content:center;font-size:16px;padding:17px}
.cd{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;margin:6px 0 34px}
.cd>div{padding:0 12px;border-left:1px solid #D5E2F1;font-size:12.5px;line-height:1.45;display:flex;flex-direction:column;align-items:center;gap:3px}.cd>div:first-child{border:0}
.cd b{font:700 15px 'Inter',sans-serif;color:var(--navy);margin-top:8px}.cd i{font-style:normal;color:#5A6B91;margin-top:6px}
.cd .ring{width:56px;height:56px;border:0;background:var(--ice);color:var(--navy)}.cd .ring svg{width:26px;height:26px}
.area{display:grid;grid-template-columns:1fr 1.05fr;gap:22px;align-items:start}.area h3{font-size:27px;margin:12px 0 8px}.area p{font-size:14px}
.chk{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:9px;font-size:14px}.chk li{display:flex;gap:10px;align-items:center}
.chk svg{width:18px;height:18px;padding:2px;background:var(--pink);color:#fff;border-radius:4px;flex:none}
.map{border:1.5px solid #C9D9EC;border-radius:6px;overflow:hidden;min-height:250px}.map iframe{width:100%;height:250px;border:0;display:block}
.direct{display:grid;grid-template-columns:30% 1fr;background:var(--ice);margin-top:56px}.direct .ph{min-height:190px}
.direct .tx{display:flex;align-items:center;gap:30px;padding:26px 34px;flex-wrap:wrap}.direct h2{font-size:30px;margin:8px 0}.direct .tx>div:first-child{flex:1;min-width:260px}.direct p{font-size:14.5px;margin-bottom:16px}
.direct .icons{grid-template-columns:repeat(3,1fr);color:var(--navy);gap:14px;min-width:300px}.direct .ring{border-color:#fff;background:#fff;width:62px;height:62px}.direct .ring svg{width:30px;height:30px}
.faqband{background:var(--ice);border-top:1px solid #D9E6F4;position:relative;overflow:hidden}.faqband .inner{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-top:30px;padding-bottom:30px;flex-wrap:wrap}
.faqband h2{font-size:32px;margin:8px 0 4px}.faqband .ph{position:absolute;right:0;top:0;bottom:0;width:30%;-webkit-mask:linear-gradient(90deg,transparent,#000 40%);mask:linear-gradient(90deg,transparent,#000 40%)}
.faqband .tx2{display:flex;gap:30px;align-items:center;position:relative;z-index:2;width:68%;flex-wrap:wrap}.faqband .tx2>div{flex:1;min-width:240px}
.hero-script.dk{color:var(--navy)}.fs{margin-top:12px;padding:13px 16px;border-radius:10px;font-size:14px;font-weight:500}
@media(max-width:980px){.cgrid,.area,.direct{grid-template-columns:1fr}.cd{grid-template-columns:repeat(2,1fr);gap:24px 0}.cd>div:nth-child(3){border:0}.faqband .ph{display:none}.faqband .tx2{width:100%}}

/* pages not built yet */
.nolink{cursor:default;opacity:.55;pointer-events:none}
.mainnav a.nolink:hover{border-color:transparent;color:#fff}

/* footer credit */
.credit{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border:1px solid #26407A;border-radius:999px;font-size:12px;color:#BFD0F5;background:rgba(255,255,255,.04)}
.credit a{color:var(--pink);font-weight:600;border-bottom:1px solid transparent;transition:.2s}.credit a:hover{border-color:var(--pink);color:#fff}
.credit:before{content:"\2665";color:var(--pink);font-size:11px}
@media(max-width:700px){.foot-bottom{justify-content:center;text-align:center}}
/* ---- about page ---- */
.hero-script.tr{top:7%;bottom:auto;right:6%}.hero-script.sm{font-size:clamp(26px,3vw,40px)}
.storygrid{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:center}
.storygrid h2{font-size:clamp(32px,3.8vw,44px);margin:14px 0 16px}.storygrid .lead{font-size:18px;line-height:1.55;margin-bottom:16px}.storygrid p{font-size:15.5px;line-height:1.6;margin-bottom:14px}
.storyimg{position:relative;min-height:340px;border-radius:4px;overflow:hidden}
.values{background:var(--ice);padding:42px 0 46px}.values h2{font-size:clamp(30px,3.6vw,42px);margin:12px 0 8px}
.vals{display:grid;grid-template-columns:repeat(5,1fr);margin-top:30px;text-align:center}
.vals>div{padding:0 18px;border-left:1px solid #C9D9EC;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:14.5px;line-height:1.45}.vals>div:first-child{border:0}
.vals .ring{width:76px;height:76px;border:0;background:#fff;color:var(--navy);margin-bottom:6px}.vals .ring svg{width:38px;height:38px}.vals b{font:700 17px 'Inter',sans-serif;color:var(--navy)}
.mission{display:grid;grid-template-columns:22% 36% 1fr;gap:12px;padding:10px 12px 10px 0;background:#fff}.mission .ph{min-height:260px;border-radius:0 5px 5px 0}.mission .ph.r{border-radius:5px}
.mission .card2{background:var(--navy);color:#fff;border-radius:6px;padding:30px 30px;display:flex;flex-direction:column;justify-content:center}
.mission .card2 h2{color:#fff;font-size:clamp(28px,3vw,36px);margin:12px 0 12px}.mission .card2 p{font-size:15.5px;line-height:1.6;color:#E3EBFF}.mission .card2 .eyebrow{color:#DCE6FF}
.diff{background:var(--ice)}.diff .inner{display:grid;grid-template-columns:1fr 1.5fr;gap:30px;align-items:center;padding-top:22px;padding-bottom:22px}
.diff h2{font-size:clamp(28px,3.2vw,38px);margin:10px 0 6px}.diff p{font-size:15.5px}.diff .vals{margin:0}.diff .vals>div{font-size:12.5px;gap:6px}.diff .vals .ring{width:54px;height:54px;background:transparent;margin:0}.diff .vals .ring svg{width:34px;height:34px}
.cta2{background:var(--navy);color:#fff;position:relative;overflow:hidden}.cta2 .inner{position:relative;z-index:2;padding-top:34px;padding-bottom:34px;max-width:var(--w)}
.cta2 h2{color:#fff;font-size:clamp(30px,3.6vw,42px);margin:10px 0 8px}.cta2 p{color:#E3EBFF;margin-bottom:18px}.cta2 .eyebrow{color:#DCE6FF}
.cta2 .ph{position:absolute;top:0;right:0;bottom:0;width:52%;-webkit-mask:linear-gradient(90deg,transparent,#000 40%);mask:linear-gradient(90deg,transparent,#000 40%)}
@media(max-width:980px){.storygrid,.diff .inner,.mission{grid-template-columns:1fr}.vals{grid-template-columns:repeat(2,1fr);gap:24px 0}.vals>div:nth-child(odd){border:0}.mission .ph{border-radius:5px}.mission{padding:10px 12px}.cta2 .ph{opacity:.35;width:100%}}

/* ===== Keep page content inside the same width as the header (--w) on wide screens ===== */
:root{--edge:max(0px,calc((100% - var(--w)) / 2))}
@media(min-width:981px){
  /* photos that were pinned to the browser edge now sit at the content edge */
  .hero-img{right:var(--edge);width:min(62%,calc(var(--w) * .62))}
  .faqband .ph{right:var(--edge);width:min(30%,calc(var(--w) * .3))}
  .cta2 .ph{right:var(--edge);width:min(52%,calc(var(--w) * .52))}
  .hero>.hero-script,.cta2>.hero-script{right:calc(var(--edge) + 36px)}
  /* split bands: backgrounds stay full-width, the grid inside is held to the content width */
  .why{padding-left:var(--edge);padding-right:var(--edge)}
}
@media(min-width:1201px){
  /* on wide screens fade the photo into the background on both sides */
  .hero-img,.cta2 .ph,.faqband .ph{-webkit-mask:linear-gradient(90deg,transparent,#000 36%,#000 90%,transparent);mask:linear-gradient(90deg,transparent,#000 36%,#000 90%,transparent)}
  /* boxed bands */
  .direct,.mission{max-width:var(--w);margin-left:auto;margin-right:auto}
  .direct,.mission .ph{border-radius:8px;overflow:hidden}
}