
.brand {
   display:inline-flex;
   align-items:center;
   text-decoration:none;
   line-height:1;
   flex-shrink:0;
}

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

.brand img {
   height:2.1rem;
   width:auto;
   max-width:38vw;
   display:block;
   object-fit:contain;
}

@media (min-width: 1040px) {
   .brand img {
      height:2.25rem;
      max-width:none;
   }
}

.site-header {
   position:relative;
   width:100%;
   top:0;
   left:0;
   z-index:100;
   background-color:transparent;
   transition:background-color var(--dur-base) var(--ease-standard),
                     border-color var(--dur-base) var(--ease-standard),
                     height var(--dur-base) var(--ease-standard),
                     padding var(--dur-base) var(--ease-standard);
   border-bottom:1px solid transparent;
}

.site-header .header-inner {
   display:flex;
   align-items:center;
   justify-content:space-between;
   height:var(--header-height-desk);
   padding-inline:var(--sp-md);
   max-width:var(--container-max);
   margin-inline:auto;
   gap:var(--sp-md);
}

@media (min-width: 768px) {
   .site-header .header-inner { padding-inline:var(--sp-xl); }
}

/* Header on desktop pinned and condensing */
@media (min-width: 1040px) {
   .site-header {
      position:fixed;
      background-color:rgba(228, 234, 227, 0.88);
      backdrop-filter:blur(8px);
      -webkit-backdrop-filter:blur(8px);
      border-bottom:1px solid var(--line);
   }

   /* Condensed state class: .header-short (distinct from forbidden is-condensed) */
   .site-header.header-short {
      background-color:var(--surface);
      border-bottom:1px solid var(--line);
   }

   .site-header.header-short .header-inner { height:var(--header-height-condensed); }

   .site-header.header-short .brand img { height:1.85rem; }
}

/* Desktop navigation links row inside header */
.header-nav { display:none; }

@media (min-width: 1040px) {
   .header-nav {
      display:flex;
      align-items:center;
      gap:var(--sp-lg);
      list-style:none;
      margin:0;
      padding:0;
   }

   .header-nav a {
      font-family:var(--pofo-853);
      font-size:var(--fs-xs);
      text-transform:uppercase;

      letter-spacing:0.06em;
      color:var(--ink);
      text-decoration:none;
      padding-block:var(--sp-2xs);
      position:relative;
      font-weight:500;
   }

   .header-nav a::after {
      content:"";
      position:absolute;
      bottom:-2px;
      left:0;
      width:0;
      height:2px;
      background-color:var(--accent);
      transition:width var(--dur-fast) var(--ease-out);
   }

   .header-nav a:hover { color:var(--accent); }

   .header-nav a:hover::after { width:100%; }

   .header-nav a:active { color:var(--ink); }

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

   .header-nav a[aria-current="page"] {
      color:#724005;
      font-weight:600;
   }

   .header-nav a[aria-current="page"]::after { width:100%; }
}

.header-actions {
   display:flex;
   align-items:center;
   gap:var(--sp-sm);
}

.header-phone-desk { display:none; }

@media (min-width: 1040px) {
   .header-phone-desk {
      display:inline-flex;
      align-items:center;
      gap:var(--sp-xs);
      height:44px;
      min-height:44px;
      max-height:44px;
      box-sizing:border-box;
      font-family:var(--pofo-853);
      font-size:var(--fs-xs);
      color:var(--ink);
      text-decoration:none;
      padding:0 var(--sp-sm);
      border:1px solid var(--line);
      border-radius:var(--radius-xs);
      background-color:var(--surface);
      white-space:nowrap;
      transition:background-color var(--dur-fast) var(--ease-out),
                        border-color var(--dur-fast) var(--ease-out),
                        color var(--dur-fast) var(--ease-out);
   }

   .header-phone-desk:hover {
      background-color:var(--surface-2);
      border-color:var(--ink);
      color:var(--ink);
   }

   .header-phone-desk:active { background-color:var(--line); }

   .header-phone-desk:focus-visible {
      outline:2px solid var(--accent);
      outline-offset:2px;
   }
}

