.skip-link {
   position:absolute;
   top:-100px;
   left:50%;
   transform:translateX(-50%);
   background-color:var(--accent);
   color:var(--ground-deep);
   font-family:var(--jigu-6c3);
   font-size:var(--text-xs);
   font-weight:700;
   letter-spacing:0.05em;
   text-transform:uppercase;
   padding:0.75rem 1.5rem;
   min-height:44px;
   display:inline-flex;
   align-items:center;
   justify-content:center;
   border:2px solid var(--ink);
   border-radius:var(--radius-sm);
   z-index:1000;
   text-decoration:none;
   box-shadow:var(--shadow-elevated);
   transition:top var(--dur-fast) var(--ease-out-cubic), background-color var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-fast) ease;
}


.skip-link:focus,
.skip-link:focus-visible {
   top:1rem;
   outline:3px solid var(--accent-hover);
   outline-offset:3px;
}


.skip-link:hover {
   background-color:var(--accent-hover);
   color:var(--ground-deep);
}


.skip-link:active {
   background-color:var(--accent-active);
   transform:translateX(-50%) translateY(2px);
}


.site-header {
   position:sticky;
   top:0;
   left:0;
   right:0;
   z-index:500;
   background-color:var(--surface);
   background-color:rgba(88, 37, 40, 0.94);
   backdrop-filter:blur(14px);
   -webkit-backdrop-filter:blur(14px);
   border-bottom:1px solid var(--border);
   transition:padding var(--dur-base) var(--ease-out-cubic), background-color var(--dur-base) ease, box-shadow var(--dur-base) ease;
}


.site-header.is-condensed {
   background-color:rgba(56, 20, 23, 0.98);

   box-shadow:var(--shadow-subtle);
}


.header-container {
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:var(--space-md);
   min-height:var(--header-height);
   padding-block:0.75rem;
   transition:min-height var(--dur-base) var(--ease-out-cubic);
}


.site-header.is-condensed .header-container {
   min-height:var(--header-condensed-height);
   padding-block:0.4rem;
}


.brand {
   display:inline-flex;
   align-items:center;
   text-decoration:none;
   flex-shrink:0;
   padding:0.25rem 0.5rem;
   margin-left:max(-0.5rem, calc(50% - 50vw));
   border-radius:var(--radius-xs);
   transition:opacity var(--dur-fast) ease, transform var(--dur-fast) ease;
}


.brand img {
   height:3.2rem;
   width:auto;
   max-width:none;
   object-fit:contain;
   transition:height var(--dur-base) var(--ease-out-cubic);
}


.site-header.is-condensed .brand img {
   height:2.6rem;
}


.brand:hover {
   opacity:0.92;
   transform:translateY(-1px);
}


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


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


.site-nav {
   display:none;
}


@media (min-width: 1024px) {
   .site-nav {
      display:flex;
      align-items:center;
      gap:var(--space-xs);
   }
}


.nav-list {
   display:flex;
   align-items:center;
   list-style:none;
   gap:0.35rem;
   margin-block-end:0;
   padding-inline-start:0;
}


.nav-link {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   min-height:44px;
   padding:0.5rem 0.85rem;
   font-family:var(--jigu-b0c);
   font-size:var(--text-xs);
   font-weight:500;
   letter-spacing:0.05em;
   text-transform:uppercase;
   color:var(--ink-muted);
   text-decoration:none;
   border-radius:var(--radius-xs);
   border:1px solid transparent;
   transition:color var(--dur-fast) ease, background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, transform var(--dur-fast) ease;
}


.nav-link:hover {
   color:var(--ink);
   background-color:var(--surface-subtle);
   border-color:var(--border-hairline);
   transform:translateY(-1px);
}


.nav-link:active {
   color:var(--accent);
   background-color:var(--surface-sunken);
   transform:translateY(1px);
}


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


.nav-link.is-active,
.nav-link[aria-current='page'] {
   color:var(--accent);
   border-bottom:2px solid var(--accent);
   border-radius:0;
}


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


.header-phone-link {
   display:none;
   align-items:center;
   gap:0.45rem;
   min-height:44px;
   padding:0.5rem 0.75rem;
   font-family:var(--jigu-6c3);
   font-size:var(--text-xs);
   color:var(--ink);
   text-decoration:none;
   border:1px solid var(--border);
   border-radius:var(--radius-sm);
   background-color:var(--surface-sunken);
   transition:color var(--dur-fast) ease, border-color var(--dur-fast) ease, background-color var(--dur-fast) ease, transform var(--dur-fast) ease;
}


@media (min-width: 1200px) {
   .header-phone-link {
      display:inline-flex;
   }
}


.header-phone-link:hover {
   color:var(--accent-hover);
   border-color:var(--accent);
   background-color:var(--surface);
   transform:translateY(-1px);
}


.header-phone-link:active {
   color:var(--accent);
   transform:translateY(1px);
}


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


.nav-toggle {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   min-height:44px;
   min-width:44px;
   padding:0.5rem;
   background:var(--surface-sunken);
   border:1px solid var(--border);
   border-radius:var(--radius-sm);
   color:var(--ink);
   cursor:pointer;
   transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-fast) ease;
}


