

.utility-bar {
   background-color:var(--bg-soot);
   color:var(--text-muted);
   border-bottom:1px solid var(--border-ledger);
   font-family:var(--bedu-9f0);
   font-size:var(--step--2);
   line-height:1.4;
   position:relative;
   z-index:105;
}


.utility-inner {
   display:flex;
   align-items:center;
   justify-content:space-between;
   min-height:var(--utility-height);
   padding-top:0.25rem;
   padding-bottom:0.25rem;
   gap:var(--space-sm);
   flex-wrap:wrap;
}


.utility-items-left,
.utility-items-right {
   display:flex;
   align-items:center;
   gap:clamp(0.75rem, 1.8vw, 1.5rem);
   flex-wrap:wrap;
}


.utility-item {
   display:inline-flex;
   align-items:center;
   gap:0.4rem;
   color:var(--text-muted);
   white-space:nowrap;
}


.utility-link {
   color:var(--text-bone);
   text-decoration:none;
   display:inline-flex;
   align-items:center;
   gap:0.4rem;
   min-height:32px;
   padding:0.15rem 0.35rem;
   border-radius:var(--radius-xs);
   transition:color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);
}


.utility-link:hover {
   color:var(--accent-sage-light);
   background-color:rgba(246, 239, 233, 0.08);
}


.utility-link:active {
   color:var(--text-bone);
   transform:translateY(1px);
}


.utility-link:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:2px;
}


.utility-badge {

   display:inline-flex;
   align-items:center;
   gap:0.35rem;
   padding:0.15rem 0.5rem;
   background-color:rgba(159, 184, 160, 0.18);
   border:1px solid var(--border-sage);
   border-radius:var(--radius-xs);
   color:var(--accent-sage-light);
   font-weight:600;
   letter-spacing:0.04em;
   text-transform:uppercase;
}


.utility-badge-pulse {
   width:6px;
   height:6px;
   background-color:var(--accent-sage);
   border-radius:50%;
   box-shadow:0 0 6px var(--accent-sage);
}


.site-header {
   background-color:var(--bg-deep);
   border-bottom:1px solid var(--border-ledger);
   position:sticky;
   top:0;
   z-index:100;
   transition:background-color var(--duration-mid) var(--ease-out),
                     padding var(--duration-mid) var(--ease-out),
                     box-shadow var(--duration-mid) var(--ease-out);
}


.site-header.is-scrolled,
.site-header[data-scrolled="true"] {
   background-color:rgba(32, 22, 20, 0.96);
   backdrop-filter:blur(8px);
   -webkit-backdrop-filter:blur(8px);
   box-shadow:var(--shadow-md);
}


.header-inner {
   display:flex;
   align-items:center;
   justify-content:space-between;
   min-height:var(--masthead-height);
   gap:var(--space-xs);
   position:relative;
}


@media (max-width: 860px) {
   .header-action { display:none !important; }
}


.brand {
   display:flex;
   align-items:center;
   text-decoration:none;
   min-height:44px;
   padding:0.25rem 0;
   flex-shrink:0;
   transition:opacity var(--duration-fast) var(--ease-out);
}


.brand:hover { opacity:0.92; }


.brand:active { transform:translateY(1px); }


.brand:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:4px;
   border-radius:var(--radius-xs);
}


.brand img {
   height:2.15rem;
   width:auto;
   max-width:100%;
   object-fit:contain;
}


@media (max-width: 768px) {
   .brand img { height:1.75rem; }
}


@media (max-width: 480px) {
   .brand img { height:1.45rem; }
}


.nav-toggle {
   display:none;
   align-items:center;
   justify-content:center;
   gap:0.5rem;
   min-height:44px;
   min-width:44px;
   padding:0.5rem 0.85rem;
   background-color:var(--bg-soot);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-sm);
   color:var(--text-bone);
   font-family:var(--bedu-9f0);
   font-size:var(--step--1);
   font-weight:600;
   cursor:pointer;
   transition:background-color var(--duration-fast) var(--ease-out),
                     border-color var(--duration-fast) var(--ease-out),
                     color var(--duration-fast) var(--ease-out);
}


.nav-toggle:hover {
   background-color:var(--bg-card-solid);
   border-color:var(--accent-sage);
   color:var(--accent-sage-light);
}


.nav-toggle:active {
   background-color:var(--bg-soot);
   transform:scale(0.97);
}


.nav-toggle:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:2px;
}


.site-nav {
   display:flex;

   align-items:center;
}


.nav-list {
   display:flex;
   align-items:center;
   list-style:none;
   margin:0;
   padding:0;
   gap:clamp(0.4rem, 1vw, 1.25rem);
}


.nav-item { position:relative; }


.nav-link {
   display:inline-flex;
   align-items:center;
   gap:0.35rem;
   min-height:44px;
   padding:0.5rem 0.75rem;
   color:var(--text-bone);
   text-decoration:none;
   font-family:var(--bedu-e87);
   font-weight:600;
   font-size:var(--step--1);
   letter-spacing:0.02em;
   border-radius:var(--radius-xs);
   white-space:nowrap !important;
   word-break:keep-all !important;
   overflow-wrap:normal !important;
   transition:color var(--duration-fast) var(--ease-out),
                     background-color var(--duration-fast) var(--ease-out);
}


.nav-link:hover {
   color:var(--accent-sage-light);
   background-color:rgba(246, 239, 233, 0.08);
}


.nav-link:active {
   color:var(--text-bone);
   transform:translateY(1px);
}


.nav-link:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:2px;
}


.nav-link[aria-current="page"] {
   color:var(--accent-sage-light);
   border-bottom:2px solid var(--accent-sage);
   border-radius:0;
}


