.planner-page{
  background:#f2f2ec;
  color:#13221c;
}

.planner-page .main-nav{
  gap:22px;
}

.planner-page .main-nav a[aria-current="page"]{
  color:#b9f35b;
}

.planner-hero{
  padding:clamp(72px,9vw,126px) 0 clamp(64px,8vw,104px);
}

.planner-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.03fr) minmax(390px,.82fr);
  gap:clamp(44px,7vw,104px);
  align-items:center;
}

.planner-hero-copy{
  max-width:730px;
}

.planner-hero h1{
  max-width:760px;
  margin:18px 0 26px;
  font-size:clamp(3.2rem,6.3vw,6.8rem);
  line-height:.94;
  letter-spacing:-.064em;
}

.planner-hero h1 em,
.planner-guidance h2 em,
.planner-closing h2 em{
  color:#b9f35b;
  font-style:normal;
}

.planner-hero .hero-lede{
  max-width:650px;
  color:#dce8dc;
  font-size:clamp(1.05rem,1.35vw,1.25rem);
  line-height:1.65;
}

.planner-hero-note{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:30px;
  color:#dce8dc;
  font:600 12px/1.4 "DM Sans",sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.planner-hero-image{
  position:relative;
  min-height:480px;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(242,242,236,.28);
  background:#2f4038;
}

.planner-hero-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 52%,rgba(19,34,28,.74) 100%);
  pointer-events:none;
}

.planner-hero-image img{
  width:100%;
  height:100%;
  min-height:480px;
  display:block;
  object-fit:cover;
  object-position:center;
}

.planner-hero-image figcaption{
  position:absolute;
  z-index:1;
  left:24px;
  right:24px;
  bottom:22px;
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:18px;
  color:#fbfaf6;
}

.planner-hero-image figcaption span{
  color:#b9f35b;
  font:700 10px/1.2 "DM Sans",sans-serif;
  letter-spacing:.14em;
}

.planner-hero-image figcaption strong{
  max-width:240px;
  text-align:right;
  font:500 14px/1.35 "DM Sans",sans-serif;
}

.planner-workspace{
  padding:clamp(72px,9vw,118px) 0;
}

.planner-workspace-grid{
  display:grid;
  grid-template-columns:minmax(0,1.03fr) minmax(390px,.97fr);
  gap:28px;
  align-items:start;
}

.planner-form,
.planner-results{
  min-width:0;
  padding:clamp(28px,4.2vw,50px);
}

.planner-form{
  background:#fbfaf6;
  border:1px solid #dde3d8;
}

.planner-form-head{
  max-width:620px;
  margin-bottom:34px;
}

.planner-form-head h2{
  margin:14px 0 10px;
  font-size:clamp(2.1rem,3.4vw,3.35rem);
  line-height:1;
  letter-spacing:-.045em;
}

.planner-form-head > p:last-child{
  max-width:560px;
  color:#5f6d65;
}

.planner-field-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px 18px;
}

.planner-field-wide{
  grid-column:1/-1;
}