.mobile-dock {
   position:fixed;
   inset:auto 0 0 0;
   z-index:900;
   height:var(--dock-height);
   background-color:var(--surface);
   border-top:1px solid var(--line);
   padding-bottom:env(safe-area-inset-bottom, 0);
   box-shadow:0 -2px 10px rgba(39, 42, 39, 0.06);
   display:flex;
   align-items:stretch;
}

@media (min-width: 1040px) {
   .mobile-dock { display:none !important; }
}

.mobile-dock-list {
   display:flex;
   width:100%;
   margin:0;
   padding:0;
   list-style:none;
}

.mobile-dock-item {
   flex:1 1 0;
   display:flex;
   min-width:0;
}

.mobile-dock-btn,
.mobile-dock-link {
   flex:1 1 0;
   display:flex;
   flex-direction:column;
   align-items:center;
   justify-content:center;
   padding:var(--sp-2xs);
   min-height:44px;
   color:var(--ink-soft);
   text-decoration:none;
   font-family:var(--pofo-0c2);
   font-size:0.72rem;
   letter-spacing:0.02em;
   background:none;
   border:0;
   appearance:none;
   cursor:pointer;
   white-space:nowrap;
   overflow:hidden;
   text-overflow:ellipsis;
   transition:color var(--dur-fast) var(--ease-out),
                     background-color var(--dur-fast) var(--ease-out);
}

.mobile-dock-btn:hover,
.mobile-dock-link:hover {
   color:var(--ink);
   background-color:var(--surface-2);
}

.mobile-dock-btn:active,
.mobile-dock-link:active {
   background-color:var(--line);
   color:var(--accent);
}

.mobile-dock-btn:focus-visible,
.mobile-dock-link:focus-visible {
   outline:2px solid var(--accent);
   outline-offset:-2px;
}

.mobile-dock-link[aria-current="page"] {
   color:var(--accent);
   font-weight:600;
}

.mobile-dock-btn .icon,
.mobile-dock-link .icon {
   width:1.35rem;
   height:1.35rem;
   margin-bottom:2px;
}

.drawer-backdrop {
   position:fixed;
   inset:0;
   background-color:rgba(39, 42, 39, 0.6);
   z-index:950;
   opacity:0;
   visibility:hidden;
   transition:opacity var(--dur-base) var(--ease-out),
                     visibility var(--dur-base) var(--ease-out);
}

.drawer-backdrop.is-visible {
   opacity:1;
   visibility:visible;
}

.drawer-panel {
   position:fixed;
   inset:auto 0 0 0;
   max-height:85vh;
   background-color:var(--ground);
   border-top:2px solid var(--accent);
   z-index:960;
   padding:var(--sp-lg) var(--sp-md) calc(var(--sp-lg) + env(safe-area-inset-bottom, 0));
   overflow-y:auto;
   transform:translateY(105%);
   transition:transform var(--dur-deliberate) var(--ease-standard);
   box-shadow:0 -8px 24px rgba(39, 42, 39, 0.15);
   visibility:hidden;
}

.drawer-panel.is-open {
   visibility:visible;
   transform:translateY(0);
}

.drawer-header {
   display:flex;
   align-items:center;
   justify-content:space-between;
   border-bottom:1px solid var(--line);
   padding-bottom:var(--sp-md);
   margin-bottom:var(--sp-md);
}

.drawer-title {
   font-family:var(--pofo-a1b);
   font-size:var(--fs-lg);
   margin:0;
}

.drawer-close {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   width:44px;
   height:44px;
   background:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   color:var(--ink);
   cursor:pointer;
   transition:background-color var(--dur-fast) var(--ease-out),
                     color var(--dur-fast) var(--ease-out);
}

.drawer-close:hover {
   background-color:var(--surface-2);
   color:var(--accent);
}

.drawer-close:active { background-color:var(--line); }

.drawer-close:focus-visible {
   outline:2px solid var(--accent);
   outline-offset:2px;

}

.drawer-nav-list {
   list-style:none;
   padding:0;
   margin:0 0 var(--sp-lg) 0;
}

.drawer-nav-list li {
   border-bottom:1px solid var(--line);

   margin:0;
}