@media (min-width: 1024px) {
   .nav-toggle {
      display:none;
   }
}


.nav-toggle:hover {
   background-color:var(--surface-elevated);
   border-color:var(--accent);
   color:var(--accent-hover);
}


.nav-toggle:active {
   background-color:var(--surface-sunken);
   transform:scale(0.96);
}


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


.nav-toggle .icon-close {
   display:none;
}


.nav-toggle[aria-expanded='true'] .icon-menu {
   display:none;
}


.nav-toggle[aria-expanded='true'] .icon-close {
   display:inline-block;
}


.mobile-nav-drawer {
   position:fixed;
   top:var(--header-height);
   left:0;
   right:0;
   bottom:0;
   background-color:var(--ground-deep);
   border-top:1px solid var(--border);
   padding:var(--space-lg) var(--space-md);
   display:flex;
   flex-direction:column;
   justify-content:space-between;
   overflow-y:auto;
   z-index:490;
   opacity:0;
   visibility:hidden;
   pointer-events:none;
   transform:translateY(-8px);
   transition:opacity var(--dur-base) ease, transform var(--dur-base) var(--ease-out-cubic), visibility var(--dur-base) ease;
}


.mobile-nav-drawer.is-open {

   opacity:1;
   visibility:visible;
   pointer-events:auto;
   transform:translateY(0);
}


.mobile-nav-list {
   list-style:none;
   padding:0;

   margin:0;
   display:flex;
   flex-direction:column;
   gap:0.5rem;
}


.mobile-nav-link {
   display:flex;
   align-items:center;
   justify-content:space-between;
   min-height:48px;
   padding:0.75rem 1rem;
   font-family:var(--jigu-b0c);
   font-size:var(--text-md);
   font-weight:600;
   letter-spacing:0.04em;
   color:var(--ink);
   text-decoration:none;
   border-bottom:1px solid var(--border-hairline);
   border-radius:var(--radius-xs);
   transition:color var(--dur-fast) ease, background-color var(--dur-fast) ease, padding-inline-start var(--dur-fast) ease;
}


.mobile-nav-link:hover {
   color:var(--accent);
   background-color:var(--surface);
   padding-inline-start:1.25rem;
}


.mobile-nav-link:active {
   color:var(--accent-hover);
   background-color:var(--surface-sunken);
}


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


.mobile-nav-meta {
   margin-top:var(--space-xl);
   padding-top:var(--space-md);
   border-top:1px solid var(--border);
   display:flex;
   flex-direction:column;
   gap:var(--space-xs);
   font-family:var(--jigu-6c3);
   font-size:var(--text-xs);
   color:var(--ink-muted);
}


.btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:0.5rem;
   min-height:44px;
   padding:0.65rem 1.45rem;
   font-family:var(--jigu-b0c);
   font-size:var(--text-xs);
   font-weight:600;
   letter-spacing:0.06em;
   text-transform:uppercase;
   text-decoration:none;
   border-radius:var(--radius-sm);
   border:1px solid transparent;
   cursor:pointer;
   white-space:normal;
   text-align:center;
   line-height:1.25;
   transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease, border-color var(--dur-fast) ease, transform var(--dur-fast) ease, box-shadow var(--dur-fast) ease;
}


@media (max-width: 480px) {
   .btn {
      width:100%;
   }
}


.btn-primary {
   background-color:var(--accent);
   color:var(--ground-deep);
   border-color:var(--accent);
   box-shadow:0 2px 10px rgba(201, 151, 88, 0.25);
}


.btn-primary:hover {
   background-color:var(--accent-hover);
   border-color:var(--accent-hover);
   color:var(--ground-deep);
   transform:translateY(-2px);
   box-shadow:0 4px 16px rgba(201, 151, 88, 0.4);
}


.btn-primary:active {
   background-color:var(--accent-active);
   border-color:var(--accent-active);
   transform:translateY(1px);
   box-shadow:0 1px 4px rgba(201, 151, 88, 0.2);
}


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


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


.btn-secondary:hover {
   background-color:var(--surface-elevated);
   border-color:var(--accent);
   color:var(--accent-hover);
   transform:translateY(-2px);
}


.btn-secondary:active {
   background-color:var(--surface-sunken);
   transform:translateY(1px);
}


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


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


.btn-outline:hover {
   background-color:var(--accent-muted);
   color:var(--accent-hover);
   border-color:var(--accent-hover);
   transform:translateY(-2px);
}


.btn-outline:active {
   background-color:var(--surface-sunken);
   transform:translateY(1px);
}


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


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


.btn-ghost:hover {
   background-color:var(--surface-subtle);
   color:var(--accent-hover);
}


.btn-ghost:active {
   background-color:var(--surface-sunken);
   transform:translateY(1px);
}


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


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


.btn-lg {
   min-height:52px;
   padding:0.85rem 2rem;
   font-size:var(--text-sm);
   letter-spacing:0.08em;
}


