.hero-opening {
   position:relative;
   width:100%;
   background-color:var(--ground);
   padding-top:var(--space-xl);
   padding-bottom:var(--space-xl);
   border-bottom:1px solid var(--line);
   overflow:hidden;
}


.hero-opening-shell {
   display:flex;
   flex-direction:column;
   gap:var(--space-lg);
}


.hero-type-lockup {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-md);
   align-items:end;
}


@media (min-width: 960px) {
   .hero-type-lockup {
      grid-template-columns:minmax(0, 1.7fr) minmax(0, 1.1fr);
      gap:var(--space-xl);
   }
}


.hero-display-title {
   margin:0;
   font-family:var(--beco-9f2);
   font-size:var(--fs-display);
   line-height:1.05;
   color:var(--ink);
   letter-spacing:-0.025em;
   text-wrap:balance;
}


.hero-lede-col {
   display:flex;
   flex-direction:column;
   gap:var(--space-sm);
}


.hero-lede-col p {
   font-size:var(--fs-md);
   line-height:var(--lh-base);
   color:var(--ink-soft);
   margin-bottom:0;
}


.hero-meta-strip {
   display:flex;
   flex-wrap:wrap;
   align-items:center;
   gap:var(--space-xs) var(--space-md);
   font-family:var(--beco-4e2);
   font-size:var(--fs-xs);
   color:var(--ink-soft);
   padding-top:var(--space-xs);
   border-top:1px solid var(--line);

}


.hero-meta-item {
   display:inline-flex;
   align-items:center;
   gap:var(--space-3xs);
}


.hero-meta-item .icon {
   width:0.95rem;
   height:0.95rem;
   color:var(--accent);
}


.hero-stage-media {
   position:relative;
   width:100vw;
   margin-left:calc(50% - 50vw);
   margin-right:calc(50% - 50vw);
   overflow:hidden;
   border-top:1px solid var(--line);
   border-bottom:1px solid var(--line);
   background-color:var(--surface-2);
}


.hero-bleed-img {
   width:100%;
   aspect-ratio:3 / 2;
   height:auto;
   max-height:80vh;
   object-fit:cover;
   object-position:44% 40%;
   display:block;

}


.hero-quiet-anchor {
   position:absolute;
   top:var(--space-md);
   right:clamp(1rem, 0.8rem + 1.2vw, 2.5rem);
   z-index:10;
   display:flex;
   flex-direction:column;
   align-items:flex-end;
   gap:var(--space-2xs);
}


.hero-quiet-badge {
   background-color:rgba(222, 210, 188, 0.94);
   backdrop-filter:blur(6px);
   border:1px solid var(--line);
   padding:0.35rem 0.75rem;
   font-family:var(--beco-4e2);
   font-size:var(--fs-xs);
   color:var(--ink);
   border-radius:var(--radius-xs);
   box-shadow:var(--shadow-subtle);
}


.hero-scroll-ruler {

   height:3px;
   width:100%;
   background-color:var(--line);
   transform-origin:left center;
   margin-top:var(--space-xs);
}


/* Scroll-scene hooks */
[data-opening] [data-scene] { animation-timeline:view(); }


[data-opening] [data-scene="rule"] {
   height:3px;
   width:100%;
   background-color:var(--line);
   transform-origin:left center;
   margin-top:var(--space-xs);
   animation-timeline:view();
}


