:root{
  --navy:#0B2D5B;
  --navy-2:#123F76;
  --blue:#2F7DDB;
  --blue-dark:#0A5FC7;
  --sky:#6FB8F2;
  --soft:#EAF3FB;
  --soft-2:#F3F8FD;
  --warm:#FCFBF8;
  --white:#FFFFFF;
  --charcoal:#25313D;
  --muted:#657383;
  --line:#DCE7F2;
  --line-strong:#C7D9EA;
  --serif:"freight-text-pro",Georgia,"Times New Roman",serif;
  --sans:"source-sans-3","Helvetica Neue",Arial,sans-serif;
  --shadow-sm:0 12px 32px rgba(11,45,91,.06);
  --shadow-md:0 22px 58px rgba(11,45,91,.10);
  --radius:22px;
  --radius-lg:30px;
  --container:1320px;
}

*,
*::before,
*::after{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  background:var(--warm);
  color:var(--charcoal);
  font-family:var(--sans);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,textarea,select{font:inherit}
button{color:inherit}
figure{margin:0}

:focus-visible{
  outline:3px solid rgba(47,125,219,.42);
  outline-offset:4px;
}

.container{
  width:min(var(--container),calc(100% - 64px));
  margin-inline:auto;
}

.skip-link{
  position:fixed;
  top:10px;
  left:10px;
  z-index:200;
  padding:10px 14px;
  border-radius:8px;
  background:var(--navy);
  color:#fff;
  transform:translateY(-150%);
  transition:transform .15s ease;
}

.skip-link:focus{transform:translateY(0)}

.eyebrow{
  margin:0 0 16px;
  color:var(--blue);
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.17em;
  text-transform:uppercase;
}

.display,
.section-title,
.page-title{
  margin:0;
  color:var(--navy);
  font-family:var(--serif);
  font-weight:600;
  text-wrap:balance;
}

.display{
  font-size:clamp(4rem,5.5vw,5.55rem);
  line-height:.9;
  letter-spacing:-.055em;
}

.display span{color:var(--blue)}

.section-title{
  font-size:clamp(2.7rem,4.25vw,4.15rem);
  line-height:.96;
  letter-spacing:-.042em;
}

.section-title-light{color:#fff}

.page-title{
  max-width:900px;
  font-size:clamp(3.4rem,5.5vw,5.55rem);
  line-height:.93;
  letter-spacing:-.048em;
}

.hero-lead,
.section-lead,
.page-lead{
  color:#445465;
  font-size:clamp(1.08rem,1.45vw,1.28rem);
  line-height:1.6;
  text-wrap:pretty;
}

.btn{
  display:inline-flex;
  min-height:50px;
  width:fit-content;
  max-width:100%;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:13px 24px;
  border:1px solid transparent;
  border-radius:999px;
  font-weight:750;
  white-space:nowrap;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease;
}

.btn-primary{
  color:#fff;
  background:linear-gradient(90deg,#0B5DC7,#2F7DDB);
  box-shadow:0 10px 26px rgba(47,125,219,.18);
}

.btn-primary:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 34px rgba(47,125,219,.24);
}

.btn-secondary{
  color:var(--navy);
  background:#fff;
  border-color:#B9D3EF;
}

.btn-secondary:hover{border-color:var(--blue)}

.btn-light{
  color:var(--navy);
  background:#fff;
}

.btn-light:hover{background:#F5F9FD;transform:translateY(-1px)}

.text-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:5px 0;
  color:var(--navy);
  font-weight:680;
  border-bottom:1px solid transparent;
  transition:border-color .18s ease,color .18s ease;
}

.text-link:hover{border-color:#9FC7EE}
.text-link span{color:var(--blue)}
.text-link-strong{font-weight:760}
.text-link-light{color:#fff}
.text-link-light span{color:#8FC7FF}

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(252,251,248,.94);
  border-bottom:1px solid rgba(220,231,242,.88);
  box-shadow:0 6px 22px rgba(11,45,91,.035);
  backdrop-filter:blur(18px);
}

.nav-shell{
  min-height:84px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
}

.brand{
  display:flex;
  flex:0 0 auto;
  align-items:center;
  padding:4px 0;
  overflow:visible;
}

.brand img{
  display:block;
  width:268px;
  height:auto;
  max-width:100%;
  object-fit:contain;
  object-position:center;
}

.nav-links{
  display:flex;
  align-items:center;
  gap:27px;
  color:var(--navy);
  font-size:.92rem;
  font-weight:650;
}

.nav-links>a:not(.btn){
  position:relative;
  padding:8px 0;
}

.nav-links>a:not(.btn)::after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:3px;
  height:2px;
  background:var(--blue);
  transition:right .18s ease;
}

.nav-links>a:not(.btn):hover::after,
.nav-links>a[aria-current="page"]::after{right:0}

.nav-cta{margin-left:2px}

.menu-btn{
  display:none;
  width:44px;
  height:44px;
  padding:10px;
  border:0;
  background:transparent;
  border-radius:10px;
}

.menu-btn span{
  display:block;
  width:22px;
  height:2px;
  margin:4px auto;
  background:var(--navy);
  border-radius:2px;
}

/* Homepage hero */
.hero{padding:66px 0 54px}

.hero-grid{
  display:grid;
  grid-template-columns:minmax(400px,.8fr) minmax(560px,1.2fr);
  gap:52px;
  align-items:center;
}

.hero-copy{
  min-width:0;
  padding:6px 0;
}

.hero-lead{
  max-width:510px;
  margin:25px 0 24px;
}

.hero-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px 20px;
}

.hero-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 22px;
  margin-top:24px;
  color:#6B7988;
  font-size:.91rem;
}

.hero-meta span{
  position:relative;
  display:inline-flex;
  align-items:center;
}

.hero-meta span+span::before{
  content:"";
  width:4px;
  height:4px;
  margin-right:20px;
  border-radius:50%;
  background:#A9C8E4;
}

.hero-media{
  width:100%;
  min-width:0;
  align-self:center;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(199,217,234,.65);
  border-radius:28px;
  box-shadow:var(--shadow-md);
}

.hero-media img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  object-fit:contain;
  object-position:center center;
  transform:none;
}

