
.hero-opening {
   padding-top: clamp(1.75rem, 3.5vw, 3rem);
   padding-bottom: clamp(2.5rem, 4.5vw, 4rem);
   border-bottom: 1px solid var(--line);
   position: relative;
   background-color: var(--ground);
}

.hero-header-block {
   margin-bottom: var(--space-lg);
}

.hero-display-title {
   font-family: var(--cuba-6ff);
   font-size: var(--fs-display);
   font-weight: 700;
   line-height: 1.05;
   letter-spacing: -0.035em;
   color: var(--ink);
   max-width: 14ch;
   text-wrap: balance;
}

.hero-layout-grid {
   display: grid;
   grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
   gap: clamp(1.5rem, 3vw, 3rem);
   align-items: start;
}

@media (max-width: 768px) {
   .hero-layout-grid {
      display: flex;
      flex-direction: column;
      gap: var(--space-md);
   }

   .hero-plate-slot {
      order: 1;
      width: 100%;
   }

   .hero-sidebar-pane {
      order: 2;
      width: 100%;
   }
}

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

.hero-sidebar-pane .lede {
   color: var(--ink-soft);
   font-size: var(--fs-md);
   line-height: var(--lh-snug);
   max-width: 42ch;
}

.hero-action-slot {
   display: flex;
   flex-direction: column;
   gap: var(--space-xs);
   align-items: flex-start;
}

.hero-plate-slot {
   display: flex;
   flex-direction: column;
}

.hero-photo-plate {
   position: relative;
   background-color: var(--surface);
   border: 1px solid var(--line);
   overflow: hidden;
}

.hero-photo-plate picture,
.hero-photo-plate img {
   width: 100%;
   height: auto;
   aspect-ratio: 16 / 10;
   object-fit: cover;
   object-position: 40% 47%;
   display: block;
}

.hero-plate-caption {
   padding: var(--space-xs) var(--space-sm);
   background-color: var(--ground);
   border-bottom: 1px solid var(--line);
   display: flex;
   justify-content: space-between;
   align-items: baseline;
   flex-wrap: wrap;
   gap: var(--space-xs);
   font-family: var(--cuba-059);
   font-size: var(--fs-xs);
   color: var(--ink-soft);
}

.second-screen-band {
   background-color: var(--surface);
   border-bottom: 1px solid var(--line);
   padding-block: clamp(3rem, 5vw, 5rem);
}

.second-screen-grid {
   display: grid;
   grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr);
   gap: clamp(1.5rem, 3.5vw, 3.5rem);
   align-items: center;

}

@media (max-width: 860px) {
   .second-screen-grid {

      grid-template-columns: minmax(0, 1fr);
      gap: var(--space-lg);
   }
}

.second-screen-lead {
   display: flex;
   flex-direction: column;
   gap: var(--space-sm);
}

.second-screen-lead .verb-heading {
   margin-bottom: 0;
}

.model-stage-box {
   position: relative;
   width: 100%;
   aspect-ratio: 16 / 10;
   min-height: 340px;
   background-color: #f8f8f8;
   border: 1px solid var(--line);
   overflow: hidden;
   display: flex;
   align-items: center;
   justify-content: center;
}

@media (max-width: 640px) {
   .model-stage-box {
      aspect-ratio: 4 / 3;
      min-height: 260px;
   }
}

.model-stage-box [data-model-still] {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   object-fit: cover;
   object-position: center;
   transition: opacity var(--dur-slow) var(--ease-out);
   z-index: 2;
}

.model-stage-box [data-model-canvas] {
   position: absolute;
   inset: 0;
   width: 100% !important;
   height: 100% !important;
   display: block;
   z-index: 1;
   cursor: grab;
}

.model-stage-box [data-model-canvas]:active {
   cursor: grabbing;
}

.model-stage-box[data-model-live] [data-model-still] {
   opacity: 0;
   pointer-events: none;
}

.model-stage-caption {
   padding: var(--space-xs) var(--space-sm);
   background-color: var(--ground);
   border-top: 1px solid var(--line);
   display: flex;
   justify-content: space-between;
   align-items: center;

   flex-wrap: wrap;
   gap: var(--space-xs);
   font-family: var(--cuba-059);
   font-size: var(--fs-xs);
   color: var(--ink-soft);
}

