.key-page{
  background:#fffaf2;
  color:#2f2b27;
}
.key-hero{
  padding:54px 20px 42px;
  background:linear-gradient(180deg,#fffdf8 0%,#fbf2e7 100%);
  border-bottom:1px solid #e6d8c7;
  text-align:center;
}
.key-eyebrow{
  margin:0 0 13px;
  color:#8a704d;
  font-size:12px;
  font-weight:640;
  letter-spacing:.25em;
  line-height:1.4;
  text-transform:uppercase;
}
.key-hero h1{
  margin:0 auto;
  max-width:13em;
  color:#2f2b27;
  font-size:clamp(30px,8.6vw,44px);
  font-weight:640;
  line-height:1.34;
  letter-spacing:.065em;
}
.key-lead{
  max-width:31em;
  margin:18px auto 0;
  color:#6f6256;
  font-size:16px;
  font-weight:430;
  line-height:1.95;
}
.key-main{
  width:min(100% - 32px,980px);
  margin:0 auto;
  padding:34px 0 64px;
}
.key-section{
  padding:34px 0;
  border-bottom:1px solid #eadfce;
  scroll-margin-top:86px;
}
.key-section:last-child{border-bottom:0}
.key-section-head{
  margin:0 0 22px;
  text-align:center;
}
.key-section-head p{
  margin:0 0 8px;
  color:#9d7532;
  font-size:11px;
  font-weight:640;
  letter-spacing:.24em;
  text-transform:uppercase;
}
.key-section h2{
  margin:0 auto;
  max-width:15em;
  color:#2f2b27;
  font-size:clamp(24px,6.2vw,36px);
  font-weight:640;
  line-height:1.42;
  letter-spacing:.055em;
  text-align:center;
}
.key-section h3{
  margin:0 0 9px;
  color:#2f2b27;
  font-size:18px;
  font-weight:640;
  line-height:1.48;
}
.key-section p,
.key-section li,
.key-section dd{
  color:#5f554c;
  font-size:15px;
  font-weight:430;
  line-height:1.92;
}
.key-grid{
  display:grid;
  gap:12px;
}
.key-card{
  background:#fffdf8;
  border:1px solid #e3d4c2;
  border-radius:14px;
  padding:18px;
  box-shadow:0 10px 24px rgba(92,64,35,.06);
}
.key-card img{
  display:block;
  width:100%;
  height:auto;
  margin:12px 0 0;
  border-radius:12px;
  box-shadow:none;
}
.key-card strong,
.key-stat strong{
  color:#8a704d;
  font-weight:640;
}
.key-media{
  overflow:hidden;
  border:1px solid #e3d4c2;
  border-radius:16px;
  background:#fffdf8;
  box-shadow:0 14px 30px rgba(92,64,35,.09);
}
.key-media img{
  display:block;
  width:100%;
  height:auto;
  margin:0;
  border-radius:0;
  box-shadow:none;
}
.key-stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.key-stat{
  min-height:104px;
  display:grid;
  align-content:center;
  justify-items:center;
  border:1px solid #e3d4c2;
  border-radius:14px;
  background:#fffdf8;
  text-align:center;
}
.key-stat span{
  color:#7a6d61;
  font-size:12px;
  line-height:1.4;
}
.key-stat strong{
  display:block;
  margin:4px 0;
  font-size:30px;
  line-height:1.1;
}
.key-list{
  display:grid;
  gap:10px;
  margin:0;
  padding:0;
  list-style:none;
}
.key-list li{
  position:relative;
  padding:14px 14px 14px 38px;
  border:1px solid #e3d4c2;
  border-radius:12px;
  background:#fffdf8;
}
.key-list li::before{
  content:"";
  position:absolute;
  left:16px;
  top:1.72em;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#b9a17f;
}
.key-flow{
  counter-reset:flow;
}
.key-flow .key-card{
  counter-increment:flow;
  position:relative;
  padding-top:48px;
}
.key-flow .key-card::before{
  content:"STEP " counter(flow);
  position:absolute;
  left:18px;
  top:16px;
  color:#9d7532;
  font-size:11px;
  font-weight:640;
  letter-spacing:.16em;
}
.key-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border:1px solid #e3d4c2;
  border-radius:14px;
  background:#fffdf8;
}
.key-table th,
.key-table td{
  padding:13px 12px;
  border-bottom:1px solid #eadfce;
  color:#5f554c;
  font-size:14px;
  line-height:1.55;
  text-align:left;
}
.key-table th{
  background:#f4eadc;
  color:#2f2b27;
  font-weight:640;
}
.key-table tr:last-child td{border-bottom:0}
.key-price{
  color:#2f2b27;
  font-size:17px;
  font-weight:640;
  white-space:nowrap;
}
.key-price-notice{
  display:grid;
  gap:8px;
  margin:0 0 16px;
  padding:16px;
  border:1px solid #e3d4c2;
  border-radius:14px;
  background:#f7efe5;
}
.key-price-notice div{
  display:grid;
  gap:3px;
}
.key-price-notice span{
  color:#8a704d;
  font-size:11px;
  font-weight:620;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.key-price-notice strong{
  color:#34302c;
  font-size:18px;
  font-weight:650;
  line-height:1.45;
}
.key-price-notice p{
  margin:0;
  font-size:14px;
}
.key-price-cards{
  display:grid;
  gap:12px;
}
.key-price-card{
  display:grid;
  gap:10px;
  padding:17px;
  border:1px solid #e3d4c2;
  border-radius:14px;
  background:#fffdf8;
  box-shadow:0 10px 24px rgba(92,64,35,.06);
}
.key-price-card.is-popular{
  border-color:#d5bea0;
  background:linear-gradient(180deg,#fffdf8 0%,#fbf2e7 100%);
}
.key-price-card h3{
  margin:0;
  font-size:24px;
  font-weight:650;
  letter-spacing:.04em;
}
.key-price-card div span{
  display:block;
  margin-top:3px;
  color:#766b61;
  font-size:13px;
  font-weight:430;
}
.key-price-card strong{
  color:#34302c;
  font-size:25px;
  font-weight:650;
  letter-spacing:.02em;
  line-height:1.2;
}
.key-price-card p{
  margin:0;
  font-size:14px;
  line-height:1.78;
}
.key-price-more{
  margin-top:14px;
}
.key-price-more summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:50px;
  padding:12px 15px;
  border:1px solid #d8c8b2;
  border-radius:12px;
  background:#fffdf8;
  color:#34302c;
  font-size:14px;
  font-weight:620;
  cursor:pointer;
}
.key-price-more summary::after{
  content:"+";
  color:#8a704d;
  font-size:20px;
  font-weight:430;
  line-height:1;
}
.key-price-more[open] summary::after{
  content:"-";
}
.key-price-more .key-table{
  margin-top:10px;
}
.key-menu-rules{
  margin-top:14px;
}
.key-note{
  margin-top:14px;
  padding:14px;
  border:1px solid #e3d4c2;
  border-radius:12px;
  background:#f7efe5;
  color:#5f554c;
  font-size:14px;
  line-height:1.8;
}
.key-cta{
  display:grid;
  gap:10px;
  margin-top:22px;
}
.key-cta a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  border-radius:12px;
  border:1px solid #d8c8b2;
  background:#fffdf8;
  color:#2f2b27;
  font-size:14px;
  font-weight:760;
  text-decoration:none;
}
.key-cta a:first-child{
  background:#b9a17f;
  color:#fff;
}
@media (min-width:760px){
  .key-hero{padding:76px 32px 56px}
  .key-main{padding:48px 0 86px}
  .key-section{padding:48px 0}
  .key-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .key-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .key-cta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .key-price-notice{
    grid-template-columns:minmax(220px,.8fr) 1fr;
    align-items:center;
    padding:18px 22px;
  }
  .key-price-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:430px){
  .key-main{width:min(100% - 28px,980px)}
  .key-hero h1{font-size:30px}
  .key-lead{font-size:15px}
  .key-table{display:block;overflow-x:auto}
  .key-table table{min-width:560px}
  .key-menu-badges{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }
  .key-menu-badges div{
    min-height:auto;
  }
  .key-menu-badges span,
  .key-menu-badges strong{
    font-size:16px;
  }
  .key-menu-badges div::before{
    width:20px;
    height:11px;
    margin-bottom:12px;
  }
  .key-menu-table-wrap{
    overflow:visible;
  }
  .key-menu-price-table{
    min-width:0;
  }
  .key-menu-price-table th,
  .key-menu-price-table td{
    padding:13px 9px;
    font-size:13px;
  }
  .key-menu-price-table thead th,
  .key-menu-price-table tbody th{
    font-size:13px;
  }
  .key-menu-price-table td{
    font-size:14px;
  }
  .key-menu-price-table tbody th span,
  .key-menu-price-table td small{
    font-size:10px;
  }
  .key-menu-price-table td:nth-child(3){
    font-size:11px;
  }
}