/* Support band */
.support-band{
  position:relative;
  z-index:1;
  background:#fff;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  box-shadow:0 10px 30px rgba(11,45,91,.035);
}

.support-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.support-item{
  min-height:154px;
  display:grid;
  grid-template-rows:auto 2.15rem 1fr;
  align-content:start;
  padding:29px 27px 28px;
  border-right:1px solid var(--line);
}

.support-item:last-child{border-right:0}

.support-no{
  display:block;
  margin-bottom:13px;
  color:#91BCE6;
  font-family:var(--serif);
  font-size:1.05rem;
}

.support-item h2{
  margin:0 0 7px;
  color:var(--navy);
  font-family:var(--serif);
  font-size:1.4rem;
  font-weight:600;
  line-height:1.08;
  text-wrap:balance;
}

.support-item p{
  max-width:240px;
  margin:0;
  color:var(--muted);
  font-size:.94rem;
  line-height:1.48;
}

/* Image strip */
.visual-strip{
  padding:24px 0 54px;
  background:var(--warm);
}

.visual-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.visual-card{
  aspect-ratio:1.55/1;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow-sm);
}

.visual-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

/* Shared sections */
.section{padding:102px 0}
.section-blue{background:linear-gradient(180deg,#F4F8FC 0%,#EAF3FB 100%)}

.split-copy{
  display:grid;
  grid-template-columns:1.04fr .96fr;
  gap:72px;
  align-items:start;
}

.copy-column{
  max-width:570px;
  padding-top:28px;
}

.copy-column .section-lead{margin:0 0 20px}

.fact-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px 0;
  margin:0 0 18px;
  color:#5F6E7D;
  font-size:.92rem;
}

.fact-row span{
  position:relative;
  padding:0 16px;
}

.fact-row span:first-child{padding-left:0}

.fact-row span+span::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#9FC7EE;
  transform:translateY(-50%);
}

.section-heading{
  display:grid;
  grid-template-columns:.94fr 1.06fr;
  gap:44px;
  align-items:end;
  margin-bottom:38px;
}

.section-heading>p{
  max-width:520px;
  margin:0 0 4px;
  padding-top:0;
  justify-self:start;
  color:#607080;
  font-size:1.04rem;
  line-height:1.6;
  text-wrap:pretty;
}

