

.essay-hero {
   padding-top: var(--space-2xl);
   padding-bottom: var(--space-xl);
   border-bottom: 1px solid var(--line);
   position: relative;
}

.essay-kicker {
   display: block;
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   letter-spacing: 0.16em;
   text-transform: uppercase;
   color: var(--brass);
   margin-bottom: var(--space-xs);
}

.essay-headline {
   font-size: var(--zepu-3be);
   font-weight: 600;
   line-height: 1.1;
   letter-spacing: -0.025em;
   color: var(--ink);
   max-width: var(--measure-reading);
   margin-inline: auto;
   text-wrap: balance;
}

.rotating-word-slot {
   display: inline-block;
   position: relative;
   color: var(--brass-soft);
   min-width: 5.5ch;
   text-align: left;
   border-bottom: 2px solid var(--garnet);
   padding-bottom: 2px;
   transition: color var(--dur-base) var(--ease-warm), border-color var(--dur-base) var(--ease-warm);
}

.rotating-word {
   display: inline-block;
   opacity: 1 !important;

   transform: none !important;
   transition: opacity 220ms ease, transform 220ms ease;
}

.rotating-word.is-shifting {
   opacity: 0 !important;
   transform: translateY(6px) !important;
}

.rotating-word.is-active {
   opacity: 1 !important;
   transform: translateY(0) !important;
}

.essay-lede {
   margin-top: var(--space-m);
   font-size: var(--zepu-299);
   line-height: 1.6;
   color: var(--ink);
   font-weight: 300;
   max-width: var(--measure-reading);
   margin-inline: auto;
   text-wrap: pretty;
}

.essay-lede-meta {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: var(--space-xs) var(--space-m);
   margin-top: var(--space-m);

   padding-top: var(--space-xs);
   border-top: 1px dashed var(--line-strong);
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: var(--ink-faint);
}

.essay-lede-meta span { color: var(--ink-muted); }

.essay-lede-meta .meta-highlight { color: var(--brass); }

/* Flow of continuous essay content */
.essay-flow { padding-block: var(--space-xl) var(--space-3xl); }

.essay-body {
   max-width: var(--measure-reading);
   margin-inline: auto;
   font-size: var(--zepu-ef3);
   line-height: 1.7;
   color: var(--ink);
}

.essay-body p {
   margin-bottom: 1.45em;
   text-wrap: pretty;
}

.essay-subhead {
   font-family: var(--zepu-014);
   font-size: var(--zepu-343);
   font-weight: 600;
   line-height: 1.25;
   color: var(--ink);
   margin-top: 2.2em;
   margin-bottom: 0.7em;
   text-wrap: balance;
}

.essay-subhead-inline {
   display: block;
   font-family: var(--zepu-014);
   font-size: var(--zepu-343);
   font-weight: 600;
   color: var(--ink);
   margin-top: 2.4em;
   margin-bottom: 0.8em;
   border-bottom: 1px solid var(--line);
   padding-bottom: var(--space-2xs);
}

.essay-lead-paragraph {
   font-size: var(--zepu-299);
   line-height: 1.65;
   color: var(--ink);
   font-weight: 400;
   margin-bottom: 1.6em;
}

.essay-lead-paragraph::first-letter {
   font-family: var(--zepu-014);
   font-size: 3.6em;
   line-height: 0.8;
   float: left;
   padding-right: 0.12em;
   padding-top: 0.08em;
   color: var(--brass);
   font-weight: 700;
}


.lifecycle-diagram-wrap {
   margin-block: var(--space-3xl);
   padding-block: var(--space-xl);
   position: relative;
}

.lifecycle-intro {
   max-width: var(--measure-reading);
   margin-inline: auto;
   text-align: center;
   margin-bottom: var(--space-2xl);
}

.lifecycle-title {
   font-family: var(--zepu-014);
   font-size: var(--zepu-67f);
   color: var(--ink);
   margin-bottom: var(--space-2xs);
}

.lifecycle-desc {
   font-size: var(--zepu-ef3);
   color: var(--ink-muted);
}

.lifecycle-track {
   position: relative;
   max-width: 780px;
   margin-inline: auto;
   padding-left: var(--space-2xl);
}

.lifecycle-line-svg {
   position: absolute;
   top: 10px;
   bottom: 20px;
   left: 20px;
   width: 4px;
   height: calc(100% - 30px);
   overflow: visible;
}

.lifecycle-line-bg {
   stroke: var(--line-strong);
   stroke-width: 2;
   stroke-dasharray: 4 4;
}