.stamp-seal {
   display:inline-flex;
   flex-direction:column;
   align-items:center;
   justify-content:center;
   width:96px;
   height:96px;
   padding:0.5rem;
   border:2px solid var(--accent);
   border-radius:var(--radius-full);
   background-color:var(--surface-sunken);
   color:var(--accent);
   position:relative;
   text-align:center;
   box-shadow:inset 0 0 10px rgba(0, 0, 0, 0.4), var(--shadow-sm);
   user-select:none;
   flex-shrink:0;
   overflow:visible;
}


.stamp-seal::before {
   content:"";
   position:absolute;
   inset:4px;
   border:1px dashed var(--accent);
   border-radius:var(--radius-full);
   opacity:0.65;
   pointer-events:none;
}


.stamp-seal-lg {
   width:120px;
   height:120px;
   padding:0.75rem;
}


.stamp-seal-sm {
   width:88px;
   height:88px;
   padding:0.45rem;
}


.stamp-year {
   font-family:var(--jigu-6c3);
   font-size:0.6875rem;
   line-height:1.1;
   letter-spacing:0.08em;
   text-transform:uppercase;
   white-space:nowrap;
}


.stamp-monogram {
   font-family:var(--jigu-b0c-decorative);
   font-size:var(--text-lg);
   font-weight:700;
   line-height:1;
   color:var(--accent);
   margin-block:0.1rem;
}


.stamp-loc {
   font-family:var(--jigu-6c3);
   font-size:0.625rem;
   line-height:1.1;
   letter-spacing:0.08em;
   text-transform:uppercase;
   color:var(--ink-muted);
   white-space:nowrap;
}


.stamp-badge {
   display:inline-flex;
   align-items:center;
   gap:0.5rem;
   padding:0.4rem 0.85rem;
   border:1px solid var(--accent);
   border-radius:var(--radius-full);
   background-color:var(--surface-subtle);
   font-family:var(--jigu-6c3);
   font-size:var(--text-2xs);
   letter-spacing:0.08em;
   text-transform:uppercase;
   color:var(--accent);
}


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


.drawn-journey::before {
   content:"";
   position:absolute;
   top:0;
   bottom:0;
   left:20px;
   width:2px;
   background-color:var(--accent);
   opacity:0.85;
}


@media (min-width: 768px) {
   .drawn-journey::before {
      left:48px;
   }
}


.stage-node {
   position:relative;
   padding-left:56px;
   margin-block-end:var(--space-2xl);
   min-width:0;
}


@media (max-width: 480px) {
   .drawn-journey::before {
      display:none;
   }


   .stage-node {
      padding-left:0;
   }


   .stage-marker {
      display:none;
   }
}


@media (min-width: 768px) {
   .stage-node {
      padding-left:112px;
      margin-block-end:var(--space-3xl);
   }
}


.stage-node:last-child {
   margin-block-end:0;
}


.stage-marker {
   position:absolute;
   top:0.25rem;
   left:11px;
   width:20px;
   height:20px;
   border-radius:var(--radius-full);
   background-color:var(--ground);
   border:2px solid var(--accent);
   display:flex;
   align-items:center;
   justify-content:center;
   transform:translate(-50%, 0);
   z-index:2;
   box-shadow:0 0 0 4px var(--ground);
}


@media (min-width: 768px) {
   .stage-marker {
      left:48px;
      width:24px;
      height:24px;
   }
}


.stage-marker::after {
   content:"";
   width:8px;
   height:8px;
   border-radius:var(--radius-full);
   background-color:var(--accent);
}


.stage-header {
   margin-block-end:0.75rem;
}


.stage-title {
   font-family:var(--jigu-b0c);
   font-size:var(--text-xl);
   font-weight:600;
   color:var(--ink);
   margin-block-end:0.25rem;
}


.stage-meta {
   font-family:var(--jigu-6c3);
   font-size:var(--text-xs);
   letter-spacing:0.06em;
   text-transform:uppercase;
   color:var(--accent);
   display:flex;
   flex-wrap:wrap;
   gap:0.75rem;
}


.stage-content {
   background-color:var(--surface);
   border:1px solid var(--border);
   border-radius:var(--radius-sm);
   padding:clamp(1.25rem, 3vw, 2rem);
   box-shadow:var(--shadow-subtle);
   min-width:0;
}


.stage-shape-statement {
   background-color:transparent;
   border-inline-start:3px solid var(--accent);
   border-top:none;
   border-right:none;
   border-bottom:none;
   border-radius:0;
   padding-block:0.5rem;
   padding-inline:1.5rem;
   box-shadow:none;
}


.stage-shape-specs {
   background-color:var(--surface-sunken);
   border:1px solid var(--border);
}


.stage-shape-figure {
   padding:0;
   overflow:hidden;
   background-color:var(--surface);
   border:1px solid var(--border);
}


.stage-shape-figure img {
   width:100%;
   aspect-ratio:16 / 9;
   object-fit:cover;
}