.nav-has-mega:hover .mega-panel,
.nav-has-mega:focus-within .mega-panel,
.mega-panel.is-open {
   opacity:1;
   visibility:visible;
   transform:translateY(0);
   pointer-events:auto;
}


.mega-panel {
   position:absolute;
   top:100%;
   left:50%;
   transform:translateX(-50%) translateY(8px);
   width:min(1080px, calc(100vw - 2rem));
   background-color:var(--bg-soot);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-sm);
   box-shadow:var(--shadow-lg);
   padding:var(--space-md);
   opacity:0;
   visibility:hidden;
   pointer-events:none;
   transition:opacity var(--duration-mid) var(--ease-out),
                     transform var(--duration-mid) var(--ease-out),
                     visibility var(--duration-mid) var(--ease-out);
   z-index:200;
}


.mega-header {
   display:flex;
   justify-content:space-between;
   align-items:baseline;
   border-bottom:1px solid var(--border-ledger);
   padding-bottom:var(--space-xs);
   margin-bottom:var(--space-md);
}


.mega-title {
   font-family:var(--bedu-047);
   font-size:var(--bedu-c98);
   color:var(--text-bone);
   margin:0;
}


.mega-carrier-note {
   font-family:var(--bedu-9f0);
   font-size:var(--step--2);
   color:var(--accent-sage-light);
}


.mega-grid {
   display:grid;
   grid-template-columns:repeat(3, minmax(0, 1fr));
   gap:var(--space-sm);

}


.mega-tile {
   display:flex;
   flex-direction:column;
   background-color:var(--bg-surface);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-xs);
   padding:var(--space-sm);
   text-decoration:none;
   color:var(--text-bone);
   min-height:44px;
   position:relative;
   overflow:hidden;
   transition:background-color var(--duration-fast) var(--ease-out),
                     border-color var(--duration-fast) var(--ease-out),
                     transform var(--duration-fast) var(--ease-out);
}


.mega-tile:hover {
   background-color:rgba(133, 54, 37, 0.45);
   border-color:var(--accent-sage);
   transform:translateY(-2px);
}


.mega-tile:active { transform:translateY(0); }


.mega-tile:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:2px;
}


.mega-tile-header {
   display:flex;
   justify-content:space-between;
   align-items:flex-start;
   margin-bottom:var(--space-2xs);
   gap:0.5rem;
}


@media (max-width: 480px) {
   .mega-tile-header {
      flex-direction:column;
      align-items:flex-start;
      gap:0.35rem;
   }
}


.mega-tile-title {
   font-family:var(--bedu-e87);
   font-size:var(--bedu-fc5);
   font-weight:700;
   color:var(--text-bone);
   margin:0;
   min-width:0;
}


.mega-tile-price {
   font-family:var(--bedu-9f0);
   font-size:var(--step--2);
   color:#1A1210 !important;
   background-color:#F0F7F0 !important;
   font-weight:700;
   padding:0.2rem 0.5rem;
   border-radius:var(--radius-xs);
   white-space:nowrap;
   display:inline-block;
}


.mega-tile-desc {
   font-size:var(--step--1);
   color:var(--text-muted);
   line-height:1.4;
   margin-top:0.25rem;
}


.mega-footer {
   margin-top:var(--space-md);
   padding-top:var(--space-xs);
   border-top:1px solid var(--border-ledger);
   display:flex;
   justify-content:space-between;
   align-items:center;
   flex-wrap:wrap;
   gap:0.5rem;
   font-family:var(--bedu-9f0);
   font-size:var(--step--2);
   color:var(--text-muted);
}


.mega-footer a {
   display:inline-block;
   min-width:0;
   max-width:100%;
}


@media (max-width: 480px) {
   .mega-footer {
      flex-direction:column;
      align-items:flex-start;
   }
}


.mega-footer a {
   color:var(--accent-sage);
   text-decoration:none;
   font-weight:600;
}


.mega-footer a:hover {
   color:var(--accent-sage-light);
   text-decoration:underline;
}


/* Mobile responsive menu */
@media (max-width: 1024px) {
   .nav-toggle { display:inline-flex; }


   .site-nav {
      position:fixed;
      top:calc(var(--masthead-height) + var(--utility-height));
      left:0;
      right:0;
      bottom:0;
      background-color:var(--bg-soot);
      flex-direction:column;
      align-items:stretch;
      padding:var(--space-md);
      overflow-y:auto;
      border-top:1px solid var(--border-ledger);
      transform:translateY(-100%);
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transition:transform var(--duration-mid) var(--ease-out),
                        opacity var(--duration-mid) var(--ease-out),
                        visibility var(--duration-mid) var(--ease-out);
   }


   .site-nav.is-open,
   .site-nav[data-open="true"] {
      transform:translateY(0);
      opacity:1;
      visibility:visible;
      pointer-events:auto;
   }


   .nav-list {
      flex-direction:column;
      align-items:stretch;
      gap:var(--space-xs);
   }


   .nav-link {
      width:100%;
      padding:0.85rem var(--space-sm);
      font-size:var(--bedu-fc5);
      border-bottom:1px solid var(--border-subtle);
   }


   .mega-panel {
      position:static;
      transform:none;
      width:100%;
      opacity:1;
      visibility:visible;
      pointer-events:auto;
      box-shadow:none;
      padding:var(--space-sm) 0;
      margin-top:var(--space-xs);
      border:none;
      border-left:2px solid var(--accent-sage);
      padding-left:var(--space-sm);
   }


   .mega-grid {
      grid-template-columns:1fr;
      gap:var(--space-xs);
   }
}


.btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:0.5rem;
   min-height:44px;
   padding:0.65rem 1.45rem;
   border-radius:var(--radius-sm);
   font-family:var(--bedu-e87);
   font-size:var(--step--1);
   font-weight:700;
   letter-spacing:0.04em;
   text-transform:uppercase;
   text-decoration:none;
   cursor:pointer;
   border:1px solid transparent;
   white-space:normal;
   text-align:center;
   transition:background-color var(--duration-fast) var(--ease-out),
                     border-color var(--duration-fast) var(--ease-out),
                     color var(--duration-fast) var(--ease-out),
                     box-shadow var(--duration-fast) var(--ease-out),
                     transform var(--duration-fast) var(--ease-press);
}


/* Primary Button (Sage Accent on Brick) */
.btn-primary,
.btn-sage {
   background-color:var(--accent-sage);
   color:var(--bg-soot);
   border-color:var(--accent-sage);
   box-shadow:0 2px 6px rgba(0, 0, 0, 0.25);
}


.btn-primary:hover,
.btn-sage:hover {
   background-color:var(--accent-sage-light);
   border-color:var(--accent-sage-light);
   color:var(--bg-soot);
   box-shadow:0 4px 12px rgba(0, 0, 0, 0.35);
   transform:translateY(-1px);
}


.btn-primary:active,
.btn-sage:active {
   background-color:var(--accent-sage-dark);
   border-color:var(--accent-sage-dark);
   color:var(--bg-soot);
   box-shadow:0 1px 3px rgba(0, 0, 0, 0.4);
   transform:translateY(1px);
}


.btn-primary:focus-visible,
.btn-sage:focus-visible {
   outline:2px solid #FFF;
   outline-offset:3px;
}


/* Secondary Button (Soot Surface) */
.btn-secondary {
   background-color:var(--bg-soot);
   color:var(--text-bone);
   border-color:var(--border-ledger);
   box-shadow:var(--shadow-sm);
}


.btn-secondary:hover {
   background-color:var(--bg-card-solid);
   border-color:var(--accent-sage);
   color:var(--accent-sage-light);
   box-shadow:var(--shadow-md);
   transform:translateY(-1px);
}


.btn-secondary:active {
   background-color:#160F0E;
   border-color:var(--border-ledger);
   color:var(--text-bone);
   transform:translateY(1px);
}


.btn-secondary:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:3px;
}


.btn-outline {
   background-color:transparent;
   color:var(--text-bone);
   border-color:var(--border-strong);
}


.btn-outline:hover {
   background-color:rgba(246, 239, 233, 0.12);
   border-color:var(--accent-sage-light);
   color:var(--accent-sage-light);
   transform:translateY(-1px);
}


.btn-outline:active {
   background-color:rgba(246, 239, 233, 0.05);
   transform:translateY(1px);
}


.btn-outline:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:3px;
}


.btn-sm {
   min-height:40px;
   padding:0.45rem 1rem;
   font-size:var(--step--2);
}


.btn-lg {
   min-height:52px;
   padding:0.85rem 1.85rem;
   font-size:var(--bedu-fc5);
}


.btn-block {
   display:flex;
   width:100%;
}


.marquee-strip {
   width:100%;
   max-width:100vw;
   overflow:hidden !important;
   contain:paint;
   background-color:var(--bg-soot);
   border-top:1px solid var(--border-ledger);
   border-bottom:1px solid var(--border-ledger);
   padding:0.65rem 0;
   position:relative;
   user-select:none;
}


.marquee-track {
   display:flex;
   width:max-content;
   animation:marquee-scroll 38s linear infinite;
}


.marquee-strip:hover .marquee-track,
.marquee-strip:focus-within .marquee-track { animation-play-state:paused; }


.marquee-content {
   display:flex;
   align-items:center;
   gap:clamp(1.5rem, 3vw, 3rem);
   padding-right:clamp(1.5rem, 3vw, 3rem);
   flex-shrink:0;
}


.marquee-item {
   display:inline-flex;
   align-items:center;
   gap:0.6rem;
   font-family:var(--bedu-9f0);
   font-size:var(--step--1);
   font-weight:500;
   color:var(--text-bone);
   white-space:nowrap;
   letter-spacing:0.04em;
   text-transform:uppercase;
}


.marquee-item strong { color:var(--accent-sage-light); }


.marquee-separator {
   color:var(--accent-sage);
   opacity:0.6;
}


@keyframes marquee-scroll {
   from { transform:translateX(0); }
   to { transform:translateX(-50%); }
}


.ledger-frame {
   background-color:var(--bg-card);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-sm);
   padding:clamp(1.25rem, 2.5vw, 2rem);
   position:relative;
   box-shadow:var(--shadow-ledger);
}


.ledger-frame::before {
   content:'';
   position:absolute;
   top:0;
   left:0;
   right:0;
   height:3px;
   background:linear-gradient(90deg, var(--accent-sage), var(--border-ledger) 50%, var(--accent-sage));
}


.ledger-card-header {
   display:flex;
   justify-content:space-between;
   align-items:baseline;
   border-bottom:1px solid var(--border-ledger);
   padding-bottom:var(--space-xs);
   margin-bottom:var(--space-sm);
   flex-wrap:wrap;
   gap:0.5rem;
}


.ledger-entry-num {
   font-family:var(--bedu-9f0);
   font-size:var(--step--2);
   color:var(--accent-sage-light);
   letter-spacing:0.08em;
   text-transform:uppercase;
}


.ledger-row {
   display:flex;
   justify-content:space-between;
   align-items:baseline;
   flex-wrap:wrap;
   gap:0.5rem;
   padding:0.5rem 0;
   border-bottom:1px dashed var(--border-subtle);
   font-family:var(--bedu-9f0);
   font-size:var(--step--1);
}