/* Subjects */
.subject-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid #CFE0F0;
}

.subject-list>a,
.subject-static{
  display:flex;
  min-height:118px;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:25px 6px 26px 0;
  border-bottom:1px solid #CFE0F0;
}

.subject-list>a:nth-child(odd),
.subject-static:nth-child(odd){margin-right:30px}

.subject-list>a:nth-child(even),
.subject-static:nth-child(even){margin-left:30px}

.subject-list h3{
  margin:0 0 6px;
  color:var(--navy);
  font-family:var(--serif);
  font-size:1.62rem;
  font-weight:600;
  line-height:1.08;
}

.subject-list p{
  margin:0;
  color:#627180;
  line-height:1.5;
}

.subject-list>a>span{
  color:var(--blue);
  font-size:1.2rem;
  transition:transform .18s ease;
}

.subject-list>a:hover>span{transform:translateX(4px)}

.section-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-top:24px;
}

.section-foot p{
  max-width:680px;
  margin:0;
  color:#667686;
}

/* Process */
.process-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:31px;
  padding-top:35px;
  border-top:1px solid var(--line);
}

.process-step{
  display:grid;
  grid-template-rows:auto minmax(3.55rem,auto) 1fr;
  align-content:start;
}

.process-step>span{
  display:flex;
  width:38px;
  height:38px;
  align-items:center;
  justify-content:center;
  margin-bottom:22px;
  border:1px solid #B8D4EE;
  border-radius:50%;
  color:var(--blue);
  font-family:var(--serif);
  font-size:1.16rem;
}

.process-step h3{
  margin:0 0 11px;
  color:var(--navy);
  font-family:var(--serif);
  font-size:1.58rem;
  font-weight:600;
  line-height:1.08;
  text-wrap:balance;
}

.process-step p{
  margin:0;
  color:var(--muted);
  line-height:1.56;
}

/* Story */
.story-section{
  padding:102px 0;
  color:#fff;
  background:var(--navy);
}

.story-grid{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:88px;
  align-items:start;
}

.eyebrow-light{color:#8FC7FF}

.story-lead{
  max-width:700px;
  margin:26px 0;
  color:#D9E6F3;
}

.story-lead p{
  margin:0 0 15px;
  color:#D9E6F3;
  font-size:clamp(1.08rem,1.45vw,1.28rem);
  line-height:1.6;
}

.story-lead p:last-child{margin-bottom:0}

.story-points{border-top:1px solid rgba(255,255,255,.2)}

.story-points article{
  padding:26px 0;
  border-bottom:1px solid rgba(255,255,255,.2);
}

.story-points span{
  display:block;
  margin-bottom:8px;
  color:#8FC7FF;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.story-points h3{
  margin:0 0 7px;
  color:#fff;
  font-family:var(--serif);
  font-size:1.55rem;
  font-weight:600;
}

.story-points p{
  margin:0;
  color:#BED0E1;
}

/* Why */
.why-section .section-title{max-width:900px}

.why-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  margin-top:40px;
  border-top:1px solid var(--line);
}

.why-grid article{
  min-height:180px;
  padding:31px 28px 16px 0;
  border-right:1px solid var(--line);
}

.why-grid article+article{padding-left:28px}
.why-grid article:last-child{border-right:0;padding-right:0}

.why-grid h3{
  margin:0 0 9px;
  color:var(--navy);
  font-family:var(--serif);
  font-size:1.55rem;
  font-weight:600;
}

.why-grid p{
  margin:0;
  color:var(--muted);
  line-height:1.58;
}

/* Pricing */
.pricing-section{padding-top:18px}

.price-panel{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:54px;
  align-items:center;
  padding:48px 52px;
  color:#fff;
  background:linear-gradient(135deg,#123F76,#0B2D5B);
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius-lg);
  box-shadow:0 24px 64px rgba(11,45,91,.16);
}

.price-panel p{
  margin:16px 0 0;
  color:#D9E6F3;
  font-size:1.05rem;
}

