
:root {
    --ground:#ded2bc;
    --surface:#d2c4aa;
    --surface-raised:#e5dac6;
    --surface-subtle:#ebe2d2;
    --surface-dim:#c8b99d;
    --surface-dark:#2b1e16;
    --surface-contrast:#1f1914;

    --ink:#1f1914;
    --ink-light:#2d251f;
    --ink-inverse:#f5efe6;
    --muted:#44372c;
    --muted-light:#5a4a3c;
    --muted-inverse:#eae2d5;

    --border:#c5b496;
    --border-strong:#a89575;
    --border-dim:#d4c6ac;
    --border-dark:#4a3428;
    --border-dark-strong:#5e4334;

    --accent:#872e12;
    --accent-hover:#a13715;
    --accent-active:#6b220b;
    --accent-subtle:rgba(135, 46, 18, 0.12);
    --accent-border:rgba(135, 46, 18, 0.35);
    --accent-dark:#3d271d;
    --accent-dark-hover:#4e3326;

    --focus-ring:rgba(135, 46, 18, 0.45);
    --focus-outline:#872e12;

    --cevo-5d1:'Cinzel', Georgia, serif;
    --cevo-7a3:'Spectral', 'Charter', Georgia, serif;
    --cevo-b63:'JetBrains Mono', Consolas, Monaco, monospace;

    --text-xs:clamp(0.75rem, 0.72rem + 0.15vw, 0.8125rem);
    --text-sm:clamp(0.84375rem, 0.8rem + 0.22vw, 0.9375rem);
    --text-base:clamp(1rem, 0.96rem + 0.25vw, 1.125rem);
    --text-md:clamp(1.15rem, 1.08rem + 0.35vw, 1.25rem);
    --text-lg:clamp(1.3rem, 1.22rem + 0.5vw, 1.55rem);
    --text-xl:clamp(1.6rem, 1.45rem + 0.8vw, 2rem);
    --text-2xl:clamp(2rem, 1.7rem + 1.5vw, 2.75rem);
    --text-3xl:clamp(2.5rem, 2.1rem + 2vw, 3.75rem);
    --text-display:clamp(2.85rem, 2.4rem + 3vw, 4.75rem);
    --text-stat:clamp(3.25rem, 2.7rem + 3.8vw, 5.5rem);

    --leading-tight:1.12;
    --leading-snug:1.25;
    --leading-normal:1.55;
    --leading-relaxed:1.75;

    --tracking-tight:-0.02em;
    --tracking-normal:0;
    --tracking-wide:0.04em;
    --tracking-wider:0.08em;

    --space-2xs:clamp(0.25rem, 0.22rem + 0.15vw, 0.375rem);
    --space-xs:clamp(0.5rem, 0.45rem + 0.25vw, 0.625rem);
    --space-sm:clamp(0.75rem, 0.7rem + 0.3vw, 1rem);
    --space-md:clamp(1.25rem, 1.1rem + 0.6vw, 1.625rem);
    --space-lg:clamp(2rem, 1.7rem + 1.2vw, 2.75rem);
    --space-xl:clamp(3rem, 2.4rem + 2vw, 4.25rem);
    --space-2xl:clamp(4.5rem, 3.5rem + 3.5vw, 6.5rem);

    --radius-xs:2px;
    --radius-sm:3px;
    --radius:4px;
    --radius-md:6px;

    --shadow-sm:0 1px 3px rgba(31, 25, 20, 0.08);
    --shadow-md:0 4px 12px rgba(31, 25, 20, 0.12);
    --shadow-lg:0 10px 24px rgba(31, 25, 20, 0.16);
    --shadow-dark:0 8px 24px rgba(0, 0, 0, 0.35);

    --container-max:1240px;
    --container-narrow:860px;
    --gutter:clamp(1rem, 4vw, 2.5rem);

    --header-height:4.5rem;
    --header-height-condensed:3.75rem;

    --duration-fast:140ms;
    --duration-normal:220ms;
    --duration-slow:380ms;
    --ease-standard:cubic-bezier(0.2, 0, 0, 1);
    --ease-out:cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in-out:cubic-bezier(0.65, 0, 0.35, 1);

    --z-base:1;
    --z-nav:50;
    --z-header:100;
    --z-modal:200;
    --z-chat:300;
    --z-banner:400;
    --z-skip:1000;
}

*,
*::before,
*::after {
    box-sizing:border-box;
}

* {
    margin:0;
    padding:0;
}