.ledger-label {
   color:var(--text-muted);
   min-width:140px;
   flex:1 1 auto;
}


.ledger-val {
   color:#FFF !important;
   font-weight:700;
   text-align:right;
   flex:1 1 auto;
}


@media (max-width: 480px) {
   .ledger-row {
      flex-direction:column;
      align-items:flex-start;
      gap:0.25rem;
   }
   .ledger-label, .ledger-val {
      width:100%;
      text-align:left;
      min-width:0;
   }
}


.ledger-row:last-child { border-bottom:none; }


/* ledger-label and ledger-val defined above */


.ledger-val.highlight { color:var(--accent-sage-light); }


.drawn-line-journey {
   position:relative;
   padding:var(--space-xl) 0;
}


.drawn-line-spine {
   position:relative;
   padding-left:clamp(2rem, 5vw, 4rem);
}


.drawn-line-spine::before {
   content:'';
   position:absolute;
   left:12px;
   top:0;
   bottom:0;
   width:2px;
   background-color:var(--border-ledger);
}


.drawn-stage-node {
   position:relative;
   margin-bottom:var(--space-2xl);
}


.drawn-stage-node:last-child { margin-bottom:0; }


.drawn-stage-marker {
   position:absolute;
   left:calc(-1 * clamp(2rem, 5vw, 4rem) + 4px);
   top:0.35rem;
   width:18px;
   height:18px;
   border-radius:50%;
   background-color:var(--bg-soot);
   border:2px solid var(--accent-sage);
   display:flex;
   align-items:center;
   justify-content:center;
   box-shadow:0 0 0 4px var(--bg-ground);
}


.drawn-stage-marker::after {
   content:'';
   width:6px;
   height:6px;
   background-color:var(--accent-sage-light);
   border-radius:50%;
}


.drawn-stage-content {
   background-color:var(--bg-card);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-sm);
   padding:clamp(1rem, 2.5vw, 1.75rem);
}


.drawn-stage-header {
   display:flex;
   justify-content:space-between;
   align-items:baseline;
   flex-wrap:wrap;
   gap:var(--space-xs);
   border-bottom:1px solid var(--border-ledger);
   padding-bottom:var(--space-xs);
   margin-bottom:var(--space-sm);
}


.drawn-stage-title {
   font-family:var(--bedu-047);
   font-size:var(--bedu-4ea);
   color:var(--text-bone);
   margin:0;
}


.drawn-stage-meta {
   font-family:var(--bedu-9f0);
   font-size:var(--step--2);
   color:var(--accent-sage);
   letter-spacing:0.05em;
   text-transform:uppercase;
}


.drawn-stage-detail {
   color:var(--text-bone);
   line-height:1.6;
}


.drawn-stage-figure {
   margin-top:var(--space-md);
   border-radius:var(--radius-xs);
   overflow:hidden;
   border:1px solid var(--border-ledger);
}


.drawn-stage-caption {
   font-family:var(--bedu-9f0);
   font-size:var(--step--2);
   color:var(--text-muted);
   background-color:var(--bg-soot);
   padding:0.5rem var(--space-sm);
   border-top:1px solid var(--border-ledger);
}


.service-tile {
   background-color:var(--bg-card);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-sm);
   overflow:hidden;
   display:flex;
   flex-direction:column;
   height:100%;
   box-shadow:var(--shadow-sm);
   transition:transform var(--duration-fast) var(--ease-out),
                     border-color var(--duration-fast) var(--ease-out),
                     box-shadow var(--duration-fast) var(--ease-out);
}


.service-tile:hover {
   transform:translateY(-3px);
   border-color:var(--accent-sage);
   box-shadow:var(--shadow-lg);
}


.service-tile:focus-within { border-color:var(--accent-sage-light); }


.service-tile-media {
   position:relative;
   aspect-ratio:16 / 10;
   overflow:hidden;
   background-color:var(--bg-soot);
}


.service-tile-media img {
   width:100%;
   height:100%;
   object-fit:cover;
   transition:transform var(--duration-mid) var(--ease-out);
}




.service-tile:hover .service-tile-media img { transform:scale(1.03); }


.service-tile-badge {
   position:absolute;
   top:0.75rem;
   right:0.75rem;
   background-color:rgba(32, 22, 20, 0.92);
   color:var(--accent-sage-light);
   border:1px solid var(--border-sage);
   font-family:var(--bedu-9f0);
   font-size:var(--step--2);
   font-weight:700;
   padding:0.25rem 0.6rem;
   border-radius:var(--radius-xs);
   letter-spacing:0.03em;
}


.service-tile-body {
   padding:var(--space-md);
   display:flex;
   flex-direction:column;
   flex-grow:1;
}


.service-tile-title {
   font-family:var(--bedu-047);
   font-size:var(--bedu-c98);
   margin-top:0;
   margin-bottom:var(--space-2xs);
   color:var(--text-bone);
}


.service-tile-title a {
   text-decoration:none;
   color:inherit;
}


.service-tile-title a:hover { color:var(--accent-sage-light); }


.service-tile-title a:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:2px;
}


.service-tile-rates {
   font-family:var(--bedu-9f0);
   font-size:var(--bedu-fc5);
   font-weight:700;
   color:var(--accent-sage-light);
   margin-bottom:var(--space-xs);
   padding:0.35rem 0.5rem;
   background-color:var(--bg-soot);
   border-left:3px solid var(--accent-sage);
   border-radius:var(--radius-xs);
}


.service-tile-desc {
   font-size:var(--step--1);
   color:var(--text-muted);
   line-height:1.55;
   margin-bottom:var(--space-md);
   flex-grow:1;
}