@supports (animation-timeline: view()) {
   [data-opening] [data-scene="rule"],
   .hero-scroll-ruler {
      animation:rulerStretch linear both;
      animation-timeline:view();
      animation-range:entry 0% cover 50%;
   }


   @keyframes rulerStretch {
      from {
         transform:scaleX(0.08);
         opacity:0.4;
      }
      to {
         transform:scaleX(1);
         opacity:1;
      }
   }


   [data-opening] [data-scene="headline"],
   [data-opening] .hero-display-title {
      animation:heroTitleRise linear both;
      animation-timeline:view();
      animation-range:entry 0% cover 30%;
   }


   @keyframes heroTitleRise {
      from {
         opacity:0.85;
         transform:translateY(12px);
      }
      to {
         opacity:1;
         transform:translateY(0);
      }
   }


   [data-opening] [data-scene="figure"],
   [data-opening] [data-scene="image"],
   [data-opening] .hero-bleed-img {
      animation:heroImgTone linear both;
      animation-timeline:view();
      animation-range:entry 10% exit 90%;
   }


   @keyframes heroImgTone {
      from { transform:scale(1.02); }
      to { transform:scale(1); }
   }


   [data-opening] [data-scene="stack"] {
      animation:stackAssemble linear both;
      animation-timeline:view();
      animation-range:entry 0% cover 40%;
   }


   @keyframes stackAssemble {
      from {
         opacity:0.92;
         transform:translateY(6px);
      }
      to {
         opacity:1;
         transform:translateY(0);
      }
   }
}


.page-intro-band {
   background-color:var(--surface);
   border-bottom:1px solid var(--line);
   padding-top:var(--space-xl);
   padding-bottom:var(--space-xl);
}


.page-intro-grid {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-md);
}


@media (min-width: 860px) {
   .page-intro-grid {
      grid-template-columns:minmax(0, 1.8fr) minmax(0, 1fr);
      align-items:end;
   }
}


.page-intro-title {
   margin:0;
   font-size:var(--fs-3xl);
   line-height:1.12;
   color:var(--ink);
}


.page-intro-lede {
   margin:0;
   font-size:var(--fs-md);
   color:var(--ink-soft);
   max-width:54ch;
}


.page-intro-stats {
   display:flex;
   flex-wrap:wrap;
   gap:var(--space-md);
   padding-top:var(--space-sm);
   border-top:1px solid var(--line);
}


.page-stat-block {
   display:flex;
   flex-direction:column;
}


.page-stat-value {
   font-family:var(--beco-4e2);
   font-size:var(--fs-lg);
   font-weight:500;
   color:var(--accent);
}


.page-stat-label {
   font-size:var(--fs-xs);
   color:var(--ink-soft);
   text-transform:uppercase;
   letter-spacing:0.05em;
}


.stage-split-2-1 {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-lg);
   align-items:start;
}


@media (min-width: 860px) {
   .stage-split-2-1 {
      grid-template-columns:minmax(0, 2fr) minmax(0, 1fr);
      gap:var(--space-xl);
   }
}


.stage-split-1-2 {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-lg);
   align-items:start;
}


@media (min-width: 860px) {
   .stage-split-1-2 {
      grid-template-columns:minmax(0, 1fr) minmax(0, 2fr);
      gap:var(--space-xl);
   }
}


.stage-main-prose {
   display:flex;
   flex-direction:column;
   gap:var(--space-sm);
}


.stage-header-title {
   font-family:var(--beco-9f2);
   font-size:var(--fs-2xl);
   margin:0;
   line-height:1.15;
   color:var(--ink);
}


.stage-detail-lead {
   font-size:var(--fs-md);
   color:var(--ink);
   line-height:var(--lh-snug);
   margin:0;
}


.stage-side-panel {
   background-color:var(--surface-2);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   padding:var(--space-md);
   box-shadow:var(--shadow-card);
   display:flex;
   flex-direction:column;
   gap:var(--space-sm);
}


.stage-side-panel-title {
   font-family:var(--beco-9f2);
   font-size:var(--fs-lg);
   margin:0;
   color:var(--ink);
}


.pantry-spec-list {
   list-style:none;
   margin:0;
   padding:0;
   display:flex;
   flex-direction:column;
   gap:var(--space-2xs);
}


.pantry-spec-item {
   display:flex;
   justify-content:space-between;
   align-items:baseline;
   gap:var(--space-xs);
   padding-bottom:var(--space-3xs);
   border-bottom:1px solid rgba(158, 144, 116, 0.4);
   font-size:var(--fs-sm);
}


.pantry-spec-key {
   color:var(--ink);
   font-weight:500;
}


.pantry-spec-val {
   font-family:var(--beco-4e2);
   color:var(--accent);
   font-size:var(--fs-xs);
   text-align:right;
}