.drawer-nav-list a {
   display:flex;
   align-items:center;
   justify-content:space-between;
   padding:var(--sp-sm) 0;
   font-family:var(--pofo-a1b);
   font-size:var(--fs-md);
   color:var(--ink);
   text-decoration:none;
   transition:color var(--dur-fast) var(--ease-out),
                     padding-inline-start var(--dur-fast) var(--ease-out);
}

.drawer-nav-list a:hover {
   color:var(--accent);
   padding-inline-start:var(--sp-xs);
}

.drawer-nav-list a:active { color:var(--ink); }

.drawer-nav-list a:focus-visible {
   outline:2px solid var(--accent);
   outline-offset:2px;
}

.drawer-nav-list a[aria-current="page"] {
   color:var(--accent);
   font-weight:700;
}

.drawer-facts {
   padding-top:var(--sp-md);
   border-top:1px dashed var(--line);
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
   color:var(--ink-soft);
}

.drawer-facts p { margin-bottom:var(--sp-2xs); }

.btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:var(--sp-xs);
   padding:0.5rem 1rem;
   min-height:44px;
   box-sizing:border-box;
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
   font-weight:500;
   text-transform:uppercase;
   letter-spacing:0.05em;
   text-decoration:none;
   border-radius:var(--radius-xs);
   cursor:pointer;
   line-height:1.25;
   white-space:normal;
   text-align:center;
   border:1px solid transparent;
   max-width:100%;
   transition:background-color var(--dur-fast) var(--ease-out),
                     border-color var(--dur-fast) var(--ease-out),
                     color var(--dur-fast) var(--ease-out),
                     box-shadow var(--dur-fast) var(--ease-out);
}

.btn-primary {
   background-color:var(--accent);
   color:var(--accent-ink);
   border-color:var(--accent);
}

.btn-primary:hover {
   background-color:#8c5310;
   border-color:#8c5310;
   color:var(--accent-ink);
}

.btn-primary:active {
   background-color:#72420a;
   border-color:#72420a;
}

.btn-primary:focus-visible {
   outline:2px solid var(--ink);
   outline-offset:2px;
}

.btn-secondary {
   background-color:var(--surface);
   color:var(--ink);
   border-color:var(--line);
}

.btn-secondary:hover {
   background-color:var(--surface-2);
   border-color:var(--ink);
   color:var(--ink);
}

.btn-secondary:active { background-color:var(--line); }

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

.btn-outline {
   background-color:transparent;
   color:var(--ink);
   border-color:var(--line);
}

.btn-outline:hover {
   background-color:var(--surface);
   border-color:var(--ink);
   color:var(--ink);
}

.btn-outline:active { background-color:var(--surface-2); }

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

.btn .icon {
   width:1.1rem;
   height:1.1rem;
}

.form-stack {
   display:flex;
   flex-direction:column;
   gap:var(--sp-md);
   width:100%;
}

.form-group {
   display:flex;
   flex-direction:column;
   gap:var(--sp-2xs);
   width:100%;
}

.form-label {
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
   text-transform:uppercase;
   letter-spacing:0.05em;
   color:var(--ink);
   font-weight:500;
}

.form-label .optional {
   color:var(--ink-soft);
   text-transform:lowercase;
   font-weight:normal;
}

.form-control {
   width:100%;
   padding:0.5rem 0.875rem;
   height:44px;
   min-height:44px;
   background-color:var(--ground);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   color:var(--ink);
   font-family:var(--pofo-0c2);
   font-size:var(--fs-base);
   transition:border-color var(--dur-fast) var(--ease-out),
                     background-color var(--dur-fast) var(--ease-out),
                     box-shadow var(--dur-fast) var(--ease-out);
}

.form-control:hover { border-color:var(--ink-soft); }

.form-control:focus {
   outline:none;
   border-color:var(--accent);
   background-color:#f7faf6;
   box-shadow:0 0 0 2px rgba(168, 101, 21, 0.15);
}

.form-control:active { border-color:var(--accent); }

.form-control[aria-invalid="true"] {
   border-color:#a82015;
   background-color:#fdf5f5;
}

select.form-control {
   appearance:none;
   background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23272A27' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
   background-repeat:no-repeat;
   background-position:right 0.875rem center;
   padding-right:2.5rem;
}

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