html {
    -webkit-text-size-adjust:100%;
    tab-size:4;
    scroll-behavior:smooth;
    background-color:var(--ground);
}

body {
    min-height:100vh;
    background-color:var(--ground);
    color:var(--ink);
    font-family:var(--cevo-7a3);
    font-size:var(--text-base);
    line-height:var(--leading-normal);
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    overflow-x:hidden;
}

#smooth-wrapper {
    position:relative;
    width:100%;
}

#smooth-content {
    position:relative;
    width:100%;
    min-height:100vh;
    display:flex;
    flex-direction:column;
}

main {
    display:block;
    flex:1 0 auto;
    position:relative;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family:var(--cevo-5d1);
    color:var(--ink);
    font-weight:700;
    line-height:var(--leading-tight);
    letter-spacing:var(--tracking-normal);
    text-wrap:balance;
    overflow-wrap:break-word;
}

h1 {
    font-size:var(--text-display);
    letter-spacing:-0.01em;

}

h2 {
    font-size:var(--text-2xl);
}

h3 {
    font-size:var(--text-xl);
}

h4 {
    font-size:var(--text-lg);
}

h5 {
    font-size:var(--text-md);
}

h6 {
    font-size:var(--text-base);
}

p {
    color:var(--ink);
    font-family:var(--cevo-7a3);
    font-size:var(--text-base);
    line-height:var(--leading-normal);
    max-width:68ch;
    overflow-wrap:break-word;
}

p.lead,
.prose-lead {
    font-size:var(--text-md);
    line-height:var(--leading-relaxed);
    color:var(--muted);
    max-width:72ch;
}

a {
    color:var(--accent);
    text-decoration:underline;
    text-decoration-thickness:1px;
    text-underline-offset:3px;
    transition:color var(--duration-fast) var(--ease-standard),
                            text-decoration-color var(--duration-fast) var(--ease-standard);
}

a:hover {
    color:var(--accent-hover);
    text-decoration-color:var(--accent-hover);
}

a:focus-visible {
    outline:2px solid var(--focus-outline);
    outline-offset:3px;
    border-radius:var(--radius-xs);
}

a:active {
    color:var(--accent-active);
}

.pricing-offer-band .pricing-factors-list li {
    color:#f5efe6 !important;
}

.pricing-factors-list li,
.bg-surface .pricing-factors-list li,
.bg-ground .pricing-factors-list li,
.configurator .pricing-factors-list li,
.contact-layout .pricing-factors-list li,
.contact-restated-info li,
.plain-list li {
    color:#1f1914;
}

/* Ensure contrast on flat backdrops */
.bg-surface .text-muted,
.bg-ground .text-muted,
.catalog-card__desc,
.catalog-card__basis,
.dish-row__desc,
.takeout-step__text,
.combo-card__desc,
.scratch-card__text,
.accessibility-card__body,
.dsar-step-card__body,
.location-info-label,
.clause-number {
    color:#382b21;
}

.spec-box__note,
.spec-box__label {
    color:#382b21;
}

ul,
ol {
    list-style:none;
}

img,
picture,
svg {
    display:block;
    max-width:100%;
    height:auto;
}

img {
    object-fit:cover;
}

button,
input,
select,
textarea {
    font:inherit;
    color:inherit;
}

button {
    cursor:pointer;
    background:none;
    border:none;
}

table {
    border-collapse:collapse;
    border-spacing:0;
    width:100%;
}

code,
kbd,
samp,
pre {
    font-family:var(--cevo-b63);
    font-size:var(--text-sm);
}

hr {
    border:none;
    border-top:1px solid var(--border);
    margin:var(--space-lg) 0;
}

::selection {

    background-color:var(--accent);
    color:var(--ink-inverse);
}

.skip-link {
    position:absolute;
    top:0.75rem;
    left:0.75rem;
    z-index:var(--z-skip);
    padding:0.75rem 1.25rem;
    min-height:44px;
    background-color:var(--surface-dark);
    color:var(--ink-inverse);
    font-family:var(--cevo-b63);
    font-size:var(--text-sm);
    font-weight:500;
    text-decoration:none;
    border:1px solid var(--accent);
    border-radius:var(--radius-sm);
    box-shadow:var(--shadow-lg);
    transform:translateY(-160%);
    transition:transform var(--duration-fast) var(--ease-standard),
                            background-color var(--duration-fast) var(--ease-standard),
                            color var(--duration-fast) var(--ease-standard);
}