.stage-visual-frame {
   position:relative;
   border:1px solid var(--line);
   background-color:var(--surface);
   border-radius:var(--radius-sm);
   overflow:hidden;
}


.stage-visual-frame img {
   width:100%;
   aspect-ratio:16 / 11;
   object-fit:cover;
   display:block;
}


.stage-visual-caption {
   padding:var(--space-xs) var(--space-sm);
   background-color:var(--surface);
   border-top:1px solid var(--line);
   font-size:var(--fs-xs);
   color:var(--ink-soft);
   display:flex;
   align-items:center;
   gap:var(--space-2xs);
}


.stage-visual-caption .icon {
   width:0.9rem;
   height:0.9rem;
   color:var(--accent);
}


.plate-blueprint-section {
   background-color:var(--surface);
   border-top:1px solid var(--line);
   border-bottom:1px solid var(--line);
   padding-top:var(--space-2xl);
   padding-bottom:var(--space-2xl);
}


.blueprint-diagram-card {
   position:relative;
   background-color:var(--ground);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   padding:clamp(1rem, 0.8rem + 1vw, 2rem);
   box-shadow:var(--shadow-card);
}


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


.blueprint-title {
   margin:0;
   font-family:var(--beco-9f2);
   font-size:var(--fs-2xl);
   color:var(--ink);
}


.blueprint-coords {
   font-family:var(--beco-4e2);
   font-size:var(--fs-xs);
   color:var(--ink-soft);
}


.blueprint-viewport {
   position:relative;
   width:100%;
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   overflow:hidden;
   background-color:var(--surface-2);
}


.blueprint-viewport-img {
   width:100%;
   aspect-ratio:16 / 10;
   object-fit:cover;
   display:block;
}


.blueprint-pin {
   position:absolute;
   z-index:15;
   display:inline-flex;
   align-items:center;
   gap:6px;
   background-color:rgba(222, 210, 188, 0.95);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   padding:4px 8px;
   font-family:var(--beco-4e2);
   font-size:var(--fs-xs);
   color:var(--ink);
   box-shadow:var(--shadow-subtle);
   white-space:nowrap;
   pointer-events:none;
   max-width:none;
}


.blueprint-pin::before {
   content:'';
   width:7px;
   height:7px;
   border-radius:50%;
   background-color:var(--accent);
   box-shadow:0 0 0 2px rgba(166, 94, 46, 0.3);
   flex-shrink:0;
}


.blueprint-pin-a {
   top:32%;
   left:8%;
}


.blueprint-pin-b {
   top:68%;
   left:36%;
}


.blueprint-pin-c {
   top:18%;
   left:38%;
}


.blueprint-spec-grid {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-sm);
   margin-top:var(--space-md);
}


@media (min-width: 768px) {
   .blueprint-spec-grid { grid-template-columns:repeat(3, 1fr); }
}


.blueprint-spec-cell {
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   padding:var(--space-sm);
   display:flex;
   flex-direction:column;
   gap:4px;
}


.blueprint-spec-head {
   font-family:var(--beco-4e2);
   font-size:var(--fs-xs);
   color:var(--accent);
   text-transform:uppercase;
}


.blueprint-spec-body {
   font-size:var(--fs-sm);
   color:var(--ink);
   line-height:var(--lh-snug);
   margin:0;
}


.tool-section-wrapper {
   background-color:var(--surface);
   border-top:1px solid var(--line);
   border-bottom:1px solid var(--line);
   padding-top:var(--space-2xl);
   padding-bottom:var(--space-2xl);
}


.tool-layout-box {
   background-color:var(--ground);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   padding:clamp(1.25rem, 1rem + 1.2vw, 2.5rem);
   box-shadow:var(--shadow-card);
}


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


.tool-title {
   font-family:var(--beco-9f2);
   font-size:var(--fs-2xl);
   margin:0 0 var(--space-2xs);
   color:var(--ink);
}


.tool-subtitle {
   font-size:var(--fs-sm);
   color:var(--ink-soft);
   max-width:60ch;
   margin:0;
}


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


@media (min-width: 860px) {
   .tool-inputs-grid {
      grid-template-columns:minmax(0, 1.4fr) minmax(0, 1fr);
      gap:var(--space-xl);
   }
}


