:root {
    --tmc-navy: #0d2b52;
    --tmc-rust: #e7664f;
    --tmc-cream: #f8f1e7;
    --tmc-soft: #fffaf4;
    --tmc-gold: #c59b4b;
    --tmc-green: #718a78;
    --tmc-charcoal: #262626;
    --tmc-border: rgba(13,43,82,.14);
    --tmc-shadow: 0 18px 48px rgba(13,43,82,.10);
}

.tmc-catering-page,
.tmc-home-catering {
    color: var(--tmc-charcoal);
    font-family: inherit;
}

.tmc-catering-page *,
.tmc-home-catering * { box-sizing: border-box; }

.tmc-catering-shell {
    width: min(1180px, calc(100% - 40px));
    margin-inline: auto;
}

.tmc-catering-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 86% 22%, rgba(197,155,75,.17), transparent 26%),
        radial-gradient(circle at 8% 85%, rgba(231,102,79,.12), transparent 26%),
        var(--tmc-cream);
    padding: clamp(72px, 9vw, 128px) 0;
}

.tmc-catering-hero:after {
    content: "";
    position: absolute;
    inset: auto -8% -145px auto;
    width: 390px;
    height: 390px;
    border: 2px solid rgba(13,43,82,.08);
    border-radius: 50%;
}

.tmc-catering-hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0,1.15fr) minmax(330px,.85fr);
    align-items: center;
    gap: clamp(42px, 8vw, 100px);
}

.tmc-eyebrow {
    margin: 0 0 12px;
    color: var(--tmc-rust);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .18em;
    line-height: 1.4;
    text-transform: uppercase;
}

.tmc-catering-page h1,
.tmc-catering-page h2,
.tmc-catering-page h3,
.tmc-home-catering h2 {
    color: var(--tmc-navy);
    font-family: inherit;
    line-height: 1.08;
}

.tmc-catering-page h1 {
    max-width: 760px;
    margin: 0;
    font-size: clamp(3rem, 6vw, 5.6rem);
    letter-spacing: -.045em;
}

.tmc-catering-lead {
    max-width: 680px;
    margin: 26px 0 0;
    font-size: clamp(1.08rem, 1.9vw, 1.32rem);
    line-height: 1.7;
}

.tmc-catering-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 34px;
}