.form-check {
   display:flex;
   align-items:flex-start;
   gap:var(--sp-xs);
   cursor:pointer;
   margin-top:var(--sp-xs);
}

.form-check input[type="checkbox"] {
   width:20px;
   height:20px;
   margin-top:2px;
   flex-shrink:0;
   accent-color:var(--accent);
   cursor:pointer;
}

.form-check-label {
   font-size:var(--fs-sm);
   color:var(--ink);
   line-height:1.4;
}

.form-error {
   display:none;
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
   color:#a82015;
   margin-top:2px;
}

.form-error.is-active { display:block; }

.form-status {
   padding:var(--sp-md);
   border-radius:var(--radius-xs);
   font-family:var(--pofo-853);
   font-size:var(--fs-sm);
   display:none;
}

.form-status.is-success {
   display:block;
   background-color:#dbe8d8;
   border:1px solid #719b69;
   color:#1a4213;
}

.form-status.is-error {
   display:block;
   background-color:#fce7e7;
   border:1px solid #c97373;
   color:#6d1b1b;
}

/* Honeypot hidden fields */
.firm-field-wrap,
.homepage-field-wrap {
   position:absolute !important;
   opacity:0 !important;
   pointer-events:none !important;
   height:0 !important;
   width:0 !important;
   margin:0 !important;
   padding:0 !important;
   overflow:hidden !important;
}

.job-entry {
   padding-block:var(--sp-3xl);
   border-top:1px solid var(--line);
}

.job-entry:first-of-type { border-top:0; }

.job-heading {
   font-family:var(--pofo-a1b);
   font-size:var(--fs-2xl);
   max-width:30ch;
   margin-bottom:var(--sp-md);
}

.job-narrative {
   font-size:var(--fs-base);
   line-height:var(--lh-relaxed);
   max-width:var(--reading-max);
   margin-bottom:var(--sp-lg);
}

.job-ledger {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--sp-xs);
   background-color:var(--surface);
   border:1px solid var(--line);
   padding:var(--sp-md);
   border-radius:var(--radius-xs);
   margin-top:var(--sp-md);
}

@media (min-width: 640px) {
   .job-ledger { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 960px) {
   .job-ledger { grid-template-columns:repeat(4, minmax(0, 1fr)); }
}

.job-ledger-item {
   display:flex;
   flex-direction:column;
}

.job-ledger-label {
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
   text-transform:uppercase;
   letter-spacing:0.05em;
   color:var(--ink-soft);
}

.job-ledger-val {
   font-family:var(--pofo-853);
   font-size:var(--fs-sm);
   color:var(--ink);
   font-weight:500;
   margin-top:2px;
}

/* Full width evidence photograph between jobs */
.job-evidence-figure {
   width:100%;
   margin-block:var(--sp-xl);
   border:1px solid var(--line);
   background-color:var(--surface);
   display:flex;
   flex-direction:column;
}

.job-evidence-figure img {
   width:100%;
   height:auto;
   max-height:580px;
   object-fit:cover;
   display:block;
}

.job-evidence-figure figcaption {
   padding:var(--sp-xs) var(--sp-sm);
   border-top:1px solid var(--line);
   background-color:var(--surface);
   position:static;
   width:100%;
   box-sizing:border-box;
}

.diagram-plate {
   position:relative;
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   padding:var(--sp-md);
   margin-block:var(--sp-xl);
}

@media (min-width: 768px) {
   .diagram-plate { padding:var(--sp-lg); }
}

.diagram-figure {
   position:relative;
   width:100%;
   overflow:hidden;
   border:1px solid var(--line);
   background-color:#272a27;
}

.diagram-figure img {
   width:100%;
   height:auto;
   opacity:0.92;
}

.diagram-overlay {
   position:absolute;
   inset:0;
   pointer-events:none;
}

.callout-tag {
   position:absolute;
   background-color:var(--ground);
   border:1px solid var(--ink);
   color:var(--ink);
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
   padding:4px 8px;
   pointer-events:auto;
   box-shadow:2px 2px 0 var(--ink);
   display:inline-flex;
   align-items:center;
   gap:4px;
}

.callout-tag::before {
   content:"";
   display:inline-block;
   width:6px;
   height:6px;
   background-color:var(--accent);
   border-radius:50%;
}

.callout-leader {
   stroke:var(--accent);
   stroke-width:1.5;
   stroke-dasharray:4 3;
}

.diagram-legend {
   margin-top:var(--sp-md);
   display:grid;
   grid-template-columns:1fr;
   gap:var(--sp-sm);
}

@media (min-width: 680px) {
   .diagram-legend { grid-template-columns:repeat(3, minmax(0, 1fr)); }
}

.legend-item {
   border-left:2px solid var(--accent);
   padding-left:var(--sp-xs);
}

.legend-title {
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
   font-weight:600;
   color:var(--ink);
}

.legend-desc {
   font-size:var(--fs-xs);
   color:var(--ink-soft);
   margin-top:2px;
}

.scrolly-section {
   position:relative;
   margin-block:var(--sp-3xl);
}

.scrolly-container {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--sp-xl);
}