.tool-fields-pane {
   display:flex;
   flex-direction:column;
   gap:var(--space-md);
}


.tool-slider-control {
   display:flex;
   flex-direction:column;
   gap:var(--space-2xs);
}


.tool-slider-meta {
   display:flex;
   justify-content:space-between;
   align-items:baseline;
}


.tool-slider-label {
   font-size:var(--fs-sm);
   font-weight:600;
   color:var(--ink);
}


.tool-slider-count {
   font-family:var(--beco-4e2);
   font-size:var(--fs-md);
   font-weight:500;
   color:var(--accent);
}


.tool-range-input {
   width:100%;
   accent-color:var(--accent);
   cursor:pointer;
   height:6px;
   background-color:var(--surface-2);
   border-radius:var(--radius-xs);
}


.tool-range-input:focus-visible {
   outline:2px solid var(--accent);
   outline-offset:3px;
}


.tool-radio-pill-group {
   display:grid;
   grid-template-columns:repeat(auto-fit, minmax(130px, 1fr));
   gap:var(--space-2xs);
}


.tool-radio-pill { position:relative; }


.tool-radio-pill input[type="radio"] {
   position:absolute;
   opacity:0;
   width:0;
   height:0;
}


.tool-radio-pill label {
   display:flex;
   flex-direction:column;
   padding:0.6rem 0.8rem;
   min-height:44px;
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   cursor:pointer;
   transition:border-color var(--dur-fast), background-color var(--dur-fast);
}


.tool-radio-pill label:hover { background-color:var(--surface-2); }


.tool-radio-pill input[type="radio"]:checked + label {
   border-color:var(--accent);
   background-color:var(--surface-2);
}


.tool-radio-pill input[type="radio"]:focus-visible + label {
   outline:2px solid var(--accent);
   outline-offset:2px;
}


.tool-pill-title {
   font-size:var(--fs-sm);
   font-weight:600;
   color:var(--ink);
}


.tool-pill-rate {
   font-family:var(--beco-4e2);
   font-size:var(--fs-xs);
   color:var(--ink-soft);
}


.tool-result-slip {
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   padding:var(--space-md);
   display:flex;
   flex-direction:column;
   justify-content:space-between;
   gap:var(--space-md);
}


.tool-slip-header {
   border-bottom:1px dashed var(--line);
   padding-bottom:var(--space-sm);
   display:flex;
   justify-content:space-between;
   align-items:baseline;
}


.tool-slip-title {
   font-family:var(--beco-9f2);
   font-size:var(--fs-lg);
   margin:0;
   color:var(--ink);
}


.tool-slip-tag {
   font-family:var(--beco-4e2);
   font-size:var(--fs-xs);
   color:var(--ink-soft);
}


.tool-output-display {
   display:flex;
   flex-direction:column;
   gap:4px;
   margin:var(--space-sm) 0;
}


.tool-output-num {
   font-family:var(--beco-4e2);
   font-size:var(--fs-3xl);
   font-weight:500;
   color:var(--accent);
   line-height:1;
}


.tool-note-text {
   font-size:var(--fs-sm);
   color:var(--ink-soft);
   margin:0;
}


.tool-status-announcer {
   font-family:var(--beco-4e2);
   font-size:var(--fs-xs);
   color:var(--ink-soft);
   padding:var(--space-2xs) var(--space-xs);
   background-color:var(--ground);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
}


.tool-disclaimer-clause {
   font-size:var(--fs-xs);
   color:var(--ink-soft);
   margin:0;
   line-height:var(--lh-snug);
   border-top:1px solid var(--line);
   padding-top:var(--space-xs);
}


.catalogue-grid-section {
   padding-top:var(--space-xl);
   padding-bottom:var(--space-2xl);
}


.catalogue-nav-pills {
   display:flex;
   flex-wrap:wrap;
   gap:var(--space-xs);
   margin-bottom:var(--space-xl);
   padding-bottom:var(--space-sm);
   border-bottom:1px solid var(--line);
}