.model-hint-tag {
   display: inline-flex;
   align-items: center;
   gap: 0.35rem;
   color: var(--accent);
   font-weight: 500;
}

.verb-section {
   padding-block: clamp(3rem, 6vw, 6rem);
   border-bottom: 1px solid var(--surface-2);
   position: relative;
}

.verb-section:nth-child(even) {
   background-color: var(--surface);
}

.verb-stack {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
}

.verb-lede {
   font-size: var(--fs-md);
   line-height: var(--lh-snug);
   color: var(--ink-soft);
   max-width: var(--measure-prose);
   margin-bottom: var(--space-sm);
}

.verb-detail-col {
   max-width: var(--measure-prose);
   font-size: var(--fs-base);
   line-height: var(--lh-loose);
   color: var(--ink);
}

.verb-detail-col p + p {
   margin-top: var(--space-sm);
}

.verb-meta-facts {
   margin-top: var(--space-md);
   padding: var(--space-sm) var(--space-md);
   background-color: var(--ground);
   border: 1px solid var(--line);
   border-radius: var(--radius-sm);
   font-family: var(--cuba-059);
   font-size: var(--fs-xs);
   display: flex;
   flex-direction: column;
   gap: var(--space-2xs);
   color: var(--ink);
}

.verb-meta-facts strong {
   color: var(--ink);
   font-weight: 600;
}

.signature-plate-section {
   padding-block: clamp(3.5rem, 6vw, 6.5rem);
   background-color: var(--ground);
   border-bottom: 1px solid var(--surface-2);
}

.signature-plate-frame {
   margin-top: var(--space-lg);
   border: 1px solid var(--line);
   background-color: var(--surface);
   position: relative;
   border-radius: var(--radius-sm);
   overflow: hidden;
}

.signature-plate-stage {
   position: relative;
   width: 100%;
   overflow: hidden;
   background-color: #efefef;
}

.signature-plate-stage img {
   width: 100%;
   height: auto;
   aspect-ratio: 16 / 10;
   max-height: 680px;
   object-fit: cover;
   object-position: 50% 40%;
   display: block;
}

/* Callout overlays on the photographic plate */
.plate-callout {
   position: absolute;
   z-index: 10;
   display: flex;
   align-items: center;
   gap: 0.5rem;
   pointer-events: auto;
}

.callout-dot {
   width: 24px;
   height: 24px;
   border-radius: 50%;
   background-color: var(--ink);
   color: var(--ground);
   font-family: var(--cuba-059);
   font-size: 0.75rem;
   font-weight: 700;
   display: flex;
   align-items: center;
   justify-content: center;
   box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.85);
   flex-shrink: 0;
   transition: transform var(--dur-fast) var(--ease-out),
                     background-color var(--dur-fast) var(--ease-out);
}

.plate-callout:hover .callout-dot {
   transform: scale(1.15);
   background-color: var(--accent);
}