.lifecycle-line-active {
   stroke: var(--brass);
   stroke-width: 2.5;
   stroke-linecap: round;
   transition: stroke-dashoffset 0.1s linear;
}

.lifecycle-node {
   position: relative;
   margin-bottom: var(--space-xl);
   background: var(--surface);
   border: 1px solid var(--line);
   border-radius: var(--radius-xs);
   padding: var(--space-m);
   transition: border-color var(--dur-base) var(--ease-warm),
                     transform var(--dur-base) var(--ease-warm),
                     background-color var(--dur-base) var(--ease-warm);
}

.lifecycle-node::before {
   content: '';
   position: absolute;
   left: calc(-1 * var(--space-2xl) + 14px);
   top: var(--space-m);
   width: 14px;
   height: 14px;

   border-radius: 50%;
   background: var(--surface-raised);
   border: 2px solid var(--line-strong);
   box-shadow: 0 0 0 3px var(--ground);
   transition: background-color var(--dur-base) var(--ease-warm),
                     border-color var(--dur-base) var(--ease-warm),
                     box-shadow var(--dur-base) var(--ease-warm);
}

.lifecycle-node.is-illuminated {
   border-color: var(--brass-dim);
   background: var(--surface-raised);
}

.lifecycle-node.is-illuminated::before {
   background: var(--brass);
   border-color: #fff;
   box-shadow: 0 0 0 4px var(--ground), 0 0 12px rgba(200, 157, 92, 0.6);
}

.lifecycle-node-header {
   display: flex;
   justify-content: space-between;
   align-items: baseline;
   flex-wrap: wrap;
   gap: var(--space-2xs);
   margin-bottom: var(--space-2xs);
}

.lifecycle-node-step {
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   letter-spacing: 0.12em;
   text-transform: uppercase;
   color: var(--brass);
}

.lifecycle-node-temp {
   font-family: var(--zepu-cf4);
   font-size: var(--step--1);
   color: var(--ink-faint);
}

.lifecycle-node-title {
   font-family: var(--zepu-014);
   font-size: var(--zepu-299);
   color: var(--ink);
   margin-bottom: var(--space-3xs);
}

.lifecycle-node-copy {
   font-size: var(--step--1);
   color: var(--ink-muted);
   line-height: 1.55;
}

@media (max-width: 520px) {
   .lifecycle-track { padding-left: var(--space-l); }

   .lifecycle-line-svg { left: 8px; }

   .lifecycle-node::before { left: calc(-1 * var(--space-l) + 2px); }
}


.offerings-grid {
   display: grid;
   grid-template-columns: 1fr;
   gap: var(--space-l);
   margin-block: var(--space-xl);
}

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

.offering-card {
   background: var(--surface);
   border: 1px solid var(--line);
   border-radius: var(--radius-xs);
   display: flex;
   flex-direction: column;
   overflow: hidden;
   transition: border-color var(--dur-base) var(--ease-warm),
                     transform var(--dur-base) var(--ease-warm);
}

.offering-card:hover { border-color: var(--brass-dim); }

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

.offering-card-media img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform var(--dur-slow) var(--ease-warm);
}

.offering-card:hover .offering-card-media img { transform: scale(1.03); }

.offering-card-body {
   padding: var(--space-m);
   display: flex;
   flex-direction: column;
   flex: 1;
}

.offering-card-meta {
   display: flex;
   justify-content: space-between;
   align-items: baseline;
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--brass);
   margin-bottom: var(--space-2xs);
}

.offering-card-title {
   font-family: var(--zepu-014);
   font-size: var(--zepu-343);
   color: var(--ink);
   margin-bottom: var(--space-xs);
}

.offering-card-text {
   font-size: var(--step--1);
   color: var(--ink-muted);
   line-height: 1.55;
   margin-bottom: var(--space-m);
   flex: 1;
}

.offering-card-foot {
   display: flex;
   align-items: baseline;
   justify-content: space-between;
   padding-top: var(--space-s);
   border-top: 1px solid var(--line);
   gap: var(--space-xs);
   flex-wrap: wrap;
}

.offering-price {
   font-family: var(--zepu-cf4);
   font-size: var(--zepu-299);
   font-weight: 500;
   color: var(--ink);
}

.offering-price-unit {
   font-size: var(--step--2);
   color: var(--ink-faint);
   font-family: var(--zepu-bd4);
}

.matrix-wrap {
   width: 100%;
   overflow-x: auto;
   margin-block: var(--space-xl);
   border: 1px solid var(--line);
   border-radius: var(--radius-xs);
   background: var(--surface);
}