.catalogue-pill-link {
   display:inline-flex;
   align-items:center;
   gap:6px;
   padding:0.45rem 0.85rem;
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-xs);
   color:var(--ink);
   font-size:var(--fs-sm);
   font-weight:600;
   text-decoration:none;
   min-height:44px;
   transition:background-color var(--dur-fast), border-color var(--dur-fast);
}


.catalogue-pill-link:hover {
   background-color:var(--surface-2);
   border-color:var(--accent);
   color:var(--accent);
}


.catalogue-pill-link:active { background-color:var(--line); }


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


.catalogue-category-stage {
   margin-bottom:var(--space-2xl);
   scroll-margin-top:calc(var(--header-height) + 1rem);
}


.category-stage-heading {
   display:flex;
   flex-wrap:wrap;
   justify-content:space-between;
   align-items:baseline;
   gap:var(--space-sm);
   margin-bottom:var(--space-md);
   padding-bottom:var(--space-2xs);
   border-bottom:1px solid var(--line);
}


.category-stage-title {
   font-family:var(--beco-9f2);
   font-size:var(--fs-2xl);
   margin:0;
   color:var(--ink);
}


.category-stage-rate {
   font-family:var(--beco-4e2);
   font-size:var(--fs-sm);
   color:var(--accent);
   font-weight:500;
}


.category-dishes-grid {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-lg);
}


@media (min-width: 680px) {
   .category-dishes-grid { grid-template-columns:repeat(2, 1fr); }
}


.menu-item-row {
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   padding:var(--space-md);
   display:flex;
   flex-direction:column;
   gap:var(--space-2xs);
}


.menu-item-top {
   display:flex;
   justify-content:space-between;
   align-items:baseline;
   gap:var(--space-xs);
}


.menu-item-name {
   font-family:var(--beco-9f2);
   font-size:var(--fs-lg);
   color:var(--ink);
   margin:0;
}


.menu-item-price {
   font-family:var(--beco-4e2);
   font-size:var(--fs-sm);
   color:var(--accent);
   font-weight:500;
   white-space:nowrap;
}


.menu-item-desc {
   font-size:var(--fs-sm);
   color:var(--ink-soft);
   margin:0;
}


.menu-item-tags {
   display:flex;
   flex-wrap:wrap;
   gap:4px;
   margin-top:var(--space-xs);
}


.heritage-timeline-section {
   padding-top:var(--space-2xl);
   padding-bottom:var(--space-2xl);
}


.heritage-gear-grid {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-md);
   margin-top:var(--space-lg);
}


@media (min-width: 680px) {
   .heritage-gear-grid { grid-template-columns:repeat(2, 1fr); }
}


@media (min-width: 1024px) {
   .heritage-gear-grid { grid-template-columns:repeat(3, 1fr); }
}


.heritage-gear-card {
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   padding:var(--space-md);
   display:flex;
   flex-direction:column;
   gap:var(--space-2xs);
}


.heritage-gear-title {
   font-family:var(--beco-9f2);
   font-size:var(--fs-md);
   margin:0;
   color:var(--ink);
   display:flex;
   align-items:center;
   gap:var(--space-2xs);
}


.heritage-gear-title .icon { color:var(--accent); }


.heritage-gear-body {
   font-size:var(--fs-sm);
   color:var(--ink-soft);
   margin:0;
}


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


@media (min-width: 860px) {
   .contact-visit-grid {
      grid-template-columns:minmax(0, 1.1fr) minmax(0, 1.4fr);
      align-items:start;
   }
}


.contact-details-panel {
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   padding:clamp(1.25rem, 1rem + 1vw, 2rem);
   display:flex;
   flex-direction:column;
   gap:var(--space-md);
}


.contact-panel-title {
   font-family:var(--beco-9f2);
   font-size:var(--fs-2xl);
   margin:0;
   color:var(--ink);
}


.contact-address-block {
   display:flex;
   flex-direction:column;
   gap:var(--space-2xs);
   font-size:var(--fs-base);
}


.contact-address-line {
   font-style:normal;
   line-height:var(--lh-base);
}