.callout-box {
   background-color: rgba(255, 255, 255, 0.95);
   border: 1px solid var(--line);
   padding: 0.35rem 0.65rem;
   border-radius: var(--radius-sm);
   font-family: var(--cuba-059);
   font-size: var(--fs-xs);
   color: var(--ink);
   backdrop-filter: blur(4px);
   -webkit-backdrop-filter: blur(4px);
   white-space: nowrap;
   box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* Coordinates for plate callouts */
.callout-1 { top: 22%; left: 14%; }
.callout-2 { top: 38%; right: 18%; }
.callout-3 { bottom: 26%; left: 22%; }
.callout-4 { bottom: 18%; right: 24%; }

@media (max-width: 768px) {
   .plate-callout .callout-box {
      display: none;
   }
}

.signature-plate-legend {
   padding: var(--space-md);
   background-color: var(--ground);
   border-top: 1px solid var(--line);
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
   gap: var(--space-md);
}

.legend-item {
   display: flex;
   gap: var(--space-xs);
   align-items: flex-start;
}

.legend-index {
   font-family: var(--cuba-059);
   font-size: var(--fs-xs);
   font-weight: 700;
   background-color: var(--surface);
   color: var(--ink);
   border: 1px solid var(--line);
   width: 20px;
   height: 20px;
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   flex-shrink: 0;
   margin-top: 2px;
}

.legend-desc {
   font-size: var(--fs-xs);
   line-height: var(--lh-snug);
   color: var(--ink);
}

.legend-desc strong {
   display: block;
   font-family: var(--cuba-6ff);
   font-size: var(--fs-sm);
   margin-bottom: 2px;
}

.flow-diagram-section {
   padding-block: clamp(3.5rem, 6vw, 6.5rem);
   background-color: var(--surface);
   border-bottom: 1px solid var(--line);
   position: relative;
}

.diagram-stage-container {
   margin-top: var(--space-lg);
   background-color: var(--ground);
   border: 1px solid var(--line);
   border-radius: var(--radius-sm);
   padding: var(--space-lg) var(--space-md);
}

.catalog-flow-svg {
   width: 100%;
   height: auto;
   max-height: 220px;
   display: block;
   overflow: visible;
}

.flow-step-wire {
   stroke: var(--line);
   stroke-width: 2px;
   stroke-linecap: round;
   fill: none;
}

.flow-step-active-path {
   stroke: var(--accent);
   stroke-width: 3px;
   stroke-linecap: round;
   stroke-dasharray: 1000;
   stroke-dashoffset: 0;
   fill: none;
   transition: stroke-dashoffset 0.1s linear;
}

.flow-node-circle {
   fill: var(--ground);
   stroke: var(--line);
   stroke-width: 2px;
   transition: fill var(--dur-base) var(--ease-out),
                     stroke var(--dur-base) var(--ease-out);
}

.flow-node-circle.is-lit {
   fill: var(--accent);
   stroke: var(--accent);
}

.flow-node-label {
   font-family: var(--cuba-059);
   font-size: 11px;
   fill: var(--ink);
   font-weight: 600;
   text-anchor: middle;
}

.flow-diagram-steps-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
   gap: var(--space-md);
   margin-top: var(--space-lg);
   padding-top: var(--space-md);
   border-top: 1px dashed var(--line);
}

.step-card {
   display: flex;
   flex-direction: column;
   gap: var(--space-2xs);
}

.step-phase-tag {
   font-family: var(--cuba-059);
   font-size: var(--fs-xs);
   color: var(--accent);
   font-weight: 600;
}

.step-title {
   font-family: var(--cuba-6ff);
   font-size: var(--fs-base);
   font-weight: 600;
   color: var(--ink);
}

.step-text {
   font-size: var(--fs-xs);
   line-height: var(--lh-snug);
   color: var(--ink-soft);
}

.lookup-tool-wrapper {
   margin-block: var(--space-xl);
   background-color: var(--ground);
   border: 1px solid var(--line);
   border-radius: var(--radius-sm);
   padding: var(--space-lg);
   box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
}

.lookup-tool-header {
   margin-bottom: var(--space-md);
   padding-bottom: var(--space-sm);
   border-bottom: 1px solid var(--surface-2);
}

.lookup-tool-header h3 {
   font-size: var(--fs-xl);
   margin-bottom: var(--space-2xs);
}

.lookup-controls-grid {
   display: grid;
   grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
   gap: var(--space-sm);
   margin-bottom: var(--space-md);
}

@media (max-width: 768px) {
   .lookup-controls-grid {
      grid-template-columns: minmax(0, 1fr);
   }
}

.lookup-output-pane {
   background-color: var(--surface);
   border: 1px solid var(--line);
   border-radius: var(--radius-sm);
   padding: var(--space-md);
   margin-top: var(--space-md);
   min-height: 140px;
   display: flex;
   flex-direction: column;
   justify-content: center;
}

.lookup-result-card {
   display: flex;
   flex-direction: column;
   gap: var(--space-xs);
}

.lookup-match-badge {
   display: inline-flex;
   align-items: center;
   gap: 0.35rem;
   font-family: var(--cuba-059);
   font-size: var(--fs-xs);
   color: var(--accent);
   font-weight: 600;
}

.lookup-match-title {
   font-family: var(--cuba-6ff);
   font-size: var(--fs-lg);
   font-weight: 700;
   color: var(--ink);
}

.lookup-match-desc {
   font-size: var(--fs-sm);
   color: var(--ink);
   line-height: var(--lh-base);
   max-width: var(--measure-prose);
}