@media (min-width: 960px) {
   .scrolly-container {
      grid-template-columns:1fr 1fr;
      gap:var(--sp-2xl);
   }
}

.scrolly-sticky-col { position:relative; }

@media (min-width: 960px) {
   .scrolly-sticky-col {
      position:sticky;
      top:calc(var(--header-height-condensed) + var(--sp-lg));
      height:fit-content;
   }
}

.scrolly-figure-frame {
   position:relative;
   border:1px solid var(--line);
   background-color:var(--surface);
   overflow:hidden;
}

.scrolly-figure-frame img {
   width:100%;
   height:auto;
   max-height:480px;
   object-fit:cover;
}

.scrolly-progress-track {
   width:100%;
   height:4px;
   background-color:var(--line);
   margin-top:var(--sp-xs);
   overflow:hidden;
}

.scrolly-progress-bar {
   height:100%;
   width:0%;
   background-color:var(--accent);
   transition:width var(--dur-fast) linear;
}

.scrolly-text-col {
   display:flex;
   flex-direction:column;
   gap:var(--sp-3xl);
}

.scrolly-step-card {
   padding:var(--sp-md) var(--sp-lg);
   background-color:transparent;
   border:0;
   border-left:3px solid var(--accent);
   border-radius:0;
}

.process-draw-wrapper {
   position:relative;
   margin-block:var(--sp-3xl);
}

.process-draw-svg {
   position:absolute;
   top:0;
   left:20px;
   width:40px;
   height:100%;
   pointer-events:none;
   z-index:1;
}

@media (min-width: 768px) {
   .process-draw-svg { left:36px; }
}

.process-draw-path {
   fill:none;
   stroke:var(--accent);
   stroke-width:3;
   stroke-linecap:square;
   stroke-linejoin:miter;
}

.process-stages {
   position:relative;
   z-index:2;
   display:flex;
   flex-direction:column;
   gap:var(--sp-2xl);
   padding-left:60px;
}

@media (min-width: 768px) {
   .process-stages { padding-left:90px; }
}

.process-stage-item { position:relative; }

.process-stage-marker {
   position:absolute;
   left:-49px;
   top:4px;
   width:18px;
   height:18px;
   background-color:var(--ground);
   border:3px solid var(--accent);
   border-radius:50%;
   transition:background-color var(--dur-fast) var(--ease-out),
                     transform var(--dur-fast) var(--ease-out);
}

@media (min-width: 768px) {
   .process-stage-marker {
      left:-63px;
      width:20px;
      height:20px;
   }
}

.process-stage-item.is-reached .process-stage-marker {
   background-color:var(--accent);
   transform:scale(1.15);
}

.tool-box {
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   padding:var(--sp-lg);
   margin-block:var(--sp-2xl);
}

@media (min-width: 768px) {
   .tool-box { padding:var(--sp-xl); }
}

.tool-header {
   border-bottom:1px solid var(--line);
   padding-bottom:var(--sp-md);
   margin-bottom:var(--sp-lg);
}