.map-service-text-link {
   display:inline-flex;
   align-items:center;
   gap:4px;
   font-family:var(--beco-4e2);
   font-size:var(--fs-xs);
   color:var(--accent);
   text-decoration:underline;
   text-underline-offset:3px;
   min-height:44px;
}


.map-service-text-link:hover { color:#8e4e24; }


.travel-hints-list {
   list-style:none;
   margin:0;
   padding:0;
   display:flex;
   flex-direction:column;
   gap:var(--space-2xs);
   font-size:var(--fs-sm);
   color:var(--ink-soft);
}


.travel-hints-list li {
   display:flex;
   gap:var(--space-2xs);
   align-items:flex-start;
}


.travel-hints-list .icon {
   color:var(--accent);
   margin-top:3px;
}


.warranty-section-card {
   background-color:var(--surface-2);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   padding:var(--space-md);
   margin-top:var(--space-lg);
}


.warranty-title {
   font-family:var(--beco-9f2);
   font-size:var(--fs-lg);
   margin:0 0 var(--space-2xs);
   color:var(--ink);
}


.warranty-body {
   font-size:var(--fs-sm);
   color:var(--ink);
   line-height:var(--lh-base);
   margin:0;
}


.dated-rail-layout {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-xl);
   padding-top:var(--space-xl);
   padding-bottom:var(--space-2xl);
}


@media (min-width: 960px) {
   .dated-rail-layout {
      grid-template-columns:240px minmax(0, 1fr);
      align-items:start;
      gap:var(--space-2xl);
   }
}


.dated-rail-aside {
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   padding:var(--space-md);
   display:flex;
   flex-direction:column;
   gap:var(--space-sm);
}


@media (min-width: 960px) {
   .dated-rail-aside {
      position:sticky;
      top:calc(var(--header-height) + 1.5rem);
   }
}


@media (max-width: 959px) {
   .dated-rail-aside {
      display:grid;
      grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
      gap:var(--space-sm);
   }
}


.dated-rail-block {
   display:flex;
   flex-direction:column;
   gap:2px;
}


.dated-rail-label {
   font-family:var(--beco-4e2);
   font-size:var(--fs-xs);
   text-transform:uppercase;
   letter-spacing:0.05em;
   color:var(--ink-soft);
}


.dated-rail-value {
   font-family:var(--beco-4e2);
   font-size:var(--fs-sm);
   font-weight:500;
   color:var(--ink);
}


.dated-rail-content {
   display:flex;
   flex-direction:column;
   gap:var(--space-xl);
}


.dated-rail-section {
   position:relative;
   border-left:2px solid var(--line);
   padding-left:var(--space-md);
   margin-left:4px;
}


.dated-rail-section::before {
   content:'';
   position:absolute;
   left:-6px;
   top:0.35rem;
   width:10px;
   height:10px;
   border-radius:50%;
   background-color:var(--ground);
   border:2px solid var(--accent);
}


.dated-rail-heading {
   font-family:var(--beco-9f2);
   font-size:var(--fs-xl);
   margin:0 0 var(--space-xs);
   color:var(--ink);
}


.sticky-index-layout {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-lg);
   padding-top:var(--space-xl);
   padding-bottom:var(--space-2xl);
}


@media (min-width: 960px) {
   .sticky-index-layout {
      grid-template-columns:260px minmax(0, 1fr);
      align-items:start;
      gap:var(--space-2xl);
   }
}


.sticky-index-nav {
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   padding:var(--space-md);
}


@media (min-width: 960px) {
   .sticky-index-nav {
      position:sticky;
      top:calc(var(--header-height) + 1.5rem);
   }
}


.sticky-index-title {
   font-family:var(--beco-9f2);
   font-size:var(--fs-md);
   margin:0 0 var(--space-xs);
   color:var(--ink);
}


.sticky-index-list {
   list-style:none;
   margin:0;
   padding:0;
   display:flex;
   flex-direction:column;
   gap:var(--space-2xs);
}


.sticky-index-link {
   display:flex;
   align-items:baseline;
   gap:var(--space-xs);
   font-size:var(--fs-sm);
   color:var(--ink-soft);
   text-decoration:none;
   padding:var(--space-3xs) 0;
   border-bottom:1px solid transparent;
   min-height:44px;
}