.stage-figure-caption {
   padding:0.85rem 1.25rem;
   font-family:var(--jigu-46b);
   font-size:var(--text-sm);
   font-style:italic;
   color:var(--ink-muted);
   border-top:1px solid var(--border-hairline);
   background-color:var(--surface-sunken);
}


.tab-container {
   margin-block:var(--space-xl);
}


.tab-list {
   display:flex;
   align-items:center;
   gap:0.5rem;
   border-bottom:1px solid var(--border);
   padding-bottom:0.5rem;
   overflow-x:auto;
   -webkit-overflow-scrolling:touch;
}


.tab-btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   min-height:44px;
   padding:0.65rem 1.4rem;
   font-family:var(--jigu-b0c);
   font-size:var(--text-xs);
   font-weight:600;
   letter-spacing:0.06em;
   text-transform:uppercase;
   color:var(--ink-muted);
   background:transparent;
   border:1px solid transparent;
   border-radius:var(--radius-xs);
   cursor:pointer;
   white-space:nowrap;
   transition:color var(--dur-fast) ease, background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, transform var(--dur-fast) ease;
}


.tab-btn:hover {
   color:var(--ink);
   background-color:var(--surface-subtle);
   border-color:var(--border-hairline);
   transform:translateY(-1px);
}


.tab-btn:active {
   color:var(--accent);
   background-color:var(--surface-sunken);
   transform:translateY(1px);
}


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


.tab-btn[aria-selected='true'] {
   color:var(--accent);
   background-color:var(--surface);
   border-color:var(--border);
   border-bottom:2px solid var(--accent);
}


.tab-panel {
   padding-block:var(--space-lg);
}


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


.rail-section {
   position:relative;
   padding-block:var(--space-2xl);
   overflow:hidden;
}


.rail-header {
   display:flex;
   align-items:flex-end;
   justify-content:space-between;
   gap:var(--space-md);
   margin-block-end:var(--space-lg);
   flex-wrap:wrap;
}


.rail-controls {
   display:flex;
   align-items:center;
   gap:0.5rem;
}


.rail-arrow {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   min-width:44px;
   min-height:44px;
   padding:0.5rem;
   background-color:var(--surface);
   border:1px solid var(--border);
   border-radius:var(--radius-sm);
   color:var(--ink);
   cursor:pointer;
   transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-fast) ease;
}


.rail-arrow:hover {
   background-color:var(--surface-elevated);
   border-color:var(--accent);
   color:var(--accent-hover);
   transform:translateY(-1px);
}


.rail-arrow:active {
   background-color:var(--surface-sunken);
   transform:translateY(1px);
}


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


.rail-arrow:disabled,
.rail-arrow[aria-disabled='true'] {
   opacity:0.4;
   cursor:not-allowed;
   transform:none;
}


.rail-viewport {
   overflow-x:auto;
   scroll-behavior:smooth;
   -webkit-overflow-scrolling:touch;
   scroll-snap-type:x mandatory;
   scrollbar-width:none;
   cursor:grab;
   padding-block:0.5rem;
   margin-inline:calc(var(--space-md) * -1);
   padding-inline:var(--space-md);
}


.rail-viewport::-webkit-scrollbar {
   display:none;
}


.rail-viewport.is-dragging {
   cursor:grabbing;
   scroll-behavior:auto;
   scroll-snap-type:none;
   user-select:none;
}


.rail-track {
   display:flex;
   gap:var(--space-md);
   width:max-content;
}


.rail-card {
   flex:0 0 clamp(280px, 75vw, 380px);
   scroll-snap-align:start;
   background-color:var(--surface);
   border:1px solid var(--border);
   border-radius:var(--radius-sm);
   overflow:hidden;
   display:flex;
   flex-direction:column;
   transition:transform var(--dur-base) ease, border-color var(--dur-base) ease, box-shadow var(--dur-base) ease;
}


.rail-card:hover {
   transform:translateY(-4px);
   border-color:var(--accent);
   box-shadow:var(--shadow-elevated);
}


.rail-card-media {
   position:relative;
   aspect-ratio:16 / 10;
   overflow:hidden;
   background-color:var(--surface-sunken);
}


.rail-card-media img {
   width:100%;
   height:100%;
   object-fit:cover;
   transition:transform var(--dur-med) var(--ease-out-cubic);
}


.rail-card:hover .rail-card-media img {
   transform:scale(1.04);
}


.rail-card-body {
   padding:var(--space-md);
   display:flex;
   flex-direction:column;
   flex-grow:1;
   gap:0.75rem;
}


.rail-card-title {
   font-family:var(--jigu-b0c);
   font-size:var(--text-lg);
   font-weight:600;
   margin-block-end:0;
}


.rail-card-basis {
   font-family:var(--jigu-6c3);
   font-size:var(--text-xs);
   color:var(--accent);
   font-weight:700;
}


.rail-card-desc {
   font-size:var(--text-sm);
   color:var(--ink-muted);
   flex-grow:1;
}


.rail-card-footer {
   margin-top:auto;
   padding-top:0.75rem;
   border-top:1px solid var(--border-hairline);
   display:flex;
   align-items:center;
   justify-content:space-between;
}