.lookup-disclaimer-note {
   margin-top: var(--space-sm);
   font-family: var(--cuba-059);
   font-size: var(--fs-xs);
   color: var(--ink-soft);
   border-top: 1px dashed var(--line);
   padding-top: var(--space-2xs);
}

.catalog-register-head {
   padding-block: clamp(2.5rem, 5vw, 4.5rem);
   border-bottom: 1px solid var(--line);
}

.catalog-filter-bar {
   padding-block: var(--space-sm);
   border-bottom: 1px solid var(--surface-2);
   background-color: var(--surface);
   margin-bottom: var(--space-lg);
}

.filter-bar-inner {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: var(--space-sm);
   flex-wrap: wrap;
}

.filter-tags-group {
   display: flex;
   align-items: center;
   gap: var(--space-2xs);
   flex-wrap: wrap;
}

.filter-tag {
   min-height: 44px;
   padding: 0 var(--space-sm);
   font-family: var(--cuba-d06);
   font-size: var(--fs-xs);
   font-weight: 600;
   background-color: var(--ground);
   color: var(--ink);
   border: 1px solid var(--line);
   border-radius: var(--radius-sm);
   cursor: pointer;
   display: inline-flex;
   align-items: center;
   transition: background-color var(--dur-fast) var(--ease-out),
                     border-color var(--dur-fast) var(--ease-out),
                     color var(--dur-fast) var(--ease-out);
}

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

.filter-tag:active {
   background-color: var(--line);
}

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

.filter-tag.is-active {
   background-color: var(--ink);
   color: var(--ground);
   border-color: var(--ink);
}

.catalog-cards-grid {
   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
   gap: var(--space-lg);
   margin-bottom: var(--space-2xl);
}

@media (max-width: 480px) {
   .catalog-cards-grid {
      grid-template-columns: minmax(0, 1fr);
   }
}

.item-showcase-hero {
   padding-block: clamp(2rem, 4vw, 4rem);
   border-bottom: 1px solid var(--line);
   background-color: var(--ground);
}

.item-hero-grid {
   display: grid;
   grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
   gap: var(--space-xl);
   align-items: start;
}

@media (max-width: 860px) {
   .item-hero-grid {
      grid-template-columns: minmax(0, 1fr);
      gap: var(--space-lg);
   }
}

.item-hero-gallery {
   display: flex;
   flex-direction: column;
   gap: var(--space-md);
}

.item-main-frame {
   border: 1px solid var(--line);
   background-color: var(--surface);
   border-radius: var(--radius-sm);
   overflow: hidden;
}

.item-main-frame img {
   width: 100%;
   aspect-ratio: 4 / 3;
   object-fit: cover;
   object-position: center;
}

.item-secondary-frame {
   border: 1px solid var(--line);
   background-color: var(--surface);
   border-radius: var(--radius-sm);
   overflow: hidden;
}

.item-secondary-frame img {
   width: 100%;
   aspect-ratio: 16 / 9;
   object-fit: cover;
   object-position: center;
}

.item-hero-dossier {
   display: flex;
   flex-direction: column;
   gap: var(--space-md);
}

.item-accession-mark {
   font-family: var(--cuba-059);
   font-size: var(--fs-xs);
   color: var(--accent);
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: 0.05em;
}

.item-title {
   font-size: var(--fs-2xl);
   letter-spacing: -0.025em;
   line-height: var(--lh-tight);
}

.item-price-basis-banner {
   padding: var(--space-sm) var(--space-md);
   background-color: var(--surface);
   border-left: 3px solid var(--accent);
   font-family: var(--cuba-059);
   font-size: var(--fs-sm);
   color: var(--ink);
}

.item-spec-table-block {
   margin-top: var(--space-md);
}

.setup-pricing-tier-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
   gap: var(--space-md);
   margin-block: var(--space-lg);
}

.pricing-card {
   background-color: var(--ground);
   border: 1px solid var(--line);
   border-radius: var(--radius-sm);
   padding: var(--space-md);
   display: flex;
   flex-direction: column;
   gap: var(--space-sm);
   transition: border-color var(--dur-fast) var(--ease-out);
}

.pricing-card:hover {
   border-color: var(--ink);
}

.pricing-card-tier {
   font-family: var(--cuba-059);
   font-size: var(--fs-xs);
   color: var(--accent);
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: 0.05em;
}