.tool-output-panel {
   background-color:var(--ground);
   border:1px solid var(--line);
   border-left:4px solid var(--accent);
   padding:var(--sp-md);
   border-radius:var(--radius-xs);
   margin-top:var(--sp-lg);
}

.tool-output-figure {
   font-family:var(--pofo-853);
   font-size:var(--fs-2xl);
   font-weight:700;
   color:var(--accent);
   line-height:1.1;
   font-variant-numeric:tabular-nums;
}

.tool-output-note {
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
   color:var(--ink-soft);
   margin-top:var(--sp-2xs);
}

.tool-disclaimer {
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
   color:var(--ink-soft);
   margin-top:var(--sp-sm);
   border-top:1px dashed var(--line);
   padding-top:var(--sp-xs);
}

.consent-banner {
   position:fixed;
   inset:auto 0 0 0;
   z-index:1100;
   background-color:var(--surface);
   border-top:2px solid var(--accent);
   box-shadow:0 -4px 16px rgba(39, 42, 39, 0.15);
   padding:var(--sp-xs) var(--sp-md);
   max-height:20vh;
   display:flex;
   align-items:center;
   transition:transform var(--dur-base) var(--ease-standard),
                     opacity var(--dur-base) var(--ease-standard);
}

@media (max-width: 1039px) {
   .consent-banner { bottom:var(--dock-height); }
}

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

.consent-banner-inner {
   display:flex;
   flex-direction:column;
   gap:var(--sp-xs);
   width:100%;
   max-width:var(--container-max);
   margin-inline:auto;
}

@media (min-width: 768px) {
   .consent-banner-inner {
      flex-direction:row;
      align-items:center;
      justify-content:space-between;
      gap:var(--sp-md);
   }
}

.consent-copy {
   font-size:var(--fs-xs);
   line-height:1.35;
   color:var(--ink);
   margin:0;
   max-width:68ch;
}

.consent-copy a {
   color:var(--accent);
   text-decoration:underline;
}

.consent-actions {
   display:flex;
   align-items:center;
   gap:var(--sp-xs);
   flex-shrink:0;
}

.consent-btn {
   padding:0 1rem;
   height:44px;
   min-height:44px;
   max-height:44px;
   box-sizing:border-box;
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
   border-radius:var(--radius-xs);
   cursor:pointer;
   white-space:nowrap;
   line-height:1;
   text-decoration:none;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   transition:background-color var(--dur-fast) var(--ease-out),
                     color var(--dur-fast) var(--ease-out),
                     border-color var(--dur-fast) var(--ease-out);
}

.consent-btn-accept {
   background-color:var(--accent);
   color:var(--accent-ink);
   border:1px solid var(--accent);
}

.consent-btn-accept:hover {
   background-color:#8c5310;
   border-color:#8c5310;
}