.price-panel strong{color:#fff}

.price-actions{
  display:flex;
  min-width:178px;
  align-items:flex-start;
  flex-direction:column;
  justify-content:center;
  gap:8px;
}

/* FAQ */
.faq-layout{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:84px;
  align-items:start;
}

.faq-intro .text-link{margin-top:18px}

.faq{margin:0}

.faq-item{border-bottom:1px solid var(--line)}
.faq-item:first-child{border-top:1px solid var(--line)}

.faq-q{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:21px 0;
  border:0;
  background:transparent;
  color:var(--navy);
  font-weight:700;
  text-align:left;
  cursor:pointer;
}

.faq-q span{
  flex:0 0 auto;
  color:var(--blue);
  font-size:1.2rem;
  transition:transform .2s ease;
}

.faq-a{
  display:none;
  max-width:720px;
  padding:0 36px 22px 0;
  color:var(--muted);
  line-height:1.62;
}

.faq-item.open .faq-a{display:block}
.faq-item.open .faq-q span{transform:rotate(45deg)}

/* Final CTA */
.final-cta-section{padding:18px 0 100px}

.final-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:50px;
  padding:48px 52px;
  color:#fff;
  background:var(--navy-2);
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius-lg);
  box-shadow:0 22px 54px rgba(11,45,91,.13);
}

.final-cta p{
  margin:16px 0 0;
  color:#D9E6F3;
  font-size:1.04rem;
}

.final-cta-actions{
  display:flex;
  min-width:178px;
  align-items:flex-start;
  flex-direction:column;
  justify-content:center;
  gap:8px;
}

/* Interior pages */
.page-hero{
  padding:88px 0 72px;
  background:linear-gradient(180deg,#F7FAFD 0%,#EEF5FB 100%);
  border-bottom:1px solid var(--line);
}

.page-hero-inner{
  max-width:1160px;
  margin-inline:auto;
}

.page-hero-inner-single{
  max-width:980px;
}

.page-lead{
  max-width:760px;
  margin:20px 0 0;
}

.page-main{padding:82px 0 112px}

.page-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 292px;
  gap:76px;
  max-width:1160px;
  margin-inline:auto;
  align-items:start;
}

.page-layout-single{
  grid-template-columns:minmax(0,980px);
  justify-content:center;
}

.page-content{
  min-width:0;
  width:100%;
}

.page-aside{
  position:sticky;
  top:112px;
}

.aside-card{
  padding:27px 25px 24px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow-sm);
}

.aside-card .eyebrow{margin-bottom:18px}

.aside-card ul{
  list-style:none;
  margin:0;
  padding:0;
  border-top:1px solid var(--line);
}

.aside-card li{
  display:grid;
  gap:2px;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}

.aside-card li strong{
  color:var(--navy);
  font-size:.96rem;
}

.aside-card li span{
  color:#748291;
  font-size:.84rem;
}

.aside-cta{
  display:grid;
  gap:12px;
  margin-top:21px;
}

.aside-cta .btn{width:100%}
.aside-cta .text-link{justify-content:center}

.content-block{
  padding:26px 0 29px;
  border-top:1px solid var(--line);
}

.content-block:first-child{padding-top:0;border-top:0}

.content-block h2,
.booking-box h2,
.page-cta h2{
  margin:0 0 11px;
  color:var(--navy);
  font-family:var(--serif);
  font-size:clamp(1.9rem,2.8vw,2.55rem);
  font-weight:600;
  line-height:1.05;
  letter-spacing:-.025em;
}

.content-block p{
  max-width:760px;
  margin:0;
  color:#536273;
  font-size:1.04rem;
  line-height:1.7;
  text-wrap:pretty;
}

.link-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:28px 0 0;
}

.link-card{
  display:flex;
  min-height:88px;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:20px 22px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  color:var(--navy);
  box-shadow:0 10px 28px rgba(11,45,91,.055);
  transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease;
}

.link-card:hover{
  border-color:#AFCBE6;
  transform:translateY(-2px);
  box-shadow:0 14px 32px rgba(11,45,91,.085);
}
.link-card span{font-family:var(--serif);font-size:1.35rem;font-weight:600;line-height:1.12;text-wrap:balance}
.link-card strong{color:var(--blue);font-size:1.15rem}

.page-faq{margin-top:6px}

.booking-section{
  display:grid;
  gap:24px;
}

.booking-intro{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
}