.planner-field{
  display:grid;
  align-content:start;
  gap:8px;
  color:#2f4038;
  font:700 11px/1.25 "DM Sans",sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.planner-field > span{
  color:#5f6d65;
  font-size:9px;
  letter-spacing:.08em;
}

.planner-field input,
.planner-field select{
  width:100%;
  min-height:52px;
  padding:13px 14px;
  border:1px solid #cbd3c7;
  border-radius:0;
  background:#fbfaf6;
  color:#13221c;
  font:500 16px/1.2 "DM Sans",sans-serif;
  letter-spacing:0;
  text-transform:none;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}

.planner-field input::placeholder{
  color:#7a857f;
  opacity:1;
}

.planner-field input:hover,
.planner-field select:hover{
  border-color:#5f6d65;
}

.planner-field input:focus,
.planner-field select:focus{
  outline:0;
  border-color:#13221c;
  box-shadow:0 0 0 3px rgba(158,196,255,.48);
  background:#fff;
}

.field-note,
.field-help{
  display:block;
  margin:0;
  color:#5f6d65;
  font:500 12px/1.45 "DM Sans",sans-serif;
  letter-spacing:0;
  text-transform:none;
}

.planner-noscript{
  margin:0 0 28px;
  padding:16px 18px;
  border:1px solid #8c5f48;
  background:#fff5ee;
  color:#5b3122;
  font-size:14px;
  line-height:1.55;
}

.planner-choice-group{
  min-width:0;
  margin:34px 0 0;
  padding:0;
  border:0;
}

.planner-choice-group legend{
  padding:0;
  color:#13221c;
  font:600 clamp(1.15rem,1.5vw,1.35rem)/1.25 "Space Grotesk",sans-serif;
}

.planner-choice-group > .field-help{
  margin-top:6px;
}

.planner-check-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:18px;
}

.planner-check-grid label{
  position:relative;
  min-height:48px;
  display:flex;
  align-items:center;
  cursor:pointer;
}

.planner-check-grid input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
}

.planner-check-grid span{
  width:100%;
  min-height:48px;
  display:flex;
  align-items:center;
  padding:11px 13px;
  border:1px solid #cbd3c7;
  background:#f2f2ec;
  color:#2f4038;
  font:600 13px/1.25 "DM Sans",sans-serif;
  transition:background .16s ease,border-color .16s ease,color .16s ease;
}

.planner-check-grid span::before{
  content:"";
  width:8px;
  height:8px;
  flex:0 0 8px;
  margin-right:9px;
  border:1px solid #5f6d65;
  background:transparent;
}

.planner-check-grid input:checked + span{
  border-color:#13221c;
  background:#13221c;
  color:#fbfaf6;
}

.planner-check-grid input:checked + span::before{
  border-color:#b9f35b;
  background:#b9f35b;
}

.planner-check-grid input:focus-visible + span{
  outline:3px solid #9ec4ff;
  outline-offset:2px;
}

.planner-reference-block{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:34px;
  padding-top:30px;
  border-top:1px solid #dde3d8;
}

.planner-reference-block .field-help{
  margin-top:8px;
}

.planner-form-actions{
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:34px;
}

.planner-form-actions .button{
  min-height:52px;
}