.sticky-index-link:hover { color:var(--accent); }


.sticky-index-link.is-active {
   color:var(--accent);
   font-weight:600;
   border-bottom-color:var(--accent);
}


.sticky-index-mobile-select {
   display:block;
   width:100%;
   margin-bottom:var(--space-md);
}


@media (min-width: 960px) {
   .sticky-index-mobile-select { display:none; }
}


.sticky-index-content {
   display:flex;
   flex-direction:column;
   gap:var(--space-xl);
}


.sticky-index-section {
   scroll-margin-top:calc(var(--header-height) + 1rem);
   border-bottom:1px solid var(--line);
   padding-bottom:var(--space-lg);
}


.sticky-index-section:last-child { border-bottom:none; }


.margin-notes-layout {
   padding-top:var(--space-xl);
   padding-bottom:var(--space-2xl);
}


.margin-notes-body {
   display:flex;
   flex-direction:column;
   gap:var(--space-xl);
}


.margin-note-row {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-sm);
   align-items:start;
}


@media (min-width: 860px) {
   .margin-note-row {
      grid-template-columns:minmax(0, 2fr) minmax(0, 1fr);
      gap:var(--space-xl);
   }
}


.margin-note-main {
   font-size:var(--fs-base);
   line-height:var(--lh-base);
   color:var(--ink);
}


.margin-note-aside {
   background-color:var(--surface);
   border-left:3px solid var(--accent);
   padding:var(--space-xs) var(--space-sm);
   font-family:var(--beco-4e2);
   font-size:var(--fs-xs);
   color:var(--ink-soft);
   line-height:var(--lh-snug);
}


@media (max-width: 859px) {
   .margin-note-aside { margin-top:var(--space-2xs); }
}


.legal-data-table {
   width:100%;
   border-collapse:collapse;
   font-size:var(--fs-xs);
   background-color:var(--surface);
}


.legal-data-table th,
.legal-data-table td {
   padding:var(--space-xs) var(--space-sm);
   border-bottom:1px solid var(--line);
   text-align:left;
}


.legal-data-table th {
   background-color:var(--surface-2);
   font-family:var(--beco-4e2);
   font-weight:500;
   color:var(--ink);
}


.legal-data-table td code {
   font-family:var(--beco-4e2);
   font-size:0.9em;
   background-color:var(--ground);
   padding:1px 4px;
   border-radius:var(--radius-xs);
   border:1px solid var(--line);
}


.legal-data-table tr:hover td { background-color:rgba(193, 178, 150, 0.3); }


.faq-accordion-group {
   display:flex;
   flex-direction:column;
   gap:var(--space-2xs);
   margin-top:var(--space-md);
}


.faq-item {
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   overflow:hidden;
   transition:border-color var(--dur-fast);
}


.faq-item:hover { border-color:var(--accent); }


.faq-trigger {
   width:100%;
   padding:var(--space-sm) var(--space-md);
   min-height:48px;
   display:flex;
   justify-content:space-between;
   align-items:center;
   gap:var(--space-sm);
   text-align:left;
   font-family:var(--beco-9f2);
   font-size:var(--fs-lg);
   color:var(--ink);
   background:none;
   border:none;
   cursor:pointer;
   transition:color var(--dur-fast);
}


.faq-trigger:hover { color:var(--accent); }


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


.faq-trigger .icon {
   width:1.1rem;
   height:1.1rem;
   color:var(--accent);
   transition:transform var(--dur-mid) var(--ease-out);
}


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


.faq-panel {
   padding:0 var(--space-md) var(--space-sm);
   font-size:var(--fs-sm);
   line-height:var(--lh-base);
   color:var(--ink-soft);
}


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


.error-page-canvas {
   min-height:65vh;
   display:flex;
   flex-direction:column;
   align-items:flex-start;
   justify-content:center;
   padding-top:var(--space-3xl);
   padding-bottom:var(--space-3xl);
}


.error-code-badge {
   font-family:var(--beco-4e2);
   font-size:var(--fs-3xl);
   font-weight:500;
   color:var(--accent);
   margin-bottom:var(--space-xs);
}