.service-tile-footer {
   margin-top:auto;
   padding-top:var(--space-sm);
   border-top:1px solid var(--border-ledger);
   display:flex;
   justify-content:space-between;
   align-items:center;
}


.spec-ledger-table {
   width:100%;
   border-collapse:separate;
   border-spacing:0;
   font-family:var(--bedu-e87);
   background-color:var(--bg-card);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-sm);
   overflow:hidden;
}


.spec-ledger-table thead th {
   background-color:var(--bg-soot);
   color:var(--text-muted);
   font-family:var(--bedu-9f0);
   font-size:var(--step--2);
   font-weight:700;
   text-transform:uppercase;
   letter-spacing:0.08em;
   padding:var(--space-sm) var(--space-md);
   border-bottom:2px solid var(--accent-sage);
}


.spec-ledger-table tbody td {
   padding:var(--space-sm) var(--space-md);
   border-bottom:1px solid var(--border-subtle);
   font-size:var(--step--1);
   color:var(--text-bone);
   vertical-align:middle;
}


.spec-ledger-table tbody tr:last-child td { border-bottom:none; }


.spec-ledger-table tbody tr:hover td { background-color:rgba(246, 239, 233, 0.04); }


.spec-ledger-rate {
   font-family:var(--bedu-9f0);
   font-weight:700;
   color:var(--accent-sage-light);
   white-space:nowrap;
}


.quote-tool-wrap {
   background-color:var(--bg-card);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-sm);
   padding:clamp(1.25rem, 3vw, 2.5rem);
   box-shadow:var(--shadow-lg);
   position:relative;
}


.quote-tool-grid {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-xl);
}


@media (min-width: 992px) {
   .quote-tool-grid { grid-template-columns:1.15fr 0.85fr; }
}


.tool-control-group { margin-bottom:var(--space-md); }


.tool-label {
   display:flex;
   justify-content:space-between;
   align-items:baseline;
   font-family:var(--bedu-e87);
   font-weight:700;
   font-size:var(--step--1);
   color:var(--text-bone);
   margin-bottom:var(--space-2xs);
}


.tool-value-bubble {
   font-family:var(--bedu-9f0);
   font-size:var(--step--1);
   color:var(--accent-sage-light);
   background-color:var(--bg-soot);
   padding:0.15rem 0.45rem;
   border-radius:var(--radius-xs);
   border:1px solid var(--border-subtle);
}


.tool-slider {
   width:100%;
   height:8px;
   border-radius:4px;
   background:var(--bg-soot);
   outline:none;
   border:1px solid var(--border-ledger);
   cursor:pointer;
   accent-color:var(--accent-sage);
}


.tool-select,
.tool-input {
   width:100%;
   min-height:44px;
   background-color:var(--bg-soot);
   color:var(--text-bone);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-xs);
   padding:0.5rem 0.75rem;
   font-family:var(--bedu-9f0);
   font-size:var(--step--1);
   transition:border-color var(--duration-fast) var(--ease-out),
                     box-shadow var(--duration-fast) var(--ease-out);
}


.tool-select:hover,
.tool-input:hover { border-color:var(--accent-sage); }


.tool-select:focus-visible,
.tool-input:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:2px;
}


.tool-summary-card {
   background-color:var(--bg-soot);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-sm);
   padding:var(--space-md);
   display:flex;
   flex-direction:column;
   justify-content:space-between;
   height:100%;
}


.tool-output-head {
   border-bottom:1px solid var(--border-ledger);
   padding-bottom:var(--space-xs);
   margin-bottom:var(--space-sm);
}


.tool-total-display {
   font-family:var(--bedu-9f0);
   font-size:clamp(2rem, 4vw, 3rem);
   font-weight:700;
   color:var(--accent-sage-light);
   line-height:1.1;
   margin:var(--space-xs) 0;
}


.tool-note {
   font-family:var(--bedu-9f0);
   font-size:var(--step--2);
   color:var(--text-muted);
   line-height:1.4;
}


.tool-disclaimer {
   font-size:var(--step--2);
   color:var(--text-muted);
   font-style:italic;
   margin-top:var(--space-sm);
   border-top:1px dashed var(--border-subtle);
   padding-top:var(--space-xs);
}


.form-group {
   margin-bottom:var(--space-md);
   position:relative;
}


.form-label {
   display:block;
   font-family:var(--bedu-e87);
   font-weight:700;
   font-size:var(--step--1);
   color:var(--text-bone);
   margin-bottom:0.35rem;
}


.form-label .required { color:var(--accent-sage-light); }


.form-input,
.form-select,
.form-textarea {
   width:100%;
   min-height:44px;
   background-color:var(--bg-soot);
   color:var(--text-bone);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-xs);
   padding:0.65rem 0.85rem;
   font-size:var(--bedu-fc5);
   line-height:1.4;
   transition:border-color var(--duration-fast) var(--ease-out),
                     background-color var(--duration-fast) var(--ease-out),
                     box-shadow var(--duration-fast) var(--ease-out);
}


.form-textarea {
   min-height:110px;
   resize:vertical;
}


.form-input:hover,
.form-select:hover,
.form-textarea:hover {
   border-color:var(--border-strong);
   background-color:rgba(32, 22, 20, 0.95);
}


.form-input:active,
.form-select:active,
.form-textarea:active { background-color:#160F0E; }


.form-input:focus-visible,
.form-select:focus-visible,
.form-textarea:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:2px;
   border-color:var(--accent-sage);
   background-color:var(--bg-soot);
}


.form-input.is-error,
.form-select.is-error,
.form-textarea.is-error {
   border-color:#E26D5C;
   background-color:rgba(226, 109, 92, 0.08);
}