.rail-progress {
   width:100%;
   height:3px;
   background-color:var(--surface-sunken);
   margin-top:var(--space-md);
   position:relative;
   overflow:hidden;
   border-radius:var(--radius-full);
}


.rail-progress-bar {
   height:100%;
   width:25%;
   background-color:var(--accent);
   transition:width var(--dur-fast) ease, transform var(--dur-fast) ease;
}


@media (prefers-reduced-motion: reduce) {
   .rail-viewport {
      overflow-x:visible;
      scroll-snap-type:none;
      cursor:default;
      margin-inline:0;
      padding-inline:0;
   }


   .rail-track {
      display:grid;
      grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
      width:100%;
   }


   .rail-card {
      flex:auto;
   }


   .rail-controls,
   .rail-progress {
      display:none;
   }
}


.procedure-card {
   background-color:var(--surface);
   border:1px solid var(--border);
   border-radius:var(--radius-sm);
   overflow:hidden;
   display:flex;
   flex-direction:column;
   transition:transform var(--dur-fast) ease, border-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;
}


.procedure-card:hover {
   transform:translateY(-2px);
   border-color:var(--accent);
   box-shadow:var(--shadow-subtle);
}


.procedure-card-media {
   position:relative;
   aspect-ratio:16 / 10;
   background-color:var(--surface-sunken);
   overflow:hidden;
}


.procedure-card-media img {
   width:100%;
   height:100%;
   object-fit:cover;
}


.procedure-card-body {
   padding:clamp(1rem, 2.5vw, 1.5rem);
   display:flex;
   flex-direction:column;
   flex-grow:1;
}


.procedure-card-header {
   margin-block-end:0.75rem;
}


.procedure-card-title {
   font-family:var(--jigu-b0c);
   font-size:var(--text-base);
   line-height:1.3;
   font-weight:600;
   margin-block-end:0.25rem;
}


.procedure-card-title a {
   color:var(--ink);
   text-decoration:none;
   transition:color var(--dur-fast) ease;
}


.procedure-card-title a:hover {
   color:var(--accent);
}


.procedure-card-title a:focus-visible {
   outline:2px solid var(--accent);
   outline-offset:2px;
}


.procedure-badge {
   display:inline-block;
   font-family:var(--jigu-6c3);
   font-size:var(--text-2xs);
   letter-spacing:0.08em;
   text-transform:uppercase;
   color:var(--accent);
   background-color:var(--surface-sunken);
   padding:0.25rem 0.5rem;
   border-radius:var(--radius-xs);
   border:1px solid var(--border-hairline);
   margin-block-end:0.5rem;
}


.procedure-price-tag {
   font-family:var(--jigu-6c3);
   font-size:var(--text-sm);
   font-weight:700;
   color:var(--accent-hover);
   margin-block-end:0.75rem;
}


.procedure-card-desc {
   font-size:var(--text-sm);
   color:var(--ink-muted);
   margin-block-end:1rem;
   flex-grow:1;
}


.spec-table {
   width:100%;
   border-collapse:collapse;
   font-size:var(--text-sm);
   background-color:var(--surface-sunken);
   border:1px solid var(--border);
   border-radius:var(--radius-sm);
   overflow:hidden;
}


.spec-table tr:last-child td,
.spec-table tr:last-child th {
   border-bottom:none;
}


.spec-table th {
   font-family:var(--jigu-b0c);
   font-size:var(--text-xs);
   font-weight:600;
   letter-spacing:0.04em;
   text-transform:uppercase;
   color:var(--accent);
   background-color:rgba(48, 16, 19, 0.75);
   border-bottom:1px solid var(--border);
   padding:0.75rem 1rem;
   min-width:220px;
}


.spec-table td {
   font-family:var(--jigu-6c3);
   font-size:var(--text-xs);
   color:var(--ink);
   border-bottom:1px solid var(--border-hairline);
   padding:0.75rem 1rem;
}


.form-group {
   margin-block-end:1.25rem;
   display:flex;
   flex-direction:column;
   gap:0.35rem;
}


.form-label {
   font-family:var(--jigu-b0c);
   font-size:var(--text-xs);
   font-weight:600;
   letter-spacing:0.04em;
   color:var(--ink);
   display:flex;
   align-items:center;
   justify-content:space-between;
}


.form-label-optional {
   font-family:var(--jigu-6c3);
   font-size:var(--text-2xs);
   color:var(--ink-muted);
   font-weight:400;
   text-transform:lowercase;
}


.form-input,
.form-select,
.form-textarea {
   width:100%;
   min-height:44px;
   padding:0.65rem 0.85rem;
   background-color:var(--surface-sunken);
   border:1px solid var(--border);
   border-radius:var(--radius-sm);
   color:var(--ink);
   font-family:var(--jigu-46b);
   font-size:var(--text-base);
   line-height:1.4;
   transition:border-color var(--dur-fast) ease, background-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;
}


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


.form-input:hover,
.form-select:hover,
.form-textarea:hover {
   border-color:var(--accent);
   background-color:rgba(48, 16, 19, 0.9);
}