.error-heading {
   font-family:var(--beco-9f2);
   font-size:var(--fs-display);
   margin:0 0 var(--space-sm);
   color:var(--ink);
}


.error-actions {
   display:flex;
   flex-wrap:wrap;
   gap:var(--space-sm);
   margin-top:var(--space-md);
}


.inquiry-form-card {
   background-color:var(--surface);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   padding:clamp(1.25rem, 1rem + 1vw, 2.5rem);
   box-shadow:var(--shadow-card);
}


.inquiry-form-header {
   margin-bottom:var(--space-md);
   border-bottom:1px solid var(--line);
   padding-bottom:var(--space-xs);
}


.inquiry-form-title {
   font-family:var(--beco-9f2);
   font-size:var(--fs-2xl);
   margin:0 0 var(--space-3xs);
   color:var(--ink);
}


.inquiry-form-sub {
   font-size:var(--fs-sm);
   color:var(--ink-soft);
   margin:0;
}


.inquiry-form-row {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-sm);
}


@media (min-width: 680px) {
   .inquiry-form-row { grid-template-columns:repeat(2, 1fr); }
}


.inquiry-submit-row {
   margin-top:var(--space-md);
   display:flex;
   flex-direction:column;
   gap:var(--space-sm);
}


@media (min-width: 680px) {
   .inquiry-submit-row {
      flex-direction:row;
      align-items:center;
      justify-content:space-between;
   }
}


.inquiry-status-feedback {
   margin-top:var(--space-sm);
   padding:var(--space-xs) var(--space-sm);
   border-radius:var(--radius-xs);
   font-size:var(--fs-sm);
   display:none;
}


.inquiry-status-feedback.is-success {
   display:block;
   background-color:rgba(70, 110, 60, 0.12);
   border:1px solid #466e3c;
   color:#284420;
}


.inquiry-status-feedback.is-error {
   display:block;
   background-color:rgba(178, 58, 34, 0.1);
   border:1px solid #b23a22;
   color:#8e2510;
}


.hours-schedule-table {
   width:100%;
   border-collapse:collapse;
   font-size:var(--fs-sm);
}


.hours-schedule-table td {
   padding:var(--space-2xs) 0;
   border-bottom:1px solid rgba(158, 144, 116, 0.4);
}


.hours-schedule-table tr:last-child td { border-bottom:none; }


.hours-day-cell {
   font-weight:600;
   color:var(--ink);
}


.hours-time-cell {
   font-family:var(--beco-4e2);
   color:var(--accent);
   text-align:right;
}


.pie-rush-band {
   background-color:var(--surface-2);
   border:1px solid var(--line);
   border-radius:var(--radius-sm);
   padding:var(--space-md);
   display:flex;
   flex-direction:column;
   gap:var(--space-xs);
}


.pie-rush-title {
   font-family:var(--beco-9f2);
   font-size:var(--fs-lg);
   margin:0;
   color:var(--ink);
}


.pie-rush-desc {
   font-size:var(--fs-sm);
   color:var(--ink);
   margin:0;
   line-height:var(--lh-snug);
}


.signature-stamp-block {
   display:flex;
   align-items:center;
   gap:var(--space-sm);
   padding:var(--space-sm);
   background-color:var(--surface);
   border:1px dashed var(--line);
   border-radius:var(--radius-xs);
}


.signature-stamp-seal {
   width:48px;
   height:48px;
   border-radius:50%;
   border:2px solid var(--accent);
   display:flex;
   flex-direction:column;
   align-items:center;
   justify-content:center;
   flex-shrink:0;
   font-family:var(--beco-4e2);
   font-size:10px;
   font-weight:700;
   color:var(--accent);
   text-transform:uppercase;
   line-height:1;
}


.signature-stamp-info {
   display:flex;
   flex-direction:column;
   gap:2px;
}


.signature-stamp-name {
   font-size:var(--fs-sm);
   font-weight:600;
   color:var(--ink);
}


.signature-stamp-sub {
   font-size:var(--fs-xs);
   color:var(--ink-soft);
}