.consent-btn-accept:active { background-color:#72420a; }

.consent-btn-accept:focus-visible {
   outline:2px solid var(--ink);
   outline-offset:2px;
}

.consent-btn-decline {
   background-color:transparent;
   color:var(--ink);
   border:1px solid var(--line);
}

.consent-btn-decline:hover {
   background-color:var(--surface-2);
   border-color:var(--ink);
}

.consent-btn-decline:active { background-color:var(--line); }

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

.chat-launcher {
   position:fixed;
   bottom:calc(var(--sp-md) + var(--dock-height));
   right:var(--sp-md);
   z-index:920;
   display:inline-flex;
   align-items:center;
   gap:var(--sp-xs);
   padding:0.65rem 1rem;
   min-height:44px;
   background-color:var(--ink);
   color:var(--ground);
   border:1px solid var(--ink);
   border-radius:999px;
   cursor:pointer;
   box-shadow:0 4px 14px rgba(39, 42, 39, 0.25);
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
   letter-spacing:0.03em;
   line-height:1;
   transition:background-color var(--dur-fast) var(--ease-out),
                     color var(--dur-fast) var(--ease-out),
                     border-color var(--dur-fast) var(--ease-out),
                     transform var(--dur-fast) var(--ease-out);
}

@media (min-width: 1040px) {
   .chat-launcher {
      bottom:var(--sp-lg);
      right:var(--sp-lg);
   }
}

.chat-launcher:hover {
   background-color:var(--accent);
   border-color:var(--accent);
   color:var(--accent-ink);
   transform:translateY(-2px);
}

.chat-launcher:active {
   transform:translateY(0);
   background-color:#8c5310;
}

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

.chat-launcher.has-consent-banner { bottom:calc(var(--sp-md) + var(--dock-height) + 140px); }

@media (max-width: 480px) {
   .chat-launcher.has-consent-banner { bottom:calc(var(--sp-md) + var(--dock-height) + 160px); }
}

@media (min-width: 1040px) {
   .chat-launcher.has-consent-banner { bottom:calc(var(--sp-lg) + 110px); }
}

.chat-launcher .icon {
   width:1.15rem;
   height:1.15rem;
}

.chat-unread-badge {
   display:none;
   background-color:var(--accent);
   color:var(--accent-ink);
   font-size:0.7rem;
   padding:2px 6px;
   border-radius:999px;
   font-weight:600;
}

.chat-unread-badge.is-visible { display:inline-block; }

.chat-panel {
   position:fixed;
   bottom:calc(var(--dock-height) + var(--sp-xs));
   right:var(--sp-sm);
   width:calc(100vw - (var(--sp-sm) * 2));
   max-width:380px;
   max-height:520px;
   height:75vh;
   background-color:var(--ground);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   box-shadow:0 12px 36px rgba(39, 42, 39, 0.2);
   z-index:1050;
   display:none;
   flex-direction:column;
   overflow:hidden;
}

@media (min-width: 1040px) {
   .chat-panel {
      bottom:var(--sp-lg);
      right:var(--sp-lg);
   }
}

.chat-panel.is-open { display:flex; }

.chat-panel-header {
   display:flex;
   align-items:center;
   justify-content:space-between;
   padding:var(--sp-sm) var(--sp-md);
   background-color:var(--surface);
   border-bottom:1px solid var(--line);
}

.chat-panel-title {
   font-family:var(--pofo-a1b);
   font-size:var(--fs-sm);
   font-weight:600;
   margin:0;
   color:var(--ink);
}

.chat-close-btn {
   background:none;
   border:0;
   padding:var(--sp-2xs);
   min-height:36px;
   min-width:36px;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   cursor:pointer;
   color:var(--ink-soft);
   border-radius:var(--radius-xs);
   transition:color var(--dur-fast) var(--ease-out),
                     background-color var(--dur-fast) var(--ease-out);
}

.chat-close-btn:hover {
   color:var(--ink);
   background-color:var(--surface-2);
}

.chat-close-btn:active { background-color:var(--line); }

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

.chat-body {
   flex:1 1 auto;
   overflow-y:auto;
   padding:var(--sp-sm);
   display:flex;
   flex-direction:column;
   gap:var(--sp-xs);
   background-color:var(--ground);
}

.chat-msg {
   padding:var(--sp-xs) var(--sp-sm);
   border-radius:var(--radius-xs);
   font-size:var(--fs-sm);
   max-width:85%;
   line-height:1.4;
}

.chat-msg-operator {
   background-color:var(--surface);
   border:1px solid var(--line);
   color:var(--ink);
   align-self:flex-start;
}

.chat-msg-visitor {
   background-color:var(--accent);
   color:var(--accent-ink);
   align-self:flex-end;
}

.chat-footer {
   padding:var(--sp-xs) var(--sp-sm);
   background-color:var(--surface);
   border-top:1px solid var(--line);
}

.chat-form {
   display:flex;
   gap:var(--sp-2xs);
}

.chat-input {
   flex:1 1 auto;
   min-height:38px;
   padding:0.4rem 0.6rem;
   background-color:var(--ground);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   font-size:var(--fs-sm);
   color:var(--ink);
}

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

.chat-send-btn {
   padding:0.4rem 0.8rem;
   min-height:38px;
   background-color:var(--accent);
   color:var(--accent-ink);
   border:0;
   border-radius:var(--radius-xs);
   cursor:pointer;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   transition:background-color var(--dur-fast) var(--ease-out);
}

.chat-send-btn:hover { background-color:#8c5310; }

.chat-send-btn:active { background-color:#72420a; }

.chat-send-btn:focus-visible {
   outline:2px solid var(--ink);
   outline-offset:2px;
}

.site-footer {
   background-color:#1f221f;
   color:#d5dcd4;
   border-top:2px solid var(--accent);
   margin-top:auto;
   padding-top:var(--sp-3xl);
   padding-bottom:var(--sp-xl);
}

.site-footer a {
   color:#d5dcd4;
   text-decoration:none;
   transition:color var(--dur-fast) var(--ease-out);
}

.site-footer a:hover {
   color:var(--accent-ink);
   text-decoration:underline;
}

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

.footer-contact-block {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--sp-xl);
   padding-bottom:var(--sp-2xl);
   border-bottom:1px solid #363b35;
}

@media (min-width: 860px) {
   .footer-contact-block {
      grid-template-columns:1.4fr 1fr 1fr;
      gap:var(--sp-2xl);
   }
}

.footer-brand img {
   height:2.35rem;
   width:auto;
   margin-bottom:var(--sp-md);
}

.footer-lede {
   color:#a0a79f;
   font-size:var(--fs-sm);
   line-height:1.5;
   max-width:44ch;
}

.footer-col-title {
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
   text-transform:uppercase;
   letter-spacing:0.08em;
   color:#e4eae3;
   margin-bottom:var(--sp-md);
   font-weight:600;
}

.footer-info-list {
   list-style:none;
   padding:0;
   margin:0;
   display:flex;
   flex-direction:column;
   gap:var(--sp-sm);
   font-size:var(--fs-sm);
}

.footer-info-list li {
   display:flex;
   align-items:flex-start;
   gap:var(--sp-xs);
   color:#c2cac1;
}

.footer-info-list .icon {
   width:1.1rem;
   height:1.1rem;
   color:var(--accent);
   margin-top:2px;
}

.footer-nav-list {
   list-style:none;
   padding:0;
   margin:0;
   display:flex;
   flex-direction:column;
   gap:var(--sp-xs);
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
}

.footer-nav-list a {
   display:inline-block;
   padding-block:4px;
}

@media (pointer: coarse) {
   .footer-info-list a,
   .footer-nav-list a,
   .footer-legal-links a,
   .yard-detail-val a {
      display:inline-flex;
      align-items:center;
      min-height:44px;
      padding-block:6px;
   }
}

.footer-legal-bar {
   padding-top:var(--sp-lg);
   display:flex;
   flex-direction:column;
   gap:var(--sp-md);
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
   color:#8a9289;
}

@media (min-width: 900px) {
   .footer-legal-bar {
      flex-direction:row;
      align-items:center;
      justify-content:space-between;
   }
}

.footer-legal-links {
   display:flex;
   flex-wrap:wrap;
   gap:var(--sp-sm) var(--sp-md);
   list-style:none;
   padding:0;
   margin:0;
}

.footer-legal-links li { margin:0; }

.footer-legal-links a {
   color:#a0a79f;
   text-decoration:underline;
   text-underline-offset:2px;
   display:inline-flex;
   align-items:center;
   min-height:28px;
   padding-block:4px;
}

@media (max-width: 600px) {
   .footer-legal-links a {
      min-height:44px;
      padding-block:8px;
   }
}

.footer-legal-links a:hover { color:#ffffff; }

.consent-reopen-btn {
   background:none;
   border:0;
   padding:0;
   height:44px;
   min-height:44px;
   max-height:44px;
   display:inline-flex;
   align-items:center;
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
   color:#a0a79f;
   text-decoration:underline;
   cursor:pointer;
   transition:color var(--dur-fast) var(--ease-out);
}

.consent-reopen-btn:hover { color:#ffffff; }

.consent-reopen-btn:active { color:var(--accent); }

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

.footer-roc-badge {
   display:inline-flex;
   align-items:center;
   gap:var(--sp-xs);
   padding:var(--sp-2xs) var(--sp-xs);
   background-color:#272a27;
   border:1px solid #363b35;
   border-radius:var(--radius-xs);
   color:#e4eae3;
   font-family:var(--pofo-853);
   font-size:var(--fs-xs);
   white-space:nowrap;
}