.form-input:focus,
.form-select:focus,
.form-textarea:focus,
.form-input:focus-visible,
.form-select:focus-visible,
.form-textarea:focus-visible {
   outline:2px solid var(--accent);
   outline-offset:2px;
   border-color:var(--accent-hover);
   background-color:var(--ground-deep);
   box-shadow:0 0 12px rgba(201, 151, 88, 0.2);
}


.form-input:active,
.form-select:active,
.form-textarea:active {
   background-color:var(--ground-deep);
}


.form-input.is-invalid,
.form-select.is-invalid,
.form-textarea.is-invalid,
.form-input[aria-invalid='true'],
.form-select[aria-invalid='true'],
.form-textarea[aria-invalid='true'] {
   border-color:var(--status-error);
   background-color:var(--status-error-bg);
}


.form-input.is-invalid:focus-visible,
.form-select.is-invalid:focus-visible,
.form-textarea.is-invalid:focus-visible {
   outline-color:var(--status-error);
}


.form-error {
   font-family:var(--jigu-6c3);
   font-size:var(--text-2xs);
   color:var(--status-error);
   display:none;
   margin-top:0.25rem;
}


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


.form-help {
   font-size:var(--text-xs);
   color:var(--ink-muted);
   margin-top:0.2rem;
}


.form-checkbox-label {
   display:grid;
   grid-template-columns:24px 1fr;
   align-items:start;
   gap:0.75rem;
   font-size:var(--text-sm);
   color:var(--ink);
   cursor:pointer;
   min-height:44px;
   padding-block:0.35rem;
}


.form-checkbox {
   appearance:none;
   -webkit-appearance:none;
   width:22px;
   height:22px;
   border:1px solid var(--border);
   border-radius:var(--radius-xs);
   background-color:var(--surface-sunken);
   cursor:pointer;
   margin-top:0.15rem;
   display:grid;
   place-content:center;
   transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, transform var(--dur-fast) ease;
}


.form-checkbox:hover {
   border-color:var(--accent);
   background-color:var(--surface);
}


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


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


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


.form-checkbox:checked::before {
   content:"";
   width:10px;
   height:6px;
   border-left:2px solid var(--ground-deep);
   border-bottom:2px solid var(--ground-deep);
   transform:rotate(-45deg) translate(1px, -1px);
}


.hp-field {
   position:absolute !important;
   left:-9999px !important;
   width:1px !important;
   height:1px !important;
   opacity:0 !important;
   pointer-events:none !important;
   margin:0 !important;
   padding:0 !important;
}


.form-status {
   padding:1rem 1.25rem;
   border-radius:var(--radius-sm);
   font-family:var(--jigu-46b);
   font-size:var(--text-sm);
   margin-block-end:1.5rem;
   display:none;
   border:1px solid transparent;
}


.form-status.is-visible {
   display:block;
}


.form-status.success {
   background-color:var(--status-success-bg);
   border-color:var(--status-success);
   color:var(--ink);
}


.form-status.error {
   background-color:var(--status-error-bg);
   border-color:var(--status-error);
   color:var(--ink);
}


.site-footer {
   background-color:var(--ground-deep);
   border-top:1px solid var(--border);
   color:var(--ink);
   padding-top:clamp(2rem, 3.5vw, 3rem);
   padding-bottom:clamp(1.5rem, 2.5vw, 2rem);
   margin-top:var(--space-2xl);
   position:relative;
}


.footer-top {
   display:grid;
   grid-template-columns:1fr;
   gap:var(--space-lg);
   margin-block-end:var(--space-lg);
}


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


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


.footer-brand-col {
   display:flex;
   flex-direction:column;
   gap:0.75rem;
}


.footer-brand-col .brand img {
   height:3rem;
}


.footer-creds {
   font-family:var(--jigu-6c3);
   font-size:var(--text-xs);
   color:var(--ink-muted);
   line-height:1.5;
}


.footer-col-title {
   font-family:var(--jigu-b0c);
   font-size:var(--text-xs);
   font-weight:600;
   letter-spacing:0.08em;
   text-transform:uppercase;
   color:var(--accent);
   margin-block-end:0.5rem;
}


.footer-link-list {
   list-style:none;
   padding:0;
   margin:0;
   display:flex;
   flex-direction:column;
   gap:0.25rem;
}


.footer-link {
   display:inline-flex;
   align-items:center;
   min-height:30px;
   font-family:var(--jigu-46b);
   font-size:var(--text-sm);
   color:var(--ink-muted);
   text-decoration:none;
   transition:color var(--dur-fast) ease, transform var(--dur-fast) ease;
}


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


.footer-link:active {
   color:var(--accent);
   transform:translateX(1px);
}


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


.footer-contact-item {
   display:flex;
   align-items:flex-start;
   gap:0.5rem;
   margin-block-end:0.4rem;
   font-size:var(--text-sm);
   color:var(--ink-muted);
   line-height:1.4;
}