.pricing-card-price {
   font-family: var(--cuba-6ff);
   font-size: var(--fs-2xl);
   font-weight: 700;
   color: var(--ink);
   line-height: 1;
}

.pricing-card-desc {
   font-size: var(--fs-sm);
   color: var(--ink-soft);
   line-height: var(--lh-base);
   flex-grow: 1;
}

.pricing-spec-list {
   list-style: none;
   padding: 0;
   margin: 0;
   display: flex;
   flex-direction: column;
   gap: var(--space-2xs);
   border-top: 1px dashed var(--line);
   padding-top: var(--space-sm);
   font-size: var(--fs-xs);
   font-family: var(--cuba-059);
   color: var(--ink);
}

.pricing-spec-list li {
   display: flex;
   align-items: center;
   gap: 0.4rem;
}

.legal-at-a-glance-wrap {
   padding-block: clamp(2.5rem, 5vw, 4.5rem);
   background-color: var(--ground);
}

.at-a-glance-summary-box {
   background-color: var(--surface);
   border: 2px solid var(--ink);
   border-radius: var(--radius-sm);
   padding: var(--space-md);
   margin-bottom: var(--space-2xl);
   box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}

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

.at-a-glance-header h2 {
   font-size: var(--fs-xl);
   margin: 0;
}

.at-a-glance-table {
   width: 100%;
   border-collapse: collapse;
}

.at-a-glance-table th,
.at-a-glance-table td {
   padding: 0.75rem var(--space-sm);
   border: 1px solid var(--line);
   font-size: var(--fs-sm);
   text-align: left;
   vertical-align: top;
}

.at-a-glance-table th {
   width: 32%;
   background-color: #e8e8e8;
   font-family: var(--cuba-059);
   font-size: var(--fs-xs);
   color: var(--ink);
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: 0.03em;
}

.at-a-glance-table td {
   background-color: var(--ground);
   color: var(--ink);
   line-height: var(--lh-snug);
}

@media (max-width: 640px) {
   .at-a-glance-table,
   .at-a-glance-table tbody,
   .at-a-glance-table tr,
   .at-a-glance-table th,
   .at-a-glance-table td {
      display: block;
      width: 100%;
   }
   .at-a-glance-table tr {
      margin-bottom: var(--space-sm);
      border: 1px solid var(--line);
   }
   .at-a-glance-table th {
      border-bottom: none;
   }
}

.prose-measure-col {
   max-width: var(--measure-prose);
   margin-inline: 0 auto;
}

.prose-measure-col h2 {
   margin-top: var(--space-xl);
   margin-bottom: var(--space-xs);
}

.prose-measure-col h3 {
   margin-top: var(--space-lg);
   margin-bottom: var(--space-2xs);
}

.prose-measure-col p + p {
   margin-top: var(--space-sm);
}

.prose-measure-col ul,
.prose-measure-col ol {
   margin-block: var(--space-sm);
   padding-left: 1.5rem;
}

.legal-numbered-clauses-wrap {
   padding-block: clamp(2.5rem, 5vw, 4.5rem);
   background-color: var(--ground);
}

.numbered-clause-article {
   max-width: 90ch;
   margin-inline: 0 auto;
}

.numbered-clause-item {
   display: grid;
   grid-template-columns: 80px minmax(0, 1fr);
   gap: var(--space-md);
   padding-block: var(--space-lg);
   border-top: 1px solid var(--surface-2);
}

.numbered-clause-item:first-of-type {
   border-top: 2px solid var(--ink);
}

@media (max-width: 640px) {
   .numbered-clause-item {
      grid-template-columns: minmax(0, 1fr);
      gap: var(--space-2xs);
      padding-block: var(--space-md);
   }
}

.clause-ref-num {
   font-family: var(--cuba-059);
   font-size: var(--fs-sm);
   color: var(--ink-soft);
   font-weight: 500;
   padding-top: 0.25rem;
}

.clause-content h2,
.clause-content h3 {
   margin-bottom: var(--space-xs);
}

.clause-content p {
   max-width: 75ch;
   line-height: var(--lh-loose);
}

.clause-content p + p {
   margin-top: var(--space-sm);
}