.matrix-table {
   width: 100%;
   border-collapse: collapse;
   font-size: var(--step--1);
   min-width: 580px;
}

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

.matrix-table th {
   background: var(--surface-raised);
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--brass);
}

.matrix-table td { color: var(--ink-muted); }

.matrix-table td.matrix-feature {
   color: var(--ink);
   font-weight: 500;
}

.matrix-table td.matrix-val {
   font-family: var(--zepu-cf4);
   color: var(--ink);
}

.matrix-table tr:hover td { background: var(--surface-hover); }


.tool-section { margin-block: var(--space-2xl); }

.tool-card {
   background: var(--surface);
   border: 1px solid var(--line-brass);
   border-radius: var(--radius-xs);
   padding: var(--space-l);
   box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
}

.tool-heading-row {
   border-bottom: 1px solid var(--line);
   padding-bottom: var(--space-s);
   margin-bottom: var(--space-l);
}

.tool-title {
   font-family: var(--zepu-014);
   font-size: var(--zepu-343);
   color: var(--ink);
}

.tool-lede {
   font-size: var(--step--1);
   color: var(--ink-muted);
   margin-top: var(--space-3xs);
}

.tool-fieldset {
   border: none;
   padding: 0;
   margin: 0 0 var(--space-m) 0;
}

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

.tool-label-row {
   display: flex;
   justify-content: space-between;
   align-items: baseline;
   margin-bottom: var(--space-3xs);
   font-family: var(--zepu-cf4);
   font-size: var(--step--1);
   color: var(--ink);
}

.tool-val-display {
   color: var(--brass);
   font-weight: 500;
}

.tool-select,
.tool-range { width: 100%; }

.tool-result-panel {
   background: var(--ground);
   border: 1px solid var(--line-brass);
   border-radius: var(--radius-xs);
   padding: var(--space-m);
   margin-top: var(--space-l);
   text-align: center;
}

.tool-result-label {
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--brass);
}

.tool-result-figure {
   font-family: var(--zepu-cf4);
   font-size: var(--zepu-334);
   font-weight: 500;
   color: var(--ink);
   letter-spacing: -0.02em;
   margin-block: var(--space-2xs);
}

.tool-result-tier {
   font-family: var(--zepu-cf4);
   font-size: var(--step--1);
   color: var(--ink-muted);
}

.tool-caveat {
   font-size: var(--step--2);
   color: var(--ink-faint);
   line-height: 1.4;
   margin-top: var(--space-s);
   text-align: center;
}


.contact-layout {
   display: grid;
   grid-template-columns: 1fr;
   gap: var(--space-xl);
   margin-block: var(--space-xl);
}

@media (min-width: 840px) {
   .contact-layout { grid-template-columns: 1fr 1.35fr; }
}

.contact-details-box {
   background: var(--surface);
   border: 1px solid var(--line);
   border-radius: var(--radius-xs);
   padding: var(--space-m);
}

.contact-heading {
   font-family: var(--zepu-014);
   font-size: var(--zepu-343);
   color: var(--ink);
   margin-bottom: var(--space-xs);
}

.contact-lede {
   font-size: var(--step--1);
   color: var(--ink-muted);
   line-height: 1.5;
   margin-bottom: var(--space-m);
}

.contact-entry-list {
   list-style: none;
   padding: 0;
   margin: 0 0 var(--space-m) 0;
   display: flex;
   flex-direction: column;
   gap: var(--space-s);
}

.contact-entry-item {
   border-top: 1px solid var(--line);
   padding-top: var(--space-xs);
}

.contact-entry-label {
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--brass);
   display: block;
   margin-bottom: 2px;
}

.contact-entry-val {
   font-size: var(--zepu-ef3);
   color: var(--ink);
}

.contact-entry-val a {
   color: var(--ink);
   text-decoration: underline;
   text-decoration-color: var(--line-strong);
   min-height: 44px;
   display: inline-flex;
   align-items: center;
   transition: color var(--dur-fast) var(--ease-warm), text-decoration-color var(--dur-fast) var(--ease-warm);
}

.contact-entry-val a:hover {
   color: var(--brass);
   text-decoration-color: var(--brass);
}

.contact-hours-badge {
   display: inline-flex;
   align-items: center;
   gap: var(--space-3xs);
   padding: var(--space-3xs) var(--space-2xs);
   background: var(--surface-raised);
   border: 1px solid var(--line-strong);
   border-radius: var(--radius-xs);
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   color: var(--brass-soft);
   margin-top: var(--space-xs);
}