.form-error {
   display:block;
   font-family:var(--bedu-9f0);
   font-size:var(--step--2);
   color:#FFAAA0;
   margin-top:0.35rem;
}


.form-hint {
   display:block;
   font-size:var(--step--2);
   color:var(--text-muted);
   margin-top:0.25rem;
}


/* Checkbox & Radio Controls */
.form-checkbox-label {
   display:flex;
   align-items:flex-start;
   gap:0.65rem;
   min-height:44px;
   padding:0.25rem 0;
   cursor:pointer;
   font-size:var(--step--1);
   color:var(--text-bone);
   user-select:none;
}


.form-checkbox {
   appearance:none;
   -webkit-appearance:none;
   width:20px;
   height:20px;
   min-width:20px;
   background-color:var(--bg-soot);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-xs);
   margin-top:0.2rem;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   cursor:pointer;
   transition:background-color var(--duration-fast) var(--ease-out),
                     border-color var(--duration-fast) var(--ease-out),
                     box-shadow var(--duration-fast) var(--ease-out);
}


.form-checkbox:hover {
   border-color:var(--accent-sage);
   background-color:var(--bg-card-solid);
}


.form-checkbox:active { transform:scale(0.92); }


.form-checkbox:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:2px;
}


.form-checkbox:checked {
   background-color:var(--accent-sage);
   border-color:var(--accent-sage);
}


.form-checkbox:checked::after {
   content:'';
   width:5px;
   height:9px;
   border:solid var(--bg-soot);
   border-width:0 2px 2px 0;
   transform:rotate(45deg) translate(-1px, -1px);
}


/* Honeypots (Must stay invisible to real users) */
.honeypot-wrap {
   position:absolute !important;
   left:-9999px !important;
   top:-9999px !important;
   width:1px !important;
   height:1px !important;
   opacity:0 !important;
   pointer-events:none !important;
   visibility:hidden !important;
}


.consent-banner {
   position:fixed;
   bottom:0;
   left:0;
   right:0;
   z-index:999;
   background-color:var(--bg-soot);
   border-top:2px solid var(--accent-sage);
   padding:0.65rem 1rem;
   box-shadow:0 -4px 20px rgba(0, 0, 0, 0.55);
   font-family:var(--bedu-e87);
   transition:transform var(--duration-mid) var(--ease-out),
                     opacity var(--duration-mid) var(--ease-out),
                     visibility var(--duration-mid) var(--ease-out);
}


.consent-banner[hidden] { display:none !important; }


.consent-inner {
   max-width:var(--container-max);
   margin-left:auto;
   margin-right:auto;
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:var(--space-sm);
   flex-wrap:wrap;
}


.consent-text {
   font-size:var(--step--1);
   color:var(--text-bone);
   margin:0;
   flex:1 1 320px;
   line-height:1.4;
}


.consent-text a {
   color:var(--accent-sage-light);
   text-decoration:underline;
   text-underline-offset:3px;
   padding:0.15rem 0.25rem;
}


.consent-actions {
   display:flex;
   align-items:center;
   gap:0.5rem;
   flex-shrink:0;
}


.btn-consent-accept {
   min-height:40px;
   padding:0.4rem 1rem;
   font-family:var(--bedu-e87);
   font-size:var(--step--2);
   font-weight:700;
   text-transform:uppercase;
   background-color:var(--accent-sage);
   color:var(--bg-soot);
   border:1px solid var(--accent-sage);
   border-radius:var(--radius-xs);
   cursor:pointer;
   transition:background-color var(--duration-fast) var(--ease-out),
                     transform var(--duration-fast) var(--ease-press);
}


.btn-consent-accept:hover {
   background-color:var(--accent-sage-light);
   transform:translateY(-1px);
}


.btn-consent-accept:active { transform:translateY(1px); }


.btn-consent-accept:focus-visible {
   outline:2px solid #FFF;
   outline-offset:2px;
}


.btn-consent-reject {
   min-height:40px;
   padding:0.4rem 0.85rem;
   font-family:var(--bedu-e87);
   font-size:var(--step--2);
   font-weight:600;
   text-transform:uppercase;
   background-color:transparent;
   color:var(--text-bone);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-xs);
   cursor:pointer;
   transition:background-color var(--duration-fast) var(--ease-out),
                     color var(--duration-fast) var(--ease-out),
                     border-color var(--duration-fast) var(--ease-out);
}


.btn-consent-reject:hover {
   background-color:rgba(246, 239, 233, 0.08);
   border-color:var(--border-strong);
   color:var(--accent-sage-light);
}


.btn-consent-reject:active { transform:translateY(1px); }


.btn-consent-reject:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:2px;
}


.stock {
   background-color:var(--bg-surface) !important;
   color:#FFF !important;
   border-radius:var(--radius-sm);
   border:1px solid var(--border-ledger);
   padding:clamp(2rem, 5vw, 4rem) !important;
}