.footer-contact-item .icon {
   color:var(--accent);
   margin-top:0.2rem;
}


.footer-contact-link {
   color:var(--ink);
   text-decoration:none;
   min-height:30px;
   display:inline-flex;
   align-items:center;
   transition:color var(--dur-fast) ease;
}


.footer-contact-link:hover {
   color:var(--accent-hover);
}


.footer-contact-link:active {
   color:var(--accent);
}


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


.footer-legal-bar {
   border-top:1px solid var(--border-hairline);
   padding-top:var(--space-md);
   display:flex;
   flex-direction:column;
   gap:0.75rem;
   font-family:var(--jigu-6c3);
   font-size:var(--text-2xs);
   color:var(--ink-dim);
}


@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;
   align-items:center;
   gap:0.75rem 1.25rem;
}


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


.footer-legal-link:hover {
   color:var(--accent);
}


.footer-legal-link:active {
   color:var(--accent-hover);
}


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


.consent-trigger {
   background:transparent;
   border:1px dashed var(--border);
   border-radius:var(--radius-xs);
   color:var(--ink-muted);
   font-family:var(--jigu-6c3);
   font-size:var(--text-2xs);
   letter-spacing:0.05em;
   padding:0.35rem 0.65rem;
   min-height:44px;
   display:inline-flex;
   align-items:center;
   cursor:pointer;
   transition:color var(--dur-fast) ease, border-color var(--dur-fast) ease, background-color var(--dur-fast) ease;
}


.consent-trigger:hover {
   color:var(--accent-hover);
   border-color:var(--accent);
   background-color:var(--surface-subtle);
}


.consent-trigger:active {
   color:var(--accent);
   background-color:var(--surface-sunken);
}


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


.cookie-banner {
   position:fixed;
   bottom:0;
   left:0;
   right:0;
   z-index:800;
   background-color:var(--surface);
   background-color:rgba(56, 20, 23, 0.98);
   border-top:1px solid var(--accent);
   box-shadow:0 -4px 20px rgba(0, 0, 0, 0.5);
   padding:0.75rem 1rem;
   transform:translateY(0);
   transition:transform var(--dur-base) var(--ease-out-cubic), opacity var(--dur-base) ease, visibility var(--dur-base) ease;
}


.cookie-banner[hidden] {
   display:none;
}


.cookie-banner-inner {
   max-width:var(--frame-width);
   margin-inline:auto;
   display:flex;
   flex-direction:column;
   gap:0.75rem;
   align-items:stretch;
}


@media (min-width: 768px) {
   .cookie-banner-inner {
      flex-direction:row;
      align-items:center;
      justify-content:space-between;
      gap:1.5rem;
   }
}


.cookie-banner-text {
   font-family:var(--jigu-46b);
   font-size:var(--text-sm);
   color:var(--ink);
   margin-block-end:0;
   line-height:1.45;
}


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


.cookie-btn {
   min-height:44px;
   padding:0.5rem 1rem;
   font-family:var(--jigu-b0c);
   font-size:var(--text-2xs);
   font-weight:600;
   letter-spacing:0.05em;
   text-transform:uppercase;
   border-radius:var(--radius-xs);
   border:1px solid transparent;
   cursor:pointer;
   transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease, border-color var(--dur-fast) ease, transform var(--dur-fast) ease;
}


.cookie-btn-accept {
   background-color:var(--accent);
   color:var(--ground-deep);
   border-color:var(--accent);
}


.cookie-btn-accept:hover {
   background-color:var(--accent-hover);
   border-color:var(--accent-hover);
}


.cookie-btn-accept:active {
   background-color:var(--accent-active);
   transform:translateY(1px);
}


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


.cookie-btn-decline {
   background-color:var(--surface-sunken);
   color:var(--ink-muted);
   border-color:var(--border);
}


.cookie-btn-decline:hover {
   background-color:var(--surface-elevated);
   border-color:var(--accent);
   color:var(--ink);
}


.cookie-btn-decline:active {
   background-color:var(--surface-sunken);
   transform:translateY(1px);
}


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


.chat-widget {
   position:fixed;
   bottom:1.25rem;
   right:1.25rem;
   z-index:750;
   display:flex;
   flex-direction:column;
   align-items:flex-end;
}


.cookie-banner.is-active ~ .chat-widget,
body.has-active-banner .chat-widget {
   bottom:calc(4.5rem + 1rem);
}


@media (max-width: 768px) {
   body.has-active-banner .chat-widget {
      bottom:calc(7rem + 1rem);
   }
}


.chat-launcher {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:0.5rem;
   min-width:52px;
   min-height:52px;
   padding:0.75rem 1.15rem;
   background-color:var(--accent);
   color:var(--ground-deep);
   border:1px solid var(--accent-hover);
   border-radius:var(--radius-full);
   cursor:pointer;
   box-shadow:var(--shadow-elevated);
   position:relative;
   font-family:var(--jigu-b0c);
   font-size:var(--text-xs);
   font-weight:700;
   letter-spacing:0.04em;
   text-transform:uppercase;
   transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-fast) ease, box-shadow var(--dur-fast) ease;
}