.legal-statute-shell {
   padding-block: var(--space-2xl) var(--space-3xl);
   max-width: var(--measure-wide);
   margin-inline: auto;
}

.statute-header {
   border-bottom: 2px solid var(--brass);
   padding-bottom: var(--space-m);
   margin-bottom: var(--space-xl);
}

.statute-title {
   font-family: var(--zepu-014);
   font-size: var(--zepu-334);
   font-weight: 600;
   letter-spacing: -0.02em;
   color: var(--ink);
   margin-bottom: var(--space-2xs);
}

.statute-meta-strip {
   display: flex;
   flex-wrap: wrap;
   gap: var(--space-s) var(--space-l);
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--brass);
}

.statute-two-column {
   column-count: 2;
   column-gap: var(--space-xl);
   column-rule: 1px solid var(--line);
   font-size: var(--step--1);
   line-height: 1.6;
   color: var(--ink-muted);
   text-align: justify;
}

@media (max-width: 768px) {
   .statute-two-column {
      column-count: 1;
      column-gap: 0;
      column-rule: none;
      text-align: left;
   }
}

.statute-section {
   break-inside: avoid;
   margin-bottom: var(--space-m);
}

.statute-runin {
   font-family: var(--zepu-cf4);
   font-size: var(--step--1);
   font-weight: 600;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: var(--ink);
   display: inline;
   margin-right: 0.5em;
}

.statute-runin::after {
   content: " — ";
   color: var(--brass);
}

.statute-section p { display: inline; }

.statute-break-block {
   display: block;
   margin-top: var(--space-xs);
   margin-bottom: var(--space-xs);
}

.statute-list {
   margin-block: var(--space-2xs);
   padding-left: 1.2em;
   list-style-type: square;
}

.statute-list li { margin-bottom: var(--space-3xs); }

.statute-callout-box {
   break-inside: avoid;
   background: var(--surface);
   border: 1px solid var(--line-brass);
   padding: var(--space-s);
   margin-block: var(--space-m);
   border-radius: var(--radius-xs);
   font-size: var(--step--1);
}


.legal-glance-shell {
   padding-block: var(--space-2xl) var(--space-3xl);
   max-width: var(--measure-reading);
   margin-inline: auto;
}

.glance-header { margin-bottom: var(--space-xl); }

.glance-title {
   font-family: var(--zepu-014);
   font-size: var(--zepu-334);
   color: var(--ink);
   margin-bottom: var(--space-xs);
}

.glance-lede {
   font-size: var(--zepu-ef3);
   color: var(--ink-muted);
}