.stock h1 { color:#FFF !important; }


.stock-lead, .stock-call, .stock-more { color:#F6EFE9 !important; }


.stock a {
   color:var(--accent-sage-light) !important;
   text-decoration:underline;
}


.chat-launcher span {
   white-space:nowrap !important;
   word-break:keep-all !important;
}


/* Site nav on 404 legacy styles */
@media (max-width: 768px) {
   .site-header[data-99cf58] .nav-toggle { display:inline-flex !important; }
}


.chat-launcher {
   position:fixed;
   bottom:calc(1.25rem + var(--banner-height, 0px));
   right:1.25rem;
   z-index:950;
   width:54px;
   height:54px;
   border-radius:50%;
   background-color:var(--bg-soot);
   border:2px solid var(--accent-sage);
   color:var(--accent-sage-light);
   display:flex;
   align-items:center;
   justify-content:center;
   cursor:pointer;
   box-shadow:0 4px 18px rgba(0, 0, 0, 0.5);
   transition:background-color var(--duration-fast) var(--ease-out),
                     border-color var(--duration-fast) var(--ease-out),
                     transform var(--duration-fast) var(--ease-press),
                     box-shadow var(--duration-fast) var(--ease-out),
                     bottom var(--duration-mid) var(--ease-out);
}


.chat-launcher:hover {
   background-color:var(--bg-deep);
   border-color:var(--accent-sage-light);
   color:#FFF;
   box-shadow:0 6px 24px rgba(0, 0, 0, 0.65);
   transform:translateY(-2px);
}


.chat-launcher:active {
   background-color:#140E0D;
   transform:scale(0.94);
}


.chat-launcher:focus-visible {
   outline:3px solid var(--accent-sage);
   outline-offset:3px;
}


.chat-launcher-badge {
   position:absolute;
   top:-4px;
   right:-4px;
   background-color:#E26D5C;
   color:#FFF;
   font-family:var(--bedu-9f0);
   font-size:11px;
   font-weight:700;
   width:20px;
   height:20px;
   border-radius:50%;
   display:flex;
   align-items:center;
   justify-content:center;
   border:2px solid var(--bg-soot);
}


.chat-panel {
   position:fixed;
   bottom:calc(5rem + var(--banner-height, 0px));
   right:1.25rem;
   z-index:960;
   width:min(380px, calc(100vw - 2.5rem));
   max-height:min(520px, calc(100vh - 7rem));
   background-color:var(--bg-soot);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-sm);
   box-shadow:var(--shadow-lg);
   display:flex;
   flex-direction:column;
   overflow:hidden;
   opacity:0;
   visibility:hidden;
   transform:translateY(12px) scale(0.98);
   transition:opacity var(--duration-mid) var(--ease-out),
                     visibility var(--duration-mid) var(--ease-out),
                     transform var(--duration-mid) var(--ease-out);
}


.chat-panel.is-open,
.chat-panel[data-open="true"] {
   opacity:1;
   visibility:visible;
   transform:translateY(0) scale(1);
}


.chat-header {
   background-color:var(--bg-deep);
   border-bottom:1px solid var(--border-ledger);
   padding:0.75rem 1rem;
   display:flex;
   align-items:center;
   justify-content:space-between;
}


.chat-header-title {
   font-family:var(--bedu-047);
   font-size:var(--bedu-fc5);
   color:var(--text-bone);
   margin:0;
}


.chat-header-sub {
   font-family:var(--bedu-9f0);
   font-size:var(--step--2);
   color:var(--accent-sage-light);
}


.chat-close-btn {
   background:transparent;
   border:none;
   color:var(--text-muted);
   cursor:pointer;
   min-height:36px;
   min-width:36px;
   display:flex;
   align-items:center;
   justify-content:center;
   border-radius:var(--radius-xs);
   transition:color var(--duration-fast) var(--ease-out),
                     background-color var(--duration-fast) var(--ease-out);
}


.chat-close-btn:hover {
   color:var(--text-bone);
   background-color:rgba(246, 239, 233, 0.1);
}


.chat-close-btn:active { transform:translateY(1px); }


.chat-close-btn:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:2px;
}


.chat-body {
   padding:1rem;
   flex-grow:1;
   overflow-y:auto;
   display:flex;
   flex-direction:column;
   gap:0.75rem;
   background-color:var(--bg-surface);
}


.chat-msg {
   padding:0.65rem 0.85rem;
   border-radius:var(--radius-xs);
   font-size:var(--step--1);
   line-height:1.45;
   max-width:88%;
}


.chat-msg-operator {
   background-color:var(--bg-soot);
   border:1px solid var(--border-ledger);
   color:var(--text-bone);
   align-self:flex-start;
   border-left:3px solid var(--accent-sage);
}


.chat-msg-user {
   background-color:var(--bg-deep);
   border:1px solid var(--border-subtle);
   color:#FFF;
   align-self:flex-end;
}


.chat-first-contact {
   padding:0.75rem;
   background-color:var(--bg-soot);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-xs);
   margin-bottom:0.5rem;
}


.chat-footer {
   padding:0.75rem 1rem;
   background-color:var(--bg-soot);
   border-top:1px solid var(--border-ledger);
}


.chat-form {
   display:flex;
   gap:0.5rem;
}


.chat-input {
   flex-grow:1;
   min-height:40px;
   background-color:var(--bg-surface);
   color:var(--text-bone);
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-xs);
   padding:0.35rem 0.65rem;
   font-size:var(--step--1);
}


.chat-input:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:1px;
}


.chat-send-btn {
   min-height:40px;
   padding:0 0.85rem;
   background-color:var(--accent-sage);
   color:var(--bg-soot);
   border:none;
   border-radius:var(--radius-xs);
   font-family:var(--bedu-e87);
   font-weight:700;
   cursor:pointer;
   display:flex;
   align-items:center;
   justify-content:center;
   transition:background-color var(--duration-fast) var(--ease-out);
}


.chat-send-btn:hover { background-color:var(--accent-sage-light); }


.chat-send-btn:active { transform:translateY(1px); }


.chat-send-btn:focus-visible {
   outline:2px solid #FFF;
   outline-offset:2px;
}


.site-footer {
   background-color:var(--bg-soot);
   color:var(--text-bone);
   border-top:2px solid var(--accent-sage);
   padding-top:clamp(2.5rem, 5vw, 4.5rem);
   padding-bottom:clamp(1.5rem, 3vw, 2.5rem);
   position:relative;
   z-index:50;
}


.footer-top {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-xl);
   margin-bottom:var(--space-2xl);
}