/* final tone guard for key pages */
.key-page,
.key-main,
.key-section,
.key-card,
.key-table{
  color:#34302c !important;
}
.key-hero h1,
.key-section h2,
.key-section h3{
  color:#34302c !important;
  font-weight:580 !important;
}
.key-lead,
.key-section p,
.key-section li,
.key-table td,
.key-note{
  color:#62584f !important;
  font-weight:430 !important;
}
.key-eyebrow,
.key-section-head p,
.key-price,
.key-stat strong,
.key-card strong{
  color:#8a704d !important;
  font-weight:560 !important;
}
.key-main{
  padding-bottom:150px !important;
}
.key-menu-summary .key-card h3{
  color:#34302c !important;
  font-size:17px !important;
  font-weight:580 !important;
}
.key-menu-summary .key-card p{
  margin-bottom:0 !important;
  font-size:14px !important;
  line-height:1.85 !important;
}
.key-menu-badges{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  max-width:760px;
  margin:0 auto;
  text-align:center;
}
.key-menu-badges div{
  display:grid;
  place-items:center;
  align-content:center;
  min-height:168px;
  aspect-ratio:1;
  border-radius:50%;
  background:#fff;
  box-shadow:0 15px 30px rgba(40,34,28,.08);
}
.key-menu-badges div::before{
  content:"";
  width:26px;
  height:14px;
  margin-bottom:18px;
  border-left:4px solid #8a704d;
  border-bottom:4px solid #8a704d;
  transform:rotate(-45deg);
}
.key-menu-badges span,
.key-menu-badges strong{
  display:block;
  color:#1f1c19 !important;
  font-size:20px;
  line-height:1.35;
  font-weight:650 !important;
  letter-spacing:.03em;
}
.key-option-list{
  display:grid;
  gap:14px;
  max-width:720px;
  margin:0 auto 22px;
}
.key-option-list p{
  display:grid;
  gap:4px;
  margin:0 !important;
  padding:0 0 13px;
  border-bottom:1px solid #eadfce;
  text-align:center;
}
.key-option-list strong{
  color:#d72a78 !important;
  font-size:18px;
  font-weight:650 !important;
}
.key-option-list span{
  color:#1f1c19;
  font-size:17px;
  font-weight:500;
}
.key-menu-rules-box,
.key-campaign-box{
  width:min(100%,760px);
  margin:18px auto 0;
  padding:16px;
  border-radius:12px;
  background:#f7f7f8;
  text-align:center;
}
.key-menu-rules-box p,
.key-campaign-box p{
  margin:0 0 4px !important;
  color:#1f1c19 !important;
  font-size:16px !important;
  font-weight:560 !important;
  line-height:1.7 !important;
}
.key-menu-rules-box p:last-child,
.key-campaign-box p:last-child{
  margin-bottom:0 !important;
}
.key-campaign-box{
  border:1px solid #d72a78;
  background:#fffdf8;
}
.key-campaign-box strong{
  display:block;
  margin-bottom:4px;
  color:#d72a78 !important;
  font-size:20px;
  font-weight:650 !important;
}
.key-menu-banner{
  display:block;
  width:min(100%,760px);
  margin:24px auto 28px;
  overflow:hidden;
  border:1px solid #2f2b27;
  border-radius:12px;
  background:#fff;
}
.key-menu-banner img{
  display:block;
  width:100%;
  height:auto;
}
.key-menu-table-wrap{
  width:100%;
  overflow:visible;
  border:1px solid #dde0e5;
  border-radius:14px;
  background:#fff;
  box-shadow:0 12px 28px rgba(32,28,24,.05);
}
.key-menu-price-table{
  width:100%;
  min-width:0;
  table-layout:fixed;
  border-collapse:collapse;
}
.key-menu-price-table th,
.key-menu-price-table td{
  padding:17px 18px;
  border-bottom:1px solid #dde0e5;
  color:#1f1c19 !important;
  font-size:16px;
  line-height:1.45;
  text-align:left;
  vertical-align:middle;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.key-menu-price-table thead th{
  background:#f3f4f6;
  font-size:18px;
  font-weight:650 !important;
}
.key-menu-price-table tbody th{
  font-size:18px;
  font-weight:650 !important;
}
.key-menu-price-table tbody th span{
  display:block;
  margin-top:7px;
  color:#62584f;
  font-size:13px;
  font-weight:560;
}
.key-menu-price-table td{
  font-size:20px;
  font-weight:650 !important;
}
.key-menu-price-table td small{
  font-size:12px;
  font-weight:500;
}
.key-menu-price-table td:nth-child(3){
  color:#d72a78 !important;
  font-size:14px;
}
.key-menu-price-table em{
  display:inline-block;
  margin-left:8px;
  padding:3px 8px;
  border-radius:999px;
  background:#d72a78;
  color:#fff;
  font-size:11px;
  font-style:normal;
}
.key-menu-row-note td{
  background:#fff5f5;
  border-left:4px solid #ef5350;
  color:#1f1c19 !important;
  font-size:14px !important;
  text-align:center;
}
.key-menu-row-note strong{
  color:#d32f2f !important;
}
.key-menu-desc td{
  padding:10px 18px;
  background:#fff;
}
.key-menu-desc summary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:7px 16px;
  border:1px solid #d8c8b2;
  border-radius:999px;
  color:#34302c;
  font-size:13px;
  font-weight:620;
  cursor:pointer;
}
.key-menu-desc p{
  margin:12px 0 4px !important;
  color:#62584f !important;
  font-size:14px !important;
  line-height:1.8 !important;
}
.key-luce-table th[colspan]{
  background:#f8f1e8;
}
.key-note-center{
  max-width:720px;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.key-card.key-wide{
  grid-column:1/-1 !important;
}
.key-static .key-copy{
  max-width:760px;
  margin:0 auto;
  padding:20px;
  border:1px solid #e3d4c2;
  border-radius:14px;
  background:#fffdf8;
  box-shadow:0 10px 24px rgba(92,64,35,.05);
}
.key-static .key-copy-center{
  text-align:center;
}
.key-static .key-copy p{
  margin:0 0 14px !important;
  color:#5f554c !important;
  font-size:15px !important;
  line-height:1.95 !important;
}
.key-static .key-copy p:last-child{
  margin-bottom:0 !important;
}
.key-static .key-copy h3{
  margin:0 0 14px !important;
  color:#34302c !important;
  font-size:20px !important;
  line-height:1.55 !important;
  font-weight:580 !important;
}
.key-static .key-sign{
  margin-top:22px !important;
  text-align:right;
}
.key-signature{
  display:flex;
  justify-content:flex-end;
  margin:22px 0 0 !important;
}
.key-signature img{
  width:min(170px,48vw) !important;
  height:auto !important;
  margin:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
.key-numbered-card{
  max-width:820px;
  margin:0 auto;
  padding:22px 20px;
  border:1px solid #e3d4c2;
  border-radius:14px;
  background:#fffdf8;
  box-shadow:0 10px 24px rgba(92,64,35,.06);
}
.key-numbered-card > span{
  display:inline-flex;
  margin-bottom:12px;
  padding:5px 11px;
  border:1px solid #d8c8b2;
  border-radius:999px;
  color:#8a704d;
  font-size:12px;
  font-weight:640;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.key-numbered-card h2{
  max-width:none !important;
  margin:0 0 16px !important;
  font-size:clamp(20px,5vw,28px) !important;
  text-align:left !important;
}
.key-numbered-card p{
  margin:0 0 14px !important;
}
.key-numbered-card p:last-child{
  margin-bottom:0 !important;
}
.key-check-list{
  max-width:760px;
  margin:0 auto;
  padding:20px;
  border:1px solid #e3d4c2;
  border-radius:14px;
  background:#fffdf8;
}
.key-check-list li{
  position:relative;
  margin:0 0 10px;
  padding-left:24px;
  list-style:none;
}
.key-check-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.78em;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#b9a17f;
}
.key-law-grid{
  margin-top:16px;
}
.key-timeline{
  display:grid !important;
  gap:12px !important;
}
.key-timeline article{
  display:grid !important;
  grid-template-columns:44px minmax(0,1fr) !important;
  gap:2px 12px !important;
  padding:16px 15px !important;
  border:1px solid #e3d4c2 !important;
  border-radius:12px !important;
  background:#fffdf8 !important;
  box-shadow:0 10px 24px rgba(92,64,35,.06) !important;
}
.key-timeline span{
  grid-row:1/3 !important;
  display:grid !important;
  place-items:center !important;
  width:36px !important;
  height:36px !important;
  border-radius:50% !important;
  background:#f3eadc !important;
  color:#8a704d !important;
  font-size:11px !important;
  line-height:1 !important;
  font-weight:560 !important;
  letter-spacing:.06em !important;
}
.key-timeline h3{
  margin:0 !important;
  color:#34302c !important;
  font-size:16px !important;
  line-height:1.45 !important;
  font-weight:580 !important;
}
.key-timeline p{
  margin:4px 0 0 !important;
  color:#62584f !important;
  font-size:13.5px !important;
  line-height:1.75 !important;
  font-weight:430 !important;
}
.key-faq{
  display:grid !important;
  gap:10px !important;
}
.key-faq details{
  border:1px solid #e3d4c2 !important;
  border-radius:12px !important;
  background:#fffdf8 !important;
  overflow:hidden !important;
  box-shadow:0 10px 24px rgba(92,64,35,.05) !important;
}
.key-faq summary{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:14px !important;
  min-height:54px !important;
  padding:14px 15px !important;
  color:#34302c !important;
  font-size:15px !important;
  line-height:1.55 !important;
  font-weight:580 !important;
  cursor:pointer !important;
  list-style:none !important;
}
.key-faq summary::-webkit-details-marker{
  display:none !important;
}
.key-faq summary::after{
  content:"+" !important;
  flex:0 0 auto !important;
  color:#8a704d !important;
  font-size:20px !important;
  line-height:1 !important;
  font-weight:430 !important;
}
.key-faq details[open] summary::after{
  content:"-" !important;
}
.key-faq p{
  margin:0 !important;
  padding:0 15px 16px !important;
  color:#62584f !important;
  font-size:14px !important;
  line-height:1.85 !important;
  font-weight:430 !important;
}
.key-reserve-block{
  margin-top:16px !important;
  padding-top:42px !important;
  border-top:1px solid #e3d4c2 !important;
}
.key-reserve-block .key-card{
  background:#fffaf2 !important;
}
.key-reserve-notes{
  margin-top:12px !important;
}
.key-inline-link{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:38px !important;
  margin-top:8px !important;
  padding:8px 13px !important;
  border:1px solid #d8c8b2 !important;
  border-radius:999px !important;
  background:#fffdf8 !important;
  color:#8a704d !important;
  font-size:13px !important;
  line-height:1.4 !important;
  font-weight:560 !important;
  text-decoration:none !important;
}
@media (min-width:740px){
  .key-timeline{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width:430px){
  .key-menu-badges{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:14px !important;
  }
  .key-menu-badges div{
    min-height:auto !important;
  }
  .key-menu-badges span,
  .key-menu-badges strong{
    font-size:16px !important;
  }
}