.planner-text-button{
  min-width:52px;
  min-height:44px;
  padding:8px 4px;
  border:0;
  border-bottom:1px solid #13221c;
  background:transparent;
  color:#13221c;
  cursor:pointer;
  font:700 12px/1 "DM Sans",sans-serif;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.planner-text-button:hover{
  color:#2f4038;
  border-color:#2f4038;
}

.planner-text-button:focus-visible{
  outline:3px solid #9ec4ff;
  outline-offset:4px;
}

.planner-privacy{
  max-width:650px;
  margin:24px 0 0;
  padding-top:20px;
  border-top:1px solid #dde3d8;
  color:#5f6d65;
  font-size:13px;
  line-height:1.6;
}

.planner-privacy strong{
  color:#13221c;
}

.planner-results{
  background:#13221c;
  color:#f2f2ec;
  border-top:4px solid #b9f35b;
}

.planner-share-message{
  margin:0;
  padding:14px 32px;
  border-bottom:1px solid rgba(242,242,236,.18);
  background:rgba(185,243,91,.08);
  color:#dce8dc;
  font-size:13px;
  line-height:1.5;
}

.planner-share-message[hidden]{display:none}
.planner-share-message.is-error{background:rgba(255,139,108,.12);color:#ffd6c9}

.planner-empty{
  min-height:560px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.planner-empty[hidden]{display:none}
.planner-result-content[hidden]{display:none}

.result-index,
.planner-result-kicker{
  color:#b9f35b;
  font:700 10px/1.2 "DM Sans",sans-serif;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.planner-empty h2,
.planner-result-content > h2{
  max-width:580px;
  margin:20px 0 16px;
  color:#fbfaf6;
  font-size:clamp(2.1rem,3.6vw,3.8rem);
  line-height:.98;
  letter-spacing:-.05em;
  overflow-wrap:anywhere;
}

.planner-empty > p,
.planner-result-lede{
  max-width:600px;
  color:#cfd8cf;
  font-size:15px;
  line-height:1.65;
}

.empty-line{
  width:82px;
  height:2px;
  margin-top:32px;
  background:#b9f35b;
}

.planner-result-callout{
  margin:30px 0 4px;
  padding:24px;
  border-left:3px solid #b9f35b;
  background:rgba(185,243,91,.08);
}

.planner-result-callout span{
  display:block;
  margin-bottom:10px;
  color:#b9f35b;
  font:700 10px/1.2 "DM Sans",sans-serif;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.planner-result-callout p{
  margin:0;
  color:#fbfaf6;
  font-size:15px;
  line-height:1.65;
}

.planner-result-block{
  margin-top:30px;
  padding-top:25px;
  border-top:1px solid rgba(242,242,236,.18);
}

.planner-result-block h3{
  margin:0 0 16px;
  color:#fbfaf6;
  font:500 1.1rem/1.25 "Space Grotesk",sans-serif;
}

.planner-focus-items{
  display:grid;
  gap:12px;
}

.planner-focus-item{
  padding:18px;
  border:1px solid rgba(242,242,236,.18);
  background:rgba(251,250,246,.04);
}

.planner-focus-item h4{
  margin:0 0 9px;
  color:#b9f35b;
  font:700 11px/1.25 "DM Sans",sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.planner-focus-item p,
.planner-no-focus{
  margin:0;
  color:#dce4dc;
  font-size:14px;
  line-height:1.58;
  overflow-wrap:anywhere;
}

.planner-focus-item .planner-focus-question{
  margin-top:9px;
  color:#aebbb2;
}

.planner-focus-question strong{
  color:#fbfaf6;
}

.planner-flag-list,
.planner-question-list,
.planner-next-list{
  display:grid;
  gap:13px;
  margin:0;
  padding:0;
  list-style:none;
}

.planner-flag-list li,
.planner-question-list li,
.planner-next-list li{
  position:relative;
  margin:0;
  padding-left:22px;
  color:#dce4dc;
  font-size:14px;
  line-height:1.58;
}

.planner-flag-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.58em;
  width:7px;
  height:7px;
  background:#b9f35b;
}

.planner-question-list{
  counter-reset:planner-question;
}

.planner-question-list li{
  counter-increment:planner-question;
  padding-left:34px;
}

.planner-question-list li::before{
  content:counter(planner-question);
  position:absolute;
  left:0;
  top:1px;
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border:1px solid rgba(185,243,91,.7);
  color:#b9f35b;
  font:700 10px/1 "DM Sans",sans-serif;
}

.planner-next-list li::before{
  content:"→";
  position:absolute;
  left:0;
  top:0;
  color:#b9f35b;
  font-weight:700;
}

.planner-snapshot-block > p{
  margin:0;
  color:#dce4dc;
  font-size:14px;
  line-height:1.65;
  overflow-wrap:anywhere;
}

.planner-focus-line{
  margin-top:8px!important;
}

.planner-focus-line strong{
  color:#fbfaf6;
}

.planner-result-limit{
  margin:26px 0 0;
  padding:15px 17px;
  border:1px solid rgba(242,242,236,.16);
  color:#aebbb2;
  font-size:12px;
  line-height:1.6;
}

.planner-result-details{
  margin-top:30px;
  padding-top:27px;
  border-top:1px solid rgba(242,242,236,.18);
}

.planner-details-heading{
  margin:0 0 12px;
  color:#fbfaf6;
  font:500 1rem/1.3 "Space Grotesk",sans-serif;
}

.planner-detail-group{
  border-top:1px solid rgba(242,242,236,.18);
}

.planner-detail-group:last-child{
  border-bottom:1px solid rgba(242,242,236,.18);
}

.planner-detail-group summary{
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 2px;
  color:#dce4dc;
  cursor:pointer;
  font:700 11px/1.35 "DM Sans",sans-serif;
  letter-spacing:.05em;
  list-style:none;
  text-transform:uppercase;
}

.planner-detail-group summary::-webkit-details-marker{
  display:none;
}

.planner-detail-group summary::after{
  content:"+";
  flex:0 0 26px;
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  border:1px solid rgba(185,243,91,.6);
  color:#b9f35b;
  font-size:16px;
  line-height:1;
}

.planner-detail-group[open] summary::after{
  content:"−";
}

.planner-detail-group summary:hover{
  color:#b9f35b;
}

.planner-detail-group summary:focus-visible{
  outline:3px solid #9ec4ff;
  outline-offset:3px;
}

.planner-detail-body{
  padding:4px 2px 22px;
}

.planner-detail-body .planner-boundary{
  margin:0;
  padding:0;
  border-top:0;
}

.planner-boundary{
  margin:28px 0 0;
  padding:18px 0 0;
  border-top:1px solid rgba(242,242,236,.18);
  color:#aebbb2;
  font-size:12px;
  line-height:1.6;
}

.planner-boundary p{margin:0}
.planner-boundary p + p{margin-top:10px}

.planner-result-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:28px;
}

.planner-result-actions button,
.planner-result-actions a{
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:11px 15px;
  border:1px solid rgba(242,242,236,.5);
  background:transparent;
  color:#f2f2ec;
  cursor:pointer;
  font:700 11px/1 "DM Sans",sans-serif;
  letter-spacing:.05em;
  text-decoration:none;
  text-transform:uppercase;
}

.planner-result-actions .planner-primary-action{
  border-color:#b9f35b;
  background:#b9f35b;
  color:#13221c;
}

.planner-result-actions button:hover,
.planner-result-actions a:hover{
  border-color:#c7ff67;
  background:#c7ff67;
  color:#13221c;
}

.planner-result-actions button:focus-visible,
.planner-result-actions a:focus-visible{
  outline:3px solid #9ec4ff;
  outline-offset:3px;
}

.planner-status{
  min-height:22px;
  margin:14px 0 0;
  color:#b9f35b;
  font-size:12px;
  line-height:1.5;
}

.planner-status.is-error{color:#ffd6c9}

.planner-guidance{
  padding:clamp(76px,9vw,120px) 0;
}

.planner-guidance-grid{
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(440px,1fr);
  gap:clamp(44px,8vw,118px);
  align-items:start;
}

.planner-guidance-heading{
  max-width:560px;
}

.planner-guidance h2,
.planner-closing h2{
  margin:16px 0 22px;
  font-size:clamp(2.55rem,4.8vw,5.35rem);
  line-height:.96;
  letter-spacing:-.056em;
}

.planner-guidance-heading > p:last-child{
  max-width:520px;
  color:#5f6d65;
  font-size:17px;
  line-height:1.7;
}

.planner-guidance-list{
  border-top:1px solid #cbd3c7;
}

.planner-guidance-list article{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:18px;
  padding:24px 0;
  border-bottom:1px solid #cbd3c7;
}

.planner-guidance-list article > span{
  color:#5f6d65;
  font:700 10px/1.4 "DM Sans",sans-serif;
  letter-spacing:.12em;
}

.planner-guidance-list h3{
  margin:0 0 8px;
  color:#13221c;
  font:500 1.2rem/1.28 "Space Grotesk",sans-serif;
}

.planner-guidance-list p{
  margin:0;
  color:#5f6d65;
  font-size:15px;
  line-height:1.65;
}

.planner-closing{
  padding:clamp(76px,9vw,118px) 0;
  border-top:1px solid rgba(242,242,236,.12);
}

.planner-closing-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.72fr);
  gap:clamp(42px,8vw,118px);
  align-items:end;
}

.planner-closing-grid > div:last-child > p:first-child{
  color:#dce8dc;
  font-size:18px;
  line-height:1.65;
}

.planner-ps{
  margin:24px 0 0;
  padding-top:22px;
  border-top:1px solid rgba(242,242,236,.2);
  color:#dce8dc;
  line-height:1.65;
}

.planner-ps strong{
  color:#b9f35b;
}

.planner-ps a{
  color:#f2f2ec;
  text-decoration-color:#b9f35b;
  text-underline-offset:4px;
}

@media (max-width:1000px){
  .planner-hero-grid,
  .planner-workspace-grid,
  .planner-guidance-grid,
  .planner-closing-grid{
    grid-template-columns:1fr;
  }

  .planner-hero-copy{
    max-width:800px;
  }

  .planner-hero-image,
  .planner-hero-image img{
    min-height:0;
  }

  .planner-hero-image{
    aspect-ratio:16/9;
  }

  .planner-hero-image img{
    height:100%;
  }

  .planner-workspace-grid{
    gap:20px;
  }

  .planner-empty{
    min-height:360px;
  }

  .planner-guidance-grid{
    gap:44px;
  }

  .planner-guidance-heading{
    max-width:700px;
  }

  .planner-closing-grid{
    align-items:start;
  }
}

@media (max-width:760px){
  .planner-page .main-nav{
    gap:0;
  }

  .planner-hero{
    padding:60px 0 62px;
  }

  .planner-hero-grid{
    gap:34px;
  }

  .planner-hero h1{
    margin-top:14px;
    font-size:clamp(2.9rem,14vw,4.55rem);
  }

  .planner-hero .hero-lede{
    font-size:1rem;
  }

  .planner-hero-note{
    align-items:flex-start;
    font-size:10px;
  }

  .planner-hero-image{
    aspect-ratio:4/3;
  }

  .planner-hero-image figcaption{
    left:16px;
    right:16px;
    bottom:15px;
    align-items:start;
    flex-direction:column;
    gap:5px;
  }

  .planner-hero-image figcaption strong{
    max-width:none;
    text-align:left;
  }

  .planner-workspace{
    padding:54px 0;
  }

  .planner-form,
  .planner-results{
    padding:27px 20px;
  }

  .planner-field-grid,
  .planner-reference-block{
    grid-template-columns:1fr;
  }

  .planner-field-wide{
    grid-column:auto;
  }

  .planner-check-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .planner-form-actions{
    align-items:stretch;
    flex-direction:column;
  }

  .planner-form-actions .button,
  .planner-text-button{
    width:100%;
  }

  .planner-text-button{
    border:1px solid #13221c;
  }

  .planner-empty{
    min-height:320px;
  }

  .planner-result-callout{
    padding:19px;
  }

  .planner-result-actions{
    display:grid;
    grid-template-columns:1fr;
  }

  .planner-result-actions button,
  .planner-result-actions a{
    width:100%;
  }

  .planner-guidance,
  .planner-closing{
    padding:64px 0;
  }

  .planner-guidance-grid,
  .planner-closing-grid{
    gap:36px;
  }

  .planner-guidance h2,
  .planner-closing h2{
    font-size:clamp(2.5rem,12vw,4rem);
  }

  .planner-guidance-list article{
    grid-template-columns:34px minmax(0,1fr);
    gap:12px;
  }
}

@media (max-width:430px){
  .planner-check-grid{
    grid-template-columns:1fr;
  }
}

@media (prefers-reduced-motion:reduce){
  .planner-field input,
  .planner-field select,
  .planner-check-grid span{
    transition:none;
  }
}