.booking-intro>div{
  max-width:700px;
}

.booking-intro h2{
  margin:0 0 11px;
  color:var(--navy);
  font-family:var(--serif);
  font-size:clamp(1.9rem,2.8vw,2.55rem);
  font-weight:600;
  line-height:1.05;
  letter-spacing:-.025em;
}

.booking-intro p:not(.eyebrow){
  margin:0;
  color:var(--muted);
  line-height:1.65;
}

.booking-embed-shell{
  min-height:560px;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:var(--shadow-sm);
}

.tidycal-embed{
  width:100%;
  min-height:560px;
}

.booking-box{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:38px;
  margin-top:8px;
  padding:36px;
  background:linear-gradient(145deg,#F2F7FC,#fff);
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:var(--shadow-sm);
}

.booking-box p:not(.eyebrow){
  max-width:680px;
  margin:0 0 24px;
  color:var(--muted);
  line-height:1.65;
}

.booking-status{
  align-self:center;
  min-width:220px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:15px 16px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
}

.booking-status>span{
  width:9px;
  height:9px;
  flex:0 0 auto;
  border-radius:50%;
  background:#8FB9DF;
}

.booking-status strong,
.booking-status small{
  display:block;
}

.booking-status strong{
  color:var(--navy);
  font-size:.9rem;
}

.booking-status small{
  margin-top:3px;
  color:#778594;
  font-size:.78rem;
  line-height:1.35;
}

.form{
  display:grid;
  gap:22px;
  padding:34px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:var(--shadow-sm);
}

.form-intro{
  padding-bottom:4px;
}

.form-intro h2{
  margin:0 0 8px;
  color:var(--navy);
  font-family:var(--serif);
  font-size:2rem;
  line-height:1.05;
}

.form-intro p:last-child{
  max-width:680px;
  margin:0;
  color:var(--muted);
  line-height:1.58;
}

.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.field{
  display:grid;
  gap:8px;
}

.field label{
  color:var(--navy);
  font-size:.93rem;
  font-weight:700;
}

.field input,
.field textarea{
  width:100%;
  padding:13px 14px;
  color:var(--charcoal);
  background:#fff;
  border:1px solid #C9D9E8;
  border-radius:10px;
  outline:0;
}

.field input:focus,
.field textarea:focus{
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(47,125,219,.11);
}

.field textarea{resize:vertical}

.field .optional{
  color:#7A8794;
  font-size:.82rem;
  font-weight:500;
}

.hp-field{
  position:absolute !important;
  left:-10000px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}

.turnstile-row{
  min-height:65px;
  display:flex;
  align-items:center;
}

.form-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:18px;
}

.form-note{
  max-width:520px;
  margin:0;
  color:#758291;
  font-size:.9rem;
  line-height:1.45;
}

.form-actions .btn:disabled{
  opacity:.68;
  cursor:wait;
  transform:none;
}

.page-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  margin-top:44px;
  padding:34px 36px;
  color:#fff;
  background:linear-gradient(135deg,#123F76,#0B2D5B);
  border:1px solid rgba(255,255,255,.08);
  border-radius:24px;
  box-shadow:0 18px 48px rgba(11,45,91,.10);
}