.tmc-button {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    padding: 13px 24px;
    border: 2px solid transparent;
    border-radius: 999px;
    font-size: .93rem;
    font-weight: 800;
    letter-spacing: .025em;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.tmc-button:hover { transform: translateY(-2px); }
.tmc-button:focus-visible { outline: 3px solid var(--tmc-gold); outline-offset: 3px; }
.tmc-button-primary { color: #fff !important; background: var(--tmc-rust); box-shadow: 0 10px 24px rgba(231,102,79,.24); }
.tmc-button-primary:hover { color: #fff !important; background: #d95640; }
.tmc-button-secondary { color: var(--tmc-navy) !important; border-color: var(--tmc-navy); background: transparent; }
.tmc-button-secondary:hover { color: #fff !important; background: var(--tmc-navy); }
.tmc-button-cream { color: var(--tmc-navy) !important; background: var(--tmc-cream); box-shadow: 0 10px 24px rgba(0,0,0,.12); }

.tmc-catering-hero-art {
    position: relative;
    min-height: 410px;
    display: grid;
    place-items: center;
}

.tmc-marshmallow-stack { position: relative; width: 310px; height: 300px; transform: rotate(-2deg); }
.tmc-marshmallow-stack span {
    position: absolute;
    display: block;
    width: 178px;
    height: 156px;
    border: 4px solid var(--tmc-navy);
    border-radius: 27px 27px 38px 38px;
    background:
        radial-gradient(circle at 25% 28%, rgba(231,102,79,.55) 0 2px, transparent 3px),
        radial-gradient(circle at 64% 56%, rgba(197,155,75,.48) 0 2px, transparent 3px),
        linear-gradient(145deg,#fff 0%,#fff8f2 55%,#f2ddcf 100%);
    background-size: 31px 31px, 37px 37px, auto;
    box-shadow: 0 22px 35px rgba(13,43,82,.16);
}
.tmc-marshmallow-stack span:nth-child(1) { left: 4px; bottom: 10px; transform: rotate(-9deg); }
.tmc-marshmallow-stack span:nth-child(2) { right: 0; bottom: 3px; transform: rotate(8deg); }
.tmc-marshmallow-stack span:nth-child(3) { left: 66px; top: 2px; z-index: 2; transform: rotate(1deg); }
.tmc-art-star { position: absolute; color: var(--tmc-gold); font-size: 32px; }
.tmc-art-star-one { right: 3%; top: 9%; transform: rotate(12deg); }
.tmc-art-star-two { left: 0; bottom: 8%; color: var(--tmc-rust); transform: rotate(-10deg); }

.tmc-catering-section { padding: clamp(70px, 8vw, 112px) 0; background: #fff; }
.tmc-catering-section:nth-of-type(odd) { background: var(--tmc-soft); }
.tmc-section-heading { max-width: 760px; margin: 0 auto 46px; text-align: center; }
.tmc-section-heading h2,
.tmc-options-grid h2,
.tmc-form-intro h2 { margin: 0; font-size: clamp(2.25rem, 4vw, 3.75rem); letter-spacing: -.035em; }
.tmc-section-heading > p:last-child,
.tmc-options-grid > div > p:last-child,
.tmc-form-intro > p { margin: 19px 0 0; font-size: 1.08rem; line-height: 1.75; }

.tmc-occasion-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.tmc-occasion-card {
    position: relative;
    min-height: 215px;
    padding: 31px;
    overflow: hidden;
    border: 1px solid var(--tmc-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(13,43,82,.06);
}
.tmc-occasion-card:after { content:""; position:absolute; width:100px; height:100px; right:-38px; bottom:-44px; border-radius:50%; background:rgba(231,102,79,.09); }
.tmc-card-star { color: var(--tmc-gold); font-size: 24px; }
.tmc-occasion-card h3 { margin: 20px 0 9px; font-size: 1.42rem; }
.tmc-occasion-card p { margin: 0; line-height: 1.65; }

.tmc-catering-options-section { background: var(--tmc-navy) !important; color: #fff; }
.tmc-catering-options-section h2 { color: #fff; }
.tmc-catering-options-section .tmc-eyebrow { color: #f3b1a2; }
.tmc-options-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:clamp(50px,8vw,110px); }
.tmc-option-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; margin:0; padding:0; list-style:none; }
.tmc-option-list li { position:relative; min-height:74px; display:flex; align-items:center; padding:18px 18px 18px 54px; border:1px solid rgba(255,255,255,.16); border-radius:16px; background:rgba(255,255,255,.07); line-height:1.45; }
.tmc-option-list li:before { content:"✓"; position:absolute; left:20px; color:#f3b1a2; font-weight:900; }

.tmc-steps-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; counter-reset:steps; }
.tmc-steps-grid article { text-align:center; padding:22px; }
.tmc-steps-grid span { width:58px; height:58px; display:grid; place-items:center; margin:0 auto 24px; border-radius:50%; color:#fff; background:var(--tmc-rust); font-size:1.25rem; font-weight:900; box-shadow:0 9px 20px rgba(231,102,79,.24); }
.tmc-steps-grid h3 { margin:0 0 12px; font-size:1.35rem; }
.tmc-steps-grid p { margin:0; line-height:1.7; }

.tmc-form-section { background:var(--tmc-cream) !important; }
.tmc-form-layout { display:grid; grid-template-columns:minmax(280px,.65fr) minmax(0,1.35fr); gap:clamp(38px,7vw,90px); align-items:start; }
.tmc-form-intro { position:sticky; top:120px; }
.tmc-form-note { margin-top:27px; padding:20px; border-left:4px solid var(--tmc-gold); border-radius:0 12px 12px 0; background:rgba(255,255,255,.72); line-height:1.65; }
.tmc-form-card { padding:clamp(25px,4vw,48px); border:1px solid var(--tmc-border); border-radius:25px; background:#fff; box-shadow:var(--tmc-shadow); }
.tmc-field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.tmc-field,
.tmc-field-full { display:flex; flex-direction:column; gap:8px; }
.tmc-field label,
.tmc-field-full label,
.tmc-fieldset legend { color:var(--tmc-navy); font-size:.91rem; font-weight:800; }
.tmc-catering-form input[type="text"],
.tmc-catering-form input[type="email"],
.tmc-catering-form input[type="tel"],
.tmc-catering-form input[type="date"],
.tmc-catering-form input[type="number"],
.tmc-catering-form select,
.tmc-catering-form textarea {
    width:100%;
    min-height:50px;
    margin:0;
    padding:12px 14px;
    border:1px solid #c9ced6;
    border-radius:10px;
    color:var(--tmc-charcoal);
    background:#fff;
    font:inherit;
    line-height:1.45;
}
.tmc-catering-form textarea { min-height:145px; resize:vertical; }
.tmc-catering-form input:focus,
.tmc-catering-form select:focus,
.tmc-catering-form textarea:focus { border-color:var(--tmc-rust); outline:3px solid rgba(231,102,79,.16); }
.tmc-fieldset { margin:30px 0; padding:0; border:0; }
.tmc-fieldset legend { margin-bottom:13px; }
.tmc-checkbox-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.tmc-checkbox-grid label { display:flex; align-items:flex-start; gap:9px; padding:10px 12px; border:1px solid var(--tmc-border); border-radius:10px; line-height:1.4; cursor:pointer; }
.tmc-checkbox-grid input,
.tmc-consent input { width:18px; height:18px; flex:0 0 auto; margin-top:1px; accent-color:var(--tmc-rust); }
.tmc-consent { display:flex; align-items:flex-start; gap:10px; margin:24px 0; line-height:1.5; }
.tmc-submit { width:100%; border:0; cursor:pointer; }
.tmc-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.tmc-form-message { margin-bottom:24px; padding:22px; border-radius:14px; }
.tmc-form-message h3 { margin:0 0 6px; font-size:1.3rem; }
.tmc-form-message p { margin:0; line-height:1.6; }
.tmc-form-success { border:1px solid #9fc7aa; background:#edf8ef; }
.tmc-form-error { border:1px solid #e6aaa0; background:#fff0ed; }

.tmc-home-catering { padding:72px 0; background:var(--tmc-navy); color:#fff; }
.tmc-home-catering .tmc-eyebrow { color:#f3b1a2; }
.tmc-home-catering h2 { margin:0; color:#fff; font-size:clamp(2.2rem,4vw,3.6rem); letter-spacing:-.035em; }
.tmc-home-catering p:not(.tmc-eyebrow) { max-width:780px; margin:15px 0 0; font-size:1.08rem; line-height:1.7; }
.tmc-home-catering-inner { display:flex; align-items:center; justify-content:space-between; gap:45px; }

@media (max-width: 900px) {
    .tmc-catering-hero-grid,
    .tmc-options-grid,
    .tmc-form-layout { grid-template-columns:1fr; }
    .tmc-catering-hero-art { min-height:330px; }
    .tmc-form-intro { position:static; }
    .tmc-occasion-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .tmc-home-catering-inner { align-items:flex-start; flex-direction:column; }
}

@media (max-width: 640px) {
    .tmc-catering-shell { width:min(100% - 26px,1180px); }
    .tmc-catering-hero { padding:62px 0 55px; }
    .tmc-catering-page h1 { font-size:clamp(2.65rem,14vw,4rem); }
    .tmc-catering-hero-art { min-height:275px; }
    .tmc-marshmallow-stack { width:270px; height:250px; transform:scale(.88); }
    .tmc-occasion-grid,
    .tmc-steps-grid,
    .tmc-field-grid,
    .tmc-checkbox-grid,
    .tmc-option-list { grid-template-columns:1fr; }
    .tmc-catering-actions { align-items:stretch; flex-direction:column; }
    .tmc-button { width:100%; }
    .tmc-occasion-card { min-height:auto; }
    .tmc-form-card { border-radius:18px; }
    .tmc-home-catering { padding:58px 0; }
}

@media (prefers-reduced-motion: reduce) {
    .tmc-button { transition:none; }
}