.chat-launcher:hover {
   background-color:var(--accent-hover);
   transform:translateY(-2px);
   box-shadow:0 8px 24px rgba(201, 151, 88, 0.45);
}


.chat-launcher:active {
   background-color:var(--accent-active);
   transform:translateY(1px);
   box-shadow:0 2px 8px rgba(201, 151, 88, 0.3);
}


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


.chat-launcher .icon {
   width:1.35em;
   height:1.35em;
}


.chat-launcher-label {
   display:none;
}


@media (min-width: 640px) {
   .chat-launcher-label {
      display:inline;
   }
}


.chat-badge {
   position:absolute;
   top:-4px;
   right:-4px;
   min-width:20px;
   height:20px;
   padding:0 4px;
   border-radius:var(--radius-full);
   background-color:var(--status-error);
   color:#fff;
   font-family:var(--jigu-6c3);
   font-size:0.6875rem;
   font-weight:700;
   display:none;
   align-items:center;
   justify-content:center;
   border:2px solid var(--ground);
}


.chat-badge.is-visible {
   display:flex;
}


.chat-panel {
   position:fixed;
   bottom:5.5rem;
   right:1.25rem;
   width:clamp(300px, 92vw, 380px);
   max-height:clamp(400px, 80vh, 560px);
   background-color:var(--surface);
   border:1px solid var(--accent);
   border-radius:var(--radius-sm);
   box-shadow:var(--shadow-elevated);
   display:flex;
   flex-direction:column;
   overflow:hidden;
   opacity:0;
   visibility:hidden;
   pointer-events:none;
   transform:translateY(12px) scale(0.97);
   transition:opacity var(--dur-base) ease, transform var(--dur-base) var(--ease-out-cubic), visibility var(--dur-base) ease;
}


.chat-panel.is-open {
   opacity:1;
   visibility:visible;
   pointer-events:auto;
   transform:translateY(0) scale(1);
}


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


.chat-header-title {
   font-family:var(--jigu-b0c);
   font-size:var(--text-sm);
   font-weight:600;
   letter-spacing:0.04em;
   color:var(--ink);
   margin-block-end:0;
   display:flex;
   align-items:center;
   gap:0.45rem;
}


.chat-status-dot {
   width:8px;
   height:8px;
   border-radius:var(--radius-full);
   background-color:var(--status-success);
}


.chat-close-btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   min-width:44px;
   min-height:44px;
   padding:0.25rem;
   background:transparent;
   border:1px solid transparent;
   border-radius:var(--radius-xs);
   color:var(--ink-muted);
   cursor:pointer;
   transition:color var(--dur-fast) ease, background-color var(--dur-fast) ease;
}


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


.chat-close-btn:active {
   color:var(--accent);
   background-color:var(--surface-sunken);
}


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


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


.chat-intake {
   background-color:var(--surface-sunken);
   border:1px solid var(--border);
   border-radius:var(--radius-sm);
   padding:1rem;
   display:flex;
   flex-direction:column;
   gap:0.75rem;
}


.chat-intake-intro {
   font-size:var(--text-xs);
   color:var(--ink-muted);
   line-height:1.5;
   margin-block-end:0;
}


.chat-intake-btn {
   margin-top:0.25rem;
}


.chat-messages {
   display:flex;
   flex-direction:column;
   gap:0.65rem;
}


.chat-msg {
   max-width:85%;
   padding:0.65rem 0.85rem;
   border-radius:var(--radius-sm);
   font-size:var(--text-xs);
   line-height:1.45;
   word-break:break-word;
}


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


.chat-msg-sent {
   align-self:flex-end;
   background-color:var(--accent);
   color:var(--ground-deep);
   font-weight:500;
}


.chat-composer {
   padding:0.75rem;
   background-color:var(--ground-deep);
   border-top:1px solid var(--border);
   display:flex;
   gap:0.5rem;
   align-items:flex-end;
}


.chat-textarea {
   flex-grow:1;
   min-height:44px;
   max-height:100px;
   padding:0.5rem 0.75rem;
   background-color:var(--surface-sunken);
   border:1px solid var(--border);
   border-radius:var(--radius-xs);
   color:var(--ink);
   font-family:var(--jigu-46b);
   font-size:var(--text-sm);
   resize:none;
}


.chat-textarea:hover {
   border-color:var(--accent);
}


.chat-textarea:focus,
.chat-textarea:focus-visible {
   outline:2px solid var(--accent);
   outline-offset:1px;
   border-color:var(--accent-hover);
}


.chat-send-btn {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   min-width:44px;
   min-height:44px;
   padding:0.5rem;
   background-color:var(--accent);
   color:var(--ground-deep);
   border:1px solid var(--accent);
   border-radius:var(--radius-xs);
   cursor:pointer;
   transition:background-color var(--dur-fast) ease, transform var(--dur-fast) ease;
}


.chat-send-btn:hover {
   background-color:var(--accent-hover);
   border-color:var(--accent-hover);
   transform:translateY(-1px);
}


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


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