@media (min-width: 768px) {
   .footer-top { grid-template-columns:1.5fr 1fr 1fr; }
}


@media (min-width: 1024px) {
   .footer-top { grid-template-columns:1.6fr 1fr 1fr 1.2fr; }
}


.footer-brand-col .brand {
   margin-bottom:var(--space-sm);
   display:inline-block;
}


.footer-brand-col .brand img {
   height:2.45rem;
   width:auto;
}


.footer-carrier-desc {
   font-size:var(--step--1);
   color:var(--text-muted);
   line-height:1.55;
   margin-bottom:var(--space-md);
   max-width:44ch;
}


.footer-facts-list {
   list-style:none;
   margin:0;
   padding:0;
}


.footer-fact-item {
   display:flex;
   align-items:flex-start;
   gap:0.5rem;
   font-family:var(--bedu-9f0);
   font-size:var(--step--1);
   color:var(--text-bone);
   margin-bottom:0.65rem;
}


.footer-fact-item {
   word-break:break-word;
   overflow-wrap:anywhere;
}


.footer-fact-item a {
   color:var(--text-bone);
   text-decoration:none;
   min-height:32px;
   display:inline-flex;
   align-items:center;
   word-break:break-all;
}


.footer-fact-item a:hover {
   color:var(--accent-sage-light);
   text-decoration:underline;
}


.footer-fact-item a:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:2px;
}


.footer-col-title {
   font-family:var(--bedu-047);
   font-size:var(--bedu-c98);
   color:var(--text-bone);
   margin-top:0;
   margin-bottom:var(--space-sm);
   border-bottom:1px solid var(--border-ledger);
   padding-bottom:var(--space-2xs);
}


.footer-links-list {
   list-style:none;
   margin:0;
   padding:0;
}


.footer-link-item { margin-bottom:0.45rem; }


.footer-link {
   color:var(--text-muted);
   text-decoration:none;
   font-size:var(--step--1);
   display:inline-flex;
   align-items:center;
   min-height:36px;
   padding:0.15rem 0;
   transition:color var(--duration-fast) var(--ease-out);
}


.footer-link:hover {
   color:var(--accent-sage-light);
   transform:translateX(2px);
}


.footer-link:active { color:var(--text-bone); }


.footer-link:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:2px;
}


/* Legal Bottom Row */
.footer-legal-bar {
   border-top:1px solid var(--border-ledger);
   padding-top:var(--space-md);
   margin-top:var(--space-md);
   display:flex;
   justify-content:space-between;
   align-items:center;
   flex-wrap:wrap;
   gap:var(--space-sm);
   font-family:var(--bedu-9f0);
   font-size:var(--step--2);
   color:var(--text-muted);
}


.footer-legal-links {
   display:flex;
   align-items:center;
   flex-wrap:wrap;
   gap:clamp(0.75rem, 1.5vw, 1.5rem);
   list-style:none;
   margin:0;
   padding:0;
}


.footer-legal-link {
   color:var(--text-muted);
   text-decoration:none;
   min-height:32px;
   display:inline-flex;
   align-items:center;
   transition:color var(--duration-fast) var(--ease-out);
}


.footer-legal-link:hover {
   color:var(--accent-sage-light);
   text-decoration:underline;
}


.footer-legal-link:active { color:var(--text-bone); }


.footer-legal-link:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:2px;
}


.footer-consent-trigger {
   background:transparent;
   border:1px solid var(--border-ledger);
   color:var(--text-muted);
   font-family:var(--bedu-9f0);
   font-size:var(--step--2);
   min-height:32px;
   padding:0.2rem 0.6rem;
   border-radius:var(--radius-xs);
   cursor:pointer;
   display:inline-flex;
   align-items:center;
   gap:0.35rem;
   transition:color var(--duration-fast) var(--ease-out),
                     border-color var(--duration-fast) var(--ease-out),
                     background-color var(--duration-fast) var(--ease-out);
}


.footer-consent-trigger:hover {
   color:var(--accent-sage-light);
   border-color:var(--accent-sage);
   background-color:rgba(246, 239, 233, 0.05);
}


.footer-consent-trigger:active { transform:translateY(1px); }


.footer-consent-trigger:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:2px;
}


.faq-accordion {
   border:1px solid var(--border-ledger);
   border-radius:var(--radius-sm);
   background-color:var(--bg-card);
   overflow:hidden;
}


.faq-item { border-bottom:1px solid var(--border-ledger); }


.faq-item:last-child { border-bottom:none; }


.faq-trigger {
   width:100%;
   display:flex;
   justify-content:space-between;
   align-items:center;
   padding:var(--space-md);
   background:transparent;
   border:none;
   color:var(--text-bone);
   font-family:var(--bedu-e87);
   font-size:var(--bedu-fc5);
   font-weight:700;
   text-align:left;
   cursor:pointer;
   min-height:48px;
   gap:1rem;
   transition:background-color var(--duration-fast) var(--ease-out);
}


.faq-trigger:hover {
   background-color:rgba(246, 239, 233, 0.05);
   color:var(--accent-sage-light);
}


.faq-trigger:active { background-color:rgba(246, 239, 233, 0.08); }


.faq-trigger:focus-visible {
   outline:2px solid var(--accent-sage);
   outline-offset:-2px;
}


.faq-trigger .icon { transition:transform var(--duration-mid) var(--ease-out); }


.faq-trigger[aria-expanded="true"] .icon { transform:rotate(180deg); }


.faq-content {
   padding:0 var(--space-md) var(--space-md) var(--space-md);
   color:var(--text-muted);
   font-size:var(--step--1);
   line-height:1.6;
}


.faq-content[hidden] { display:none; }