.page-cta h2{color:#fff}

.page-cta p{
  margin:0;
  color:#D9E6F3;
}

.page-cta .text-link{color:#fff}
.page-cta .text-link span{color:#8FC7FF}

.page-cta>div:last-child{
  display:flex;
  min-width:178px;
  align-items:flex-start;
  flex-direction:column;
  justify-content:center;
  gap:8px;
}

.page-cta .btn-primary{
  color:#fff;
  background:linear-gradient(90deg,#0B5DC7,#2F7DDB);
}

/* Footer */
.site-footer{
  padding:68px 0 30px;
  color:#D8E6F4;
  background:#08264E;
}

.footer-grid{
  display:grid;
  grid-template-columns:1.55fr repeat(3,.75fr);
  gap:64px;
  padding-bottom:48px;
}

.footer-brand{max-width:420px}

.footer-wordmark{
  display:inline-block;
  margin-bottom:15px;
  color:#fff;
  font-family:var(--serif);
  font-size:2.18rem;
  font-weight:600;
  letter-spacing:-.035em;
  line-height:1;
}

.footer-wordmark span{color:#7FC2FF}

.footer-brand p{
  margin:0;
  color:#BFD0E2;
  line-height:1.62;
}

.footer-col{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
}

.footer-col h2{
  margin:0 0 6px;
  color:#fff;
  font-size:.78rem;
  font-family:var(--sans);
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.footer-col a{
  color:#C7D7E7;
  font-size:.94rem;
}

.footer-col a:hover{color:#fff}

.footer-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.14);
  color:#9FB5CB;
  font-size:.86rem;
}

.footer-bottom>div{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
}

.footer-bottom a:hover{color:#fff}

/* Tablet */
@media(max-width:1080px){
  .container{width:min(var(--container),calc(100% - 48px))}
  .brand img{width:238px}
  .nav-links{gap:19px;font-size:.9rem}

  .hero{
    padding-top:58px;
  }

  .hero-grid{
    grid-template-columns:1fr;
    gap:38px;
  }

  .hero-copy{max-width:760px}
  .hero-media{max-width:none}
  .hero-media img{width:100%}

  .split-copy,
  .story-grid,
  .faq-layout{
    grid-template-columns:1fr;
  }

  .split-copy{gap:22px}
  .copy-column{max-width:760px;padding-top:0}
  .story-grid{gap:52px}
  .faq-layout{gap:38px}

  .section-heading{
    grid-template-columns:1fr;
    gap:14px;
    align-items:start;
  }

  .section-heading>p{
    margin:0;
    padding-top:0;
    justify-self:start;
  }

  .why-grid{
    grid-template-columns:1fr 1fr;
  }

  .why-grid article:nth-child(2){border-right:0}
  .why-grid article:nth-child(3){padding-left:0}
  .why-grid article:nth-child(-n+2){border-bottom:1px solid var(--line)}

  .page-hero-inner{
    max-width:980px;
  }

  .page-layout{
    grid-template-columns:minmax(0,1fr);
    max-width:980px;
  }

  .page-aside{
    position:static;
  }
}

/* Responsive navigation */
@media(max-width:1120px){
  .site-header{backdrop-filter:blur(14px)}
  .nav-shell{min-height:76px;position:relative}
  .brand img{width:228px}

  .menu-btn{
    display:block;
    flex:0 0 auto;
  }

  .nav-links{
    display:none;
    position:absolute;
    top:calc(100% + 1px);
    left:0;
    right:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:14px 18px 20px;
    background:rgba(252,251,248,.985);
    border:1px solid var(--line);
    border-top:0;
    border-radius:0 0 18px 18px;
    box-shadow:0 18px 36px rgba(11,45,91,.10);
  }

  .nav-links.open{display:flex}

  .nav-links>a:not(.btn){
    padding:13px 8px;
    border-bottom:1px solid var(--line);
  }

  .nav-links>a:not(.btn)::after{display:none}
  .nav-cta{margin:16px 0 0;width:100%}

}

/* Medium */
@media(max-width:900px){
  .section{padding:90px 0}
  .story-section{padding:90px 0}
  .page-hero{padding:74px 0 60px}
  .page-main{padding:70px 0 96px}

  .support-grid,
  .process-grid{
    grid-template-columns:1fr 1fr;
  }

  .support-item:nth-child(2){border-right:0}
  .support-item:nth-child(-n+2){border-bottom:1px solid var(--line)}

  .process-grid{gap:34px 26px}

  .subject-list{grid-template-columns:1fr}
  .subject-list>a:nth-child(odd),
  .subject-static:nth-child(odd),
  .subject-list>a:nth-child(even),
  .subject-static:nth-child(even){margin:0}

  .price-panel{
    grid-template-columns:1fr;
    gap:30px;
  }

  .price-actions{justify-content:flex-start}

  .final-cta{
    display:grid;
    gap:30px;
  }

  .final-cta-actions{
    justify-content:flex-start;
  }

  .footer-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:42px 28px;
  }

  .footer-brand{
    grid-column:1/-1;
    max-width:560px;
  }

  .footer-grid .footer-col:last-child{grid-column:auto}
}

/* Small */
@media(max-width:700px){
  .container{width:calc(100% - 32px)}

  .nav-shell{min-height:72px}
  .brand img{width:214px}

  .display{
    font-size:clamp(3.45rem,15vw,4.15rem);
    line-height:.9;
  }

  .section-title{
    font-size:clamp(2.4rem,10.5vw,2.9rem);
  }

  .page-title{
    font-size:clamp(3rem,12vw,3.55rem);
  }

  .hero{padding:44px 0 38px}
  .hero-grid{gap:30px}

  .hero-lead{
    margin:23px 0 22px;
    font-size:1.08rem;
  }

  .hero-actions{
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
  }

  .hero-meta{
    display:grid;
    gap:6px;
    margin-top:24px;
  }

  .hero-meta span+span::before{display:none}

  .hero-media{
    width:100%;
    margin-top:2px;
    border-radius:20px;
  }

  .support-grid{grid-template-columns:1fr}

  .support-item{
    min-height:0;
    display:block;
    padding:23px 21px 24px;
    border-right:0;
    border-bottom:1px solid var(--line);
  }

  .support-item:last-child{border-bottom:0}
  .support-item:nth-child(-n+2){border-bottom:1px solid var(--line)}

  .support-item p{max-width:none}

  .visual-strip{padding:18px 0 34px}

  .visual-grid{
    grid-template-columns:1fr;
    gap:14px;
  }

  .visual-card{
    aspect-ratio:1.55/1;
    border-radius:17px;
  }

  .section{padding:78px 0}
  .story-section{padding:80px 0}

  .section-heading{margin-bottom:28px}

  .fact-row{
    display:grid;
    gap:7px;
  }

  .fact-row span{padding:0}
  .fact-row span+span::before{display:none}

  .subject-list>a,
  .subject-static{
    min-height:0;
    padding:21px 0 22px;
  }

  .section-foot{
    align-items:flex-start;
    flex-direction:column;
  }

  .process-grid{grid-template-columns:1fr}
  .process-step{grid-template-rows:auto auto auto}
  .process-step>span{margin-bottom:14px}

  .story-grid{gap:38px}

  .why-grid{
    grid-template-columns:1fr;
    margin-top:37px;
  }

  .why-grid article,
  .why-grid article+article,
  .why-grid article:nth-child(3){
    min-height:0;
    padding:24px 0;
    border-right:0;
    border-bottom:1px solid var(--line);
  }

  .why-grid article:last-child{border-bottom:0}

  .price-panel,
  .final-cta{
    padding:34px 25px;
    border-radius:23px;
  }

  .price-actions{
    align-items:flex-start;
    flex-direction:column;
  }

  .booking-intro{
    align-items:flex-start;
    flex-direction:column;
    gap:18px;
  }

  .booking-box{
    grid-template-columns:1fr;
    gap:24px;
    padding:27px 23px;
  }

  .booking-embed-shell,
  .tidycal-embed{
    min-height:620px;
  }

  .booking-status{
    min-width:0;
  }

  .final-cta{
    display:grid;
    gap:30px;
  }

  .final-cta-actions{
    align-items:flex-start;
    justify-content:flex-start;
    flex-direction:column;
  }

  .faq-a{padding-right:10px}

  .page-hero{padding:60px 0 50px}
  .page-main{padding:58px 0 82px}
  .page-layout{gap:38px}

  .link-grid{grid-template-columns:1fr}

  .form{
    padding:24px 20px;
    border-radius:18px;
  }

  .form-row{grid-template-columns:1fr}

  .page-cta{
    align-items:flex-start;
    flex-direction:column;
    padding:27px 24px;
  }

  .page-cta>div:last-child{
    align-items:flex-start;
    justify-content:flex-start;
    flex-direction:column;
  }

  .footer-grid{
    grid-template-columns:1fr 1fr;
    gap:38px 28px;
  }

  .footer-brand{
    grid-column:1/-1;
  }

  .footer-grid .footer-col:last-child{grid-column:auto}

  .footer-bottom{
    align-items:flex-start;
    flex-direction:column;
  }
}

@media(max-width:430px){
  .brand img{width:190px}
  .container{width:calc(100% - 26px)}
  .btn{padding-inline:20px}
  .footer-grid{grid-template-columns:1fr}
  .footer-brand{grid-column:auto}
}
