/* ===========================================================
   DecisiveDolphin Coaching — learn.decisivedolphin.com
   Light institutional / prospectus rework
   =========================================================== */

:root{
  --bone:       #F7F4ED;
  --bone-deep:  #F0ECE2;
  --paper:      #FFFDF8;
  --ink:        #0F1E2E;
  --ink-soft:   #3C4C5C;
  --ink-mute:   #6E7B88;
  --brass:      #96773F;
  --brass-soft: #B49A6B;
  --rule:       rgba(15,30,46,.13);
  --rule-soft:  rgba(15,30,46,.07);

  --serif: "Spectral", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --gutter: 24px;
  --maxw: 1120px;

  color-scheme: light;
}

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

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

body{
  margin:0;
  background-color:var(--bone);
  background-image:
    radial-gradient(1200px 620px at 78% -10%, rgba(150,119,63,.075), transparent 62%),
    radial-gradient(900px 520px at 6% 4%, rgba(15,30,46,.05), transparent 60%);
  background-repeat:no-repeat;
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }

a{ color:inherit; }

::selection{ background:rgba(150,119,63,.22); }

.skip-link{
  position:absolute; left:-9999px; top:0;
  background:var(--ink); color:var(--paper);
  padding:10px 18px; z-index:100; font-size:14px;
}
.skip-link:focus{ left:8px; top:8px; }

:focus-visible{ outline:2px solid var(--brass); outline-offset:3px; border-radius:2px; }

/* ── Layout ─────────────────────────────────────────────── */
.wrap{
  width:100%;
  max-width:var(--maxw);
  margin:0 auto;
  padding-inline:var(--gutter);
}
.wrap-narrow{ max-width:760px; }

.section{ padding-block:clamp(64px, 9vw, 118px); }
.section-alt{
  background:var(--bone-deep);
  border-block:1px solid var(--rule-soft);
}

/* ── Type ───────────────────────────────────────────────── */
h1,h2,h3{
  font-family:var(--serif);
  font-weight:600;
  letter-spacing:-.012em;
  line-height:1.16;
  margin:0;
  text-wrap:balance;
}

.eyebrow{
  font-family:var(--sans);
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:var(--brass);
  margin:0 0 18px;
}

.section-head{ max-width:640px; margin-bottom:clamp(40px, 5vw, 62px); }
.section-head-tight{ margin-bottom:34px; }

.section-title{ font-size:clamp(28px, 4.1vw, 41px); }

.section-sub{
  margin:18px 0 0;
  color:var(--ink-soft);
  font-size:17px;
  max-width:58ch;
}

.fine-print{
  margin:16px 0 0;
  font-size:13.5px;
  line-height:1.6;
  color:var(--ink-mute);
}

/* ── Header ─────────────────────────────────────────────── */
.site-header{
  position:sticky; top:0; z-index:40;
  background:rgba(247,244,237,.88);
  backdrop-filter:saturate(150%) blur(10px);
  -webkit-backdrop-filter:saturate(150%) blur(10px);
  border-bottom:1px solid var(--rule);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:20px;
  min-height:72px;
}

.brand,.footer-brand{
  display:inline-flex; align-items:center; gap:12px;
  text-decoration:none;
}
.brand-seal{
  width:38px; height:38px; flex:0 0 38px;
  border-radius:50%;
  overflow:hidden;
  background:#EFEFEF;
  border:1px solid var(--rule);
  display:grid; place-items:center;
}
.brand-seal img{
  width:118%; height:118%;
  object-fit:cover; object-position:center 46%;
}
.brand-text{ display:flex; flex-direction:column; line-height:1.06; }
.brand-name{
  font-family:var(--serif);
  font-size:17.5px; font-weight:600;
  letter-spacing:-.01em;
}
.brand-sub{
  font-size:9.5px; font-weight:600;
  letter-spacing:.24em; text-transform:uppercase;
  color:var(--brass);
  margin-top:3px;
}

.site-nav{ display:flex; align-items:center; gap:30px; }
.site-nav > a:not(.btn){
  font-size:14.5px;
  font-weight:500;
  color:var(--ink-soft);
  text-decoration:none;
  padding-block:4px;
  border-bottom:1px solid transparent;
  transition:color .18s ease, border-color .18s ease;
}
.site-nav > a:not(.btn):hover{ color:var(--ink); border-bottom-color:var(--brass); }