.legal-framed-doc-wrap {
   padding-block: clamp(3rem, 6vw, 5.5rem);
   background-color: var(--surface);
}

.framed-document-card {
   max-width: 860px;
   margin-inline: 0 auto;
   background-color: var(--ground);
   border: 1px solid var(--line);
   box-shadow: 0 10px 40px rgba(0, 0, 0, 0.06);
   border-radius: var(--radius-sm);
   padding: clamp(2rem, 5vw, 4.5rem);
   position: relative;
}

.document-masthead {
   border-bottom: 2px solid var(--ink);
   padding-bottom: var(--space-md);
   margin-bottom: var(--space-xl);
   display: flex;
   flex-direction: column;
   gap: var(--space-xs);
}

.doc-ref-badge {
   font-family: var(--cuba-059);
   font-size: var(--fs-xs);
   color: var(--accent);
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: 0.05em;
}

.document-masthead h1 {
   font-size: var(--fs-2xl);
   margin: 0;
}

.doc-metadata-strip {
   display: flex;
   gap: var(--space-md);
   flex-wrap: wrap;
   font-family: var(--cuba-059);
   font-size: var(--fs-xs);
   color: var(--ink-soft);
   padding-top: var(--space-2xs);
}

.doc-clause-block {
   margin-bottom: var(--space-lg);
   padding-bottom: var(--space-md);
   border-bottom: 1px dashed var(--line);
}

.doc-clause-block:last-of-type {
   border-bottom: none;
   margin-bottom: 0;
   padding-bottom: 0;
}

.doc-clause-title {
   font-family: var(--cuba-6ff);
   font-size: var(--fs-lg);
   font-weight: 600;
   margin-bottom: var(--space-xs);
   color: var(--ink);
}

.doc-fatoc6e {
   font-size: var(--fs-base);
   line-height: var(--lh-base);
   color: var(--ink);
}

.doc-fatoc6e p + p {
   margin-top: var(--space-sm);
}

.contact-atelier-grid {
   display: grid;
   grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.8fr);
   gap: var(--space-2xl);
   margin-block: var(--space-xl);
}

@media (max-width: 860px) {
   .contact-atelier-grid {
      grid-template-columns: minmax(0, 1fr);
      gap: var(--space-lg);
   }
}

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

.dossier-entry {
   display: flex;
   flex-direction: column;
   gap: var(--space-2xs);
}

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

.dossier-val {
   font-size: var(--fs-base);
   color: var(--ink);
   font-weight: 500;
}

.dossier-val a {
   color: var(--ink);
   text-decoration: underline;
}

.dossier-val a:hover {
   color: var(--accent);
}

.faq-accordion-block {
   margin-top: var(--space-xl);
   border-top: 1px solid var(--line);
}

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

.faq-question-btn {
   width: 100%;
   min-height: 48px;
   padding: var(--space-sm) 0;
   display: flex;
   justify-content: space-between;
   align-items: center;
   gap: var(--space-md);
   font-family: var(--cuba-6ff);
   font-size: var(--fs-md);
   font-weight: 600;
   color: var(--ink);
   cursor: pointer;
   background: none;
   border: none;
   text-align: left;
   transition: color var(--dur-fast) var(--ease-out);
}

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

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

.faq-icon {
   width: 1.25rem;
   height: 1.25rem;
   transition: transform var(--dur-base) var(--ease-out);
   flex-shrink: 0;
}

.faq-item.is-open .faq-icon {
   transform: rotate(180deg);
}

.faq-answer-panel {
   padding-bottom: var(--space-md);
   font-size: var(--fs-base);
   line-height: var(--lh-loose);
   color: var(--ink-soft);
   display: none;
}

.faq-item.is-open .faq-answer-panel {
   display: block;
}

.error-scene-wrap {
   padding-block: clamp(4rem, 10vw, 8rem);
   background-color: var(--ground);
}

.error-scene-box {
   max-width: 65ch;
   margin-inline: 0 auto;
}

.error-status-code {
   font-family: var(--cuba-059);
   font-size: clamp(3rem, 8vw, 6rem);
   font-weight: 700;
   color: var(--accent);
   line-height: 1;
   margin-bottom: var(--space-sm);
}

.error-title {
   font-size: var(--fs-2xl);
   margin-bottom: var(--space-sm);
}

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