.skip-link:focus {
    transform:translateY(0);
    outline:2px solid var(--focus-outline);
    outline-offset:2px;
}

.skip-link:hover {
    background-color:var(--accent);
    color:#ffffff;
}

.skip-link:active {
    background-color:var(--accent-active);
}

.site-container {
    width:100%;
    max-width:var(--container-max);
    margin-left:auto;
    margin-right:auto;
    padding-left:var(--gutter);
    padding-right:var(--gutter);
    min-width:0;
    box-sizing:border-box;
}

.site-container--narrow {
    max-width:var(--container-narrow);
}

.flow > * + * {
    margin-top:var(--space-md);
}

.flow-sm > * + * {
    margin-top:var(--space-sm);
}

.flow-lg > * + * {
    margin-top:var(--space-lg);
}

.flow-xl > * + * {
    margin-top:var(--space-xl);
}

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

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

.stack-lg {

    display:flex;
    flex-direction:column;
    gap:var(--space-lg);
}

.grid {
    display:grid;
    gap:var(--space-md);
}

.grid-cols-2 {
    grid-template-columns:repeat(2, minmax(0, 1fr));
}

.grid-cols-3 {
    grid-template-columns:repeat(3, minmax(0, 1fr));
}

.grid-cols-4 {
    grid-template-columns:repeat(4, minmax(0, 1fr));
}

@media (max-width: 900px) {
    .grid-cols-3,
    .grid-cols-4 {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

.rail-item h3 {
    min-width:0;
    width:100%;
    white-space:normal;
    overflow-wrap:break-word;
}

@media (max-width: 640px) {
    .grid-cols-2,
    .grid-cols-3,
    .grid-cols-4 {
        grid-template-columns:1fr;
    }
}

.visually-hidden {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0, 0, 0, 0);
    white-space:nowrap;
    border:0;
}

.icon {
    display:inline-block;
    width:1.25em;
    height:1.25em;
    vertical-align:-0.2em;
    stroke-width:2;
    stroke:currentColor;
    fill:none;
    flex-shrink:0;
}

.font-display {
    font-family:var(--cevo-5d1);
}

.font-body {
    font-family:var(--cevo-7a3);
}

.font-mono {
    font-family:var(--cevo-b63);
}

.text-muted {
    color:var(--muted);
}

.text-accent {
    color:var(--accent);
}

.text-ink {
    color:var(--ink);
}

.bg-ground {
    background-color:var(--ground);
}

.bg-surface {
    background-color:var(--surface);
}

.bg-dark {
    background-color:var(--accent-dark);
    color:var(--ink-inverse);
}

.bg-dark h1,
.bg-dark h2,
.bg-dark h3,
.bg-dark h4,
.bg-dark p {
    color:var(--ink-inverse);
}

.bg-dark .text-muted {
    color:var(--muted-inverse);
}

.bg-dark hr {
    border-top-color:var(--border-dark);
}

/* Light background safety for muted texts, tags and forms */
.legal-margin-note-inline,
.legal-margin-note-inline strong {
    color:var(--accent) !important;
}

.legal-margin-note-inline strong {
    color:#6b220b !important;
}

.dsar-step-card__body,
.accessibility-card__body,
.form-label,
h3.form-label {
    color:var(--ink) !important;
}

.summary-disclaimer,
.summary-note {
    color:#f5efe6 !important;
}

.summary-metric__label {
    color:#f5efe6 !important;
}

.summary-metric__val,
[data-tool-output],
[data-tool-per-person],
[data-tool-time] {
    color:#ffa585 !important;
}

[data-tool-breakdown] li {
    color:#f5efe6 !important;
    border-bottom-color:var(--border-dark) !important;
}

[data-tool-breakdown] li span {
    color:#f5efe6 !important;
}

[data-tool-breakdown] li span:last-child {
    color:#ffa585 !important;
}

.table-wrapper {
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    margin:var(--space-md) 0;
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
    background-color:var(--surface);
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration:0.01ms !important;
        animation-iteration-count:1 !important;
        transition-duration:0.01ms !important;
        scroll-behavior:auto !important;
    }
}

@media print {
    body {
        background:#ffffff;
        color:#000000;
    }

    .skip-link,
    .site-header,
    .site-footer,
    [data-ac37e9],
    .chat-launcher,
    .chat-panel {
        display:none !important;
    }

    #smooth-wrapper,
    #smooth-content {
        overflow:visible !important;
        min-height:auto !important;
    }
}