/* ── Buttons ────────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--sans);
  font-size:14.5px; font-weight:600;
  letter-spacing:.02em;
  padding:15px 30px;
  border-radius:2px;
  border:1px solid var(--ink);
  text-decoration:none;
  cursor:pointer;
  transition:background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.btn-primary{
  background:var(--ink); color:var(--paper);
  box-shadow:0 1px 0 rgba(15,30,46,.28);
}
.btn-primary:hover{ background:#16293C; transform:translateY(-1px); box-shadow:0 6px 18px rgba(15,30,46,.17); }
.btn-primary:active{ transform:translateY(0); }
.btn-primary[disabled]{ opacity:.55; cursor:default; transform:none; box-shadow:none; }

.btn-outline{ background:transparent; color:var(--ink); }
.btn-outline:hover{ background:var(--ink); color:var(--paper); }

.btn-small{ padding:9px 19px; font-size:13px; }
.btn-block{ display:flex; width:100%; }

.link-arrow{
  font-size:14.5px; font-weight:500;
  color:var(--ink-soft);
  text-decoration:none;
  border-bottom:1px solid var(--rule);
  padding-bottom:3px;
  transition:color .18s ease, border-color .18s ease;
}
.link-arrow::after{ content:" \2192"; }
.link-arrow:hover{ color:var(--ink); border-bottom-color:var(--brass); }

/* ── Hero ───────────────────────────────────────────────── */
.hero{ padding-top:clamp(60px, 9vw, 112px); padding-bottom:0; }

.hero-title{
  font-size:clamp(38px, 6.6vw, 70px);
  line-height:1.08;
  letter-spacing:-.022em;
  max-width:16ch;
}
.br-lg{ display:none; }
@media (min-width:900px){ .br-lg{ display:inline; } .hero-title{ max-width:none; } }

.lede{
  margin:26px 0 0;
  font-size:clamp(17px, 1.5vw, 19.5px);
  line-height:1.68;
  color:var(--ink-soft);
  max-width:56ch;
}

.hero-ctas{
  display:flex; flex-wrap:wrap; align-items:center;
  gap:18px 30px;
  margin-top:38px;
}

.hero-facts{
  list-style:none;
  margin:clamp(56px, 7vw, 88px) 0 0;
  padding:28px 0 0;
  border-top:1px solid var(--rule);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.hero-facts li{ display:flex; flex-direction:column; gap:8px; }
.fact-label{
  font-size:10.5px; font-weight:600;
  letter-spacing:.19em; text-transform:uppercase;
  color:var(--brass);
}
.fact-value{
  font-family:var(--serif);
  font-size:17.5px;
  color:var(--ink);
  line-height:1.4;
}

/* ── Curriculum (The Work) ──────────────────────────────── */
.curriculum{
  list-style:none; margin:0; padding:0;
  border-top:1px solid var(--rule);
}
.curriculum-item{
  display:grid;
  grid-template-columns:88px 1fr;
  gap:10px 26px;
  padding-block:34px;
  border-bottom:1px solid var(--rule);
}
.numeral{
  font-family:var(--serif);
  font-size:15px;
  font-weight:500;
  letter-spacing:.1em;
  color:var(--brass-soft);
  padding-top:6px;
}
.curriculum-body h3,
.process-step h3{ font-size:23px; }
.curriculum-body p{
  margin:12px 0 0;
  color:var(--ink-soft);
  max-width:62ch;
}

/* ── Admissions ─────────────────────────────────────────── */
.process{
  list-style:none; margin:0; padding:0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border-top:1px solid var(--rule);
}
.process-step{
  padding:36px 34px 38px;
  border-right:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.process-step:first-child{ padding-left:0; }
.process-step:last-child{ border-right:0; padding-right:0; }
.process-step .numeral{ display:block; padding-top:0; margin-bottom:16px; }
.process-step p{ margin:12px 0 0; color:var(--ink-soft); font-size:16px; }

.criteria{
  margin-top:clamp(44px, 5vw, 68px);
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:clamp(32px, 5vw, 72px);
}
.criteria-title{
  font-size:13px;
  font-family:var(--sans);
  font-weight:600;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--ink);
  padding-bottom:16px;
  border-bottom:1px solid var(--rule);
}
.marked-list{ list-style:none; margin:22px 0 0; padding:0; }
.marked-list li{
  position:relative;
  padding-left:26px;
  margin-bottom:15px;
  color:var(--ink-soft);
  font-size:16px;
  line-height:1.6;
}
.marked-list li::before{
  content:"";
  position:absolute; left:0; top:11px;
  width:11px; height:1px;
  background:var(--brass);
}

.admissions-cta{
  margin-top:clamp(44px, 5vw, 66px);
  padding-top:34px;
  border-top:1px solid var(--rule);
}
.admissions-cta .fine-print{ max-width:52ch; }

/* ── Statement / Results ────────────────────────────────── */
.statement{
  max-width:720px; margin:0 auto;
  text-align:center;
  padding:clamp(36px, 5vw, 58px) clamp(24px, 4vw, 54px);
  background:var(--paper);
  border:1px solid var(--rule);
  border-radius:3px;
}
.statement .eyebrow{ margin-bottom:20px; }
.statement-body{
  font-family:var(--serif);
  font-size:clamp(19px, 2.3vw, 25px);
  line-height:1.52;
  color:var(--ink);
  margin:0;
  text-wrap:balance;
}
.statement-sign{
  margin:24px 0 0;
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink-mute);
}