.glance-panel {
   background: var(--surface);
   border: 1px solid var(--brass-dim);
   border-radius: var(--radius-xs);
   padding: var(--space-m);
   margin-bottom: var(--space-2xl);
   box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

.glance-panel-title {
   font-family: var(--zepu-cf4);
   font-size: var(--step--1);
   letter-spacing: 0.12em;
   text-transform: uppercase;
   color: var(--brass);
   border-bottom: 1px solid var(--line);
   padding-bottom: var(--space-2xs);
   margin-bottom: var(--space-s);
}

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

.glance-table tr { border-bottom: 1px solid var(--line); }

.glance-table tr:last-child { border-bottom: none; }

.glance-key {
   padding: var(--space-xs) var(--space-2xs);
   font-family: var(--zepu-cf4);
   font-size: var(--step--2);
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: var(--ink);
   width: 32%;
   vertical-align: top;
}

@media (max-width: 640px) {
   .glance-table,
   .glance-table tbody,
   .glance-table tr,
   .glance-table th,
   .glance-table td {
      display: block;
      width: 100%;
   }

   .glance-key {
      width: 100%;
      padding-bottom: 2px;
   }

   .glance-val {
      width: 100%;
      padding-top: 2px;
      padding-bottom: var(--space-xs);
   }
}

.glance-val {
   padding: var(--space-xs) var(--space-2xs);
   font-size: var(--step--1);
   color: var(--ink-muted);
   vertical-align: top;
}

.glance-val strong { color: var(--ink); }

.glance-prose {
   font-size: var(--zepu-ef3);
   line-height: 1.7;
   color: var(--ink);
}

.glance-prose h2 {
   font-family: var(--zepu-014);
   font-size: var(--zepu-343);
   color: var(--ink);
   margin-top: 1.8em;
   margin-bottom: 0.5em;
   border-bottom: 1px solid var(--line);
   padding-bottom: var(--space-3xs);
}

.glance-prose p {
   margin-bottom: 1.3em;
   color: var(--ink-muted);
}

.glance-prose p strong { color: var(--ink); }

.glance-prose ul {
   margin-block: 1em;
   padding-left: 1.4em;
}

.glance-prose li {
   margin-bottom: 0.5em;
   color: var(--ink-muted);
}

.glance-action-row {
   margin-top: var(--space-xl);
   padding-top: var(--space-m);
   border-top: 1px solid var(--line-brass);
   display: flex;
   align-items: center;
   justify-content: space-between;
   flex-wrap: wrap;
   gap: var(--space-m);
}


.legal-questions-shell {
   padding-block: var(--space-2xl) var(--space-3xl);
   max-width: var(--measure-reading);
   margin-inline: auto;
}

.questions-header {
   border-bottom: 1px solid var(--line-brass);
   padding-bottom: var(--space-m);
   margin-bottom: var(--space-2xl);
}

.questions-title {
   font-family: var(--zepu-014);
   font-size: var(--zepu-334);
   color: var(--ink);
   margin-bottom: var(--space-xs);
}

.questions-subtitle {
   font-size: var(--zepu-ef3);
   color: var(--ink-muted);
}

.questions-item { margin-bottom: var(--space-2xl); }

.question-heading {
   font-family: var(--zepu-014);
   font-size: var(--zepu-67f);
   font-weight: 500;
   line-height: 1.25;
   color: var(--ink);
   margin-bottom: var(--space-s);
   text-wrap: balance;
}

.question-answer {
   font-size: var(--zepu-ef3);
   line-height: 1.7;
   color: var(--ink-muted);
}

.question-answer p { margin-bottom: 1.2em; }

.question-answer p strong { color: var(--ink); }

.question-answer ul {
   margin-block: 1em;
   padding-left: 1.3em;
}

.question-answer li { margin-bottom: 0.45em; }


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

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

.accordion-trigger {
   width: 100%;
   display: flex;
   align-items: center;
   justify-content: space-between;
   padding: var(--space-s) 0;
   background: transparent;
   border: none;
   color: var(--ink);
   font-family: var(--zepu-014);
   font-size: var(--zepu-299);
   text-align: left;
   cursor: pointer;
   min-height: 48px;
   transition: color var(--dur-fast) var(--ease-warm);
}

.accordion-trigger:hover { color: var(--brass); }

.accordion-trigger:active { color: var(--brass-soft); }

.accordion-trigger:focus-visible {
   outline: var(--focus-ring);
   outline-offset: 4px;
}

.accordion-icon {
   width: 20px;
   height: 20px;
   flex-shrink: 0;
   transition: transform var(--dur-base) var(--ease-warm);
}

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

.accordion-content {
   padding-bottom: var(--space-m);
   font-size: var(--step--1);
   color: var(--ink-muted);
   line-height: 1.6;
}


.error-hero {
   min-height: 60vh;
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   text-align: center;
   padding-block: var(--space-3xl);
}

.error-code {
   font-family: var(--zepu-cf4);
   font-size: var(--zepu-3be);
   font-weight: 500;
   color: var(--garnet-glow);
   letter-spacing: -0.04em;
   line-height: 1;
   margin-bottom: var(--space-xs);
}

.error-title {
   font-family: var(--zepu-014);
   font-size: var(--zepu-67f);
   color: var(--ink);
   margin-bottom: var(--space-s);
}

.error-text {
   font-size: var(--zepu-ef3);
   color: var(--ink-muted);
   max-width: var(--measure-narrow);
   margin-bottom: var(--space-l);
}


@media (pointer: fine) and (prefers-reduced-motion: no-preference) {
   .btn,
   .nav-link,
   .chat-launcher,
   .accordion-trigger { will-change: transform; }

   .hover-preview-link {
      position: relative;
      color: var(--brass-soft);
      cursor: pointer;
      text-decoration: underline;
      text-underline-offset: 3px;
   }

   .hover-preview-float {
      position: fixed;
      pointer-events: none;
      z-index: 800;
      width: 220px;
      height: 140px;
      border-radius: var(--radius-xs);
      overflow: hidden;
      border: 1px solid var(--brass);
      box-shadow: 0 14px 30px rgba(0, 0, 0, 0.7);
      opacity: 0;
      transform: translate(-50%, -50%) scale(0.9);
      transition: opacity 0.2s var(--ease-warm), transform 0.2s var(--ease-warm);
   }

   .hover-preview-float img {
      width: 100%;
      height: 100%;
      object-fit: cover;
   }

   .hover-preview-float.is-visible {
      opacity: 1;
      transform: translate(-50%, -50%) scale(1);
   }
}