/* ── FAQ ────────────────────────────────────────────────── */
.faq-list{ border-top:1px solid var(--rule); }
.faq-item{ border-bottom:1px solid var(--rule); }
.faq-item summary{
  list-style:none;
  cursor:pointer;
  padding:24px 44px 24px 0;
  position:relative;
  font-family:var(--serif);
  font-size:19.5px;
  font-weight:600;
  line-height:1.4;
  color:var(--ink);
  transition:color .18s ease;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary:hover{ color:var(--brass); }
.faq-mark{
  position:absolute; right:2px; top:33px;
  width:13px; height:13px;
}
.faq-mark::before,
.faq-mark::after{
  content:""; position:absolute;
  background:var(--brass);
  transition:transform .22s ease, opacity .22s ease;
}
.faq-mark::before{ left:0; top:6px; width:13px; height:1px; }
.faq-mark::after{ left:6px; top:0; width:1px; height:13px; }
.faq-item[open] .faq-mark::after{ transform:scaleY(0); opacity:0; }
.faq-answer{ padding:0 46px 26px 0; }
.faq-answer p{ margin:0; color:var(--ink-soft); max-width:64ch; }

/* ── Apply ──────────────────────────────────────────────── */
.apply-section{ padding-bottom:clamp(72px, 9vw, 124px); }
.apply-panel{
  background:var(--paper);
  border:1px solid var(--rule);
  border-radius:3px;
  padding:clamp(30px, 4.6vw, 58px);
  box-shadow:0 1px 2px rgba(15,30,46,.04), 0 22px 48px -30px rgba(15,30,46,.3);
}
.apply-panel .section-head{ margin-bottom:34px; }

.form-row{ margin-bottom:22px; }
.form-row label{
  display:block;
  font-size:11.5px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-mute);
  margin-bottom:9px;
}
.form-row input{
  width:100%;
  font-family:var(--sans);
  font-size:16px;
  color:var(--ink);
  background:transparent;
  border:0;
  border-bottom:1px solid var(--rule);
  border-radius:0;
  padding:11px 2px;
  transition:border-color .18s ease, background-color .18s ease;
}
.form-row input::placeholder{ color:#A8B1B9; }
.form-row input:hover{ border-bottom-color:rgba(15,30,46,.3); }
.form-row input:focus{
  outline:none;
  border-bottom-color:var(--brass);
  background:rgba(150,119,63,.045);
}

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

.apply-form .btn-block{ margin-top:32px; }

.form-status{
  margin:18px 0 0;
  font-size:14.5px;
  line-height:1.55;
  min-height:1px;
}
.form-status.success{ color:#2C6248; }
.form-status.error{ color:#A33B2C; }
.form-fine{ margin-top:14px; }

/* ── Footer ─────────────────────────────────────────────── */
.site-footer{
  background:var(--ink);
  color:rgba(255,253,248,.7);
  padding-block:44px;
}
.footer-inner{
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:20px 28px;
}
.site-footer .brand-seal{ border-color:rgba(255,255,255,.18); }
.site-footer .brand-name{ color:var(--paper); }
.site-footer .brand-sub{ color:var(--brass-soft); }
.footer-legal{ margin:0; font-size:13.5px; }
.footer-link{
  font-size:13.5px;
  color:var(--paper);
  text-decoration:none;
  border-bottom:1px solid rgba(255,253,248,.3);
  padding-bottom:2px;
  transition:border-color .18s ease;
}
.footer-link:hover{ border-bottom-color:var(--brass-soft); }

/* ===========================================================
   Responsive
   =========================================================== */
@media (max-width:900px){
  .hero-facts{ grid-template-columns:1fr 1fr; gap:24px 28px; }
  .process{ grid-template-columns:1fr; }
  .process-step{
    padding:30px 0;
    border-right:0;
  }
  .process-step:last-child{ padding-bottom:0; border-bottom:0; }
  .criteria{ grid-template-columns:1fr; }
}

@media (max-width:720px){
  body{ font-size:16.5px; }
  :root{ --gutter:20px; }

  .header-inner{ min-height:64px; gap:12px; }
  .site-nav{ gap:18px; }
  .site-nav > a:not(.btn){ display:none; }

  .brand-seal{ width:34px; height:34px; flex-basis:34px; }

  .hero{ padding-top:52px; }
  .hero-ctas{ gap:16px 22px; }
  .hero-ctas .btn{ width:100%; }

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

  .curriculum-item{
    grid-template-columns:1fr;
    gap:0;
    padding-block:28px;
  }
  .curriculum-item .numeral{ padding-top:0; margin-bottom:10px; }
  .curriculum-body h3, .process-step h3{ font-size:21px; }

  .faq-item summary{ font-size:18px; padding-right:36px; }
  .faq-mark{ top:30px; }

  .statement{ text-align:left; }

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

@media (max-width:400px){
  .brand-sub{ letter-spacing:.18em; }
  .brand-name{ font-size:16px; }
}
