:root {
    --bg: #070605;
    --bg-soft: #120b07;
    --panel: rgba(17, 12, 9, 0.94);
    --panel-2: #17100c;
    --gold: #f2aa24;
    --gold-soft: #ffc75a;
    --cream: #fff7ed;
    --text: #f8f1e9;
    --muted: #b9ada2;
    --line: rgba(242, 170, 36, 0.25);
    --line-strong: rgba(242, 170, 36, 0.55);
    --success: #58d68d;
    --danger: #ff6b6b;
    --shadow: 0 28px 90px rgba(0, 0, 0, 0.45);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    min-height: 100vh;
    color: var(--text);
    background:
        radial-gradient(circle at 12% 10%, rgba(149, 58, 8, 0.16), transparent 34%),
        radial-gradient(circle at 85% 25%, rgba(242, 170, 36, 0.08), transparent 28%),
        linear-gradient(180deg, #080604 0%, #120a06 46%, #060504 100%);
    font-family: "Montserrat", sans-serif;
    overflow-x: hidden;
}
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
[hidden] { display: none !important; }

.rental-header {
    position: sticky;
    top: 0;
    z-index: 30;
    min-height: 84px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 18px;
    padding: 10px clamp(18px, 4vw, 64px);
    background: rgba(5, 4, 3, 0.93);
    border-bottom: 1px solid var(--line);
    backdrop-filter: blur(16px);
}
.rental-brand img { width: 86px; height: 64px; object-fit: contain; display: block; }
.rental-header-copy { display: flex; flex-direction: column; gap: 3px; }
.rental-header-copy span { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .16em; }
.rental-header-copy strong { font-family: "Cinzel", serif; font-size: 1.1rem; }
.back-home {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    border: 1px solid var(--line-strong);
    border-radius: 999px;
    padding: 11px 16px;
    color: var(--gold-soft);
    font-weight: 700;
    font-size: .86rem;
}

.rental-main { width: min(1180px, calc(100% - 32px)); margin: 0 auto; padding: 56px 0 80px; }
.rental-hero { max-width: 780px; margin-bottom: 34px; }
.eyebrow { color: var(--gold); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .16em; }
.rental-hero h1, .step-heading h2, .success-panel h2 {
    font-family: "Cinzel", serif;
    margin: 9px 0 14px;
    line-height: 1.08;
}
.rental-hero h1 { font-size: clamp(2.1rem, 5vw, 4.3rem); }
.rental-hero p { color: var(--muted); line-height: 1.75; max-width: 720px; }

.stepper {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 18px;
}
.step {
    border: 1px solid rgba(255,255,255,.07);
    background: rgba(255,255,255,.025);
    color: #83786f;
    border-radius: 16px;
    min-height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    cursor: default;
}
.step span { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: #201813; font-weight: 800; }
.step strong { font-size: .84rem; }
.step.is-complete { color: var(--cream); border-color: rgba(242,170,36,.28); }
.step.is-complete span { background: rgba(242,170,36,.16); color: var(--gold); }
.step.is-active { color: #120b06; border-color: var(--gold); background: linear-gradient(135deg, var(--gold-soft), var(--gold)); }
.step.is-active span { background: #090604; color: var(--gold-soft); }

.wizard-card {
    background: linear-gradient(180deg, rgba(15,10,7,.96), rgba(9,7,5,.98));
    border: 1px solid var(--line);
    border-radius: 26px;
    box-shadow: var(--shadow);
    overflow: hidden;
}
.wizard-step { padding: clamp(22px, 4vw, 52px); }
.step-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 30px;
}
.step-heading h2 { font-size: clamp(1.7rem, 3vw, 2.6rem); }
.live-label { color: var(--muted); font-size: .78rem; display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid rgba(255,255,255,.08); border-radius: 999px; }
.live-label i { color: var(--success); }

.wizard-status { margin: 20px 20px 0; padding: 13px 16px; border-radius: 12px; background: rgba(255,107,107,.1); border: 1px solid rgba(255,107,107,.3); color: #ffb1b1; }
.wizard-status.success { color: #baf7d1; background: rgba(88,214,141,.08); border-color: rgba(88,214,141,.3); }

.oven-picker { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.loading-card { grid-column: 1 / -1; padding: 40px; text-align: center; color: var(--muted); }
.oven-choice {
    position: relative;
    cursor: pointer;
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.025);
    border-radius: 18px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    min-height: 230px;
    transition: .22s ease;
}
.oven-choice:hover { transform: translateY(-3px); border-color: rgba(242,170,36,.45); }
.oven-choice.is-selected { border-color: var(--gold); box-shadow: 0 0 0 2px rgba(242,170,36,.12), 0 18px 45px rgba(0,0,0,.25); background: rgba(242,170,36,.06); }
.oven-choice-radio { position: absolute; opacity: 0; pointer-events: none; }
.oven-choice-top { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.oven-choice-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; background: rgba(242,170,36,.1); color: var(--gold); font-size: 1.1rem; }
.oven-choice-price { color: var(--gold-soft); font-weight: 800; }
.oven-choice h3 { font-family: "Cinzel", serif; font-size: 1.08rem; line-height: 1.35; margin: 22px 0 10px; }
.oven-choice p { margin: 0; color: var(--muted); font-size: .87rem; line-height: 1.55; }
.oven-choice-meta { margin-top: auto; padding-top: 18px; display: flex; justify-content: space-between; color: #cfc2b7; font-size: .78rem; }

.step-actions { margin-top: 28px; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.step-actions.align-end { justify-content: flex-end; }
.primary-button, .secondary-button, .whatsapp-button, .text-button {
    border: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border-radius: 12px;
    font-weight: 800;
    text-decoration: none;
    transition: .2s ease;
}
.primary-button { padding: 15px 22px; background: linear-gradient(135deg, var(--gold-soft), var(--gold)); color: #0d0905; box-shadow: 0 12px 30px rgba(242,170,36,.18); }
.primary-button:hover:not(:disabled), .secondary-button:hover, .whatsapp-button:hover { transform: translateY(-2px); }
.primary-button:disabled { opacity: .38; cursor: not-allowed; }
.secondary-button { padding: 14px 20px; color: var(--gold-soft); background: transparent; border: 1px solid var(--line-strong); }
.whatsapp-button { padding: 15px 22px; background: #25d366; color: #06180c; }
.text-button { background: transparent; color: var(--gold-soft); padding: 8px 4px; }

.rental-form { display: grid; gap: 20px; }
.form-section-title { display: flex; align-items: center; gap: 10px; color: var(--gold-soft); font-weight: 800; margin-top: 8px; }
.form-grid { display: grid; gap: 14px; }
.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.address-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.address-grid .span-2 { grid-column: span 2; }
.rental-form label, .signature-panel label { display: grid; gap: 8px; min-width: 0; }
.form-grid > *, .delivery-options > * { min-width: 0; }
.rental-form label > span, .signature-panel label > span { color: #ddd2c8; font-size: .8rem; font-weight: 700; }
.rental-form input, .rental-form textarea, .signature-panel input {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    border: 1px solid rgba(255,255,255,.11);
    background: rgba(255,255,255,.035);
    color: var(--text);
    border-radius: 11px;
    padding: 13px 14px;
    outline: none;
}
.rental-form input:focus, .rental-form textarea:focus, .signature-panel input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(242,170,36,.08); }
.full-width { width: 100%; }
.delivery-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.choice-card { cursor: pointer; }
.choice-card input { position: absolute; opacity: 0; width: 1px; height: 1px; min-width: 0; padding: 0; margin: 0; pointer-events: none; }
.choice-card > span { min-height: 105px; border: 1px solid rgba(255,255,255,.09); border-radius: 15px; padding: 18px; display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: start; background: rgba(255,255,255,.025); }
.choice-card i { color: var(--gold); grid-row: 1 / 3; margin-top: 3px; }
.choice-card strong { color: var(--cream); }
.choice-card small { color: var(--muted); margin-top: 5px; line-height: 1.45; }
.choice-card input:checked + span { border-color: var(--gold); background: rgba(242,170,36,.065); box-shadow: inset 0 0 0 1px rgba(242,170,36,.12); }

.price-summary { border: 1px solid var(--line); background: linear-gradient(135deg, rgba(242,170,36,.05), rgba(255,255,255,.018)); border-radius: 18px; padding: 20px; display: grid; gap: 12px; }
.price-summary > div { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; border-bottom: 1px solid rgba(255,255,255,.06); padding-bottom: 11px; }
.price-summary > div:last-child { border-bottom: 0; padding-bottom: 0; }
.price-summary span { color: var(--muted); font-size: .84rem; }
.price-summary strong { text-align: right; min-width: 0; overflow-wrap: anywhere; }
.price-total strong { color: var(--gold-soft); font-size: 1.45rem; }

.contract-notice { display: flex; gap: 12px; padding: 16px; border-radius: 14px; border: 1px solid rgba(242,170,36,.2); background: rgba(242,170,36,.05); color: #d9cbbf; line-height: 1.55; margin-bottom: 20px; }
.contract-notice i { color: var(--gold); margin-top: 3px; }
.contract-notice p { margin: 0; }
.contract-paper {
    background: #fffdfa;
    color: #17120f;
    padding: clamp(22px, 5vw, 58px);
    border-radius: 16px;
    max-height: 720px;
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(0,0,0,.38);
    line-height: 1.58;
    font-family: Arial, sans-serif;
}
.contract-paper h2 { text-align: center; font-size: 1.25rem; margin: 0 0 24px; }
.contract-paper h3 { font-size: .92rem; margin: 20px 0 7px; text-transform: uppercase; }
.contract-paper p { margin: 7px 0; font-size: .9rem; }
.contract-paper .contract-parties { border: 1px solid #d8d0c8; border-radius: 8px; padding: 12px; margin-bottom: 20px; }
.contract-paper .contract-total { border: 1px solid #c49331; padding: 12px; margin: 18px 0; background: #fff8e8; }
.contract-paper .contract-signatures { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; margin-top: 40px; }
.contract-paper .contract-signature-line { border-top: 1px solid #222; padding-top: 8px; text-align: center; font-size: .82rem; }

.signature-panel { margin-top: 22px; padding: 22px; border: 1px solid var(--line); border-radius: 17px; background: rgba(255,255,255,.022); display: grid; gap: 16px; }
.signature-panel h3 { font-family: "Cinzel", serif; margin: 0; }
.accept-contract { display: flex !important; align-items: flex-start; grid-template-columns: auto 1fr; gap: 11px !important; cursor: pointer; }
.accept-contract input { width: 19px; height: 19px; margin-top: 1px; accent-color: var(--gold); }
.signature-canvas-wrap { border: 1px solid rgba(255,255,255,.1); border-radius: 13px; overflow: hidden; background: #fff; }
.signature-canvas-header { min-height: 44px; padding: 9px 12px; background: #16110e; color: #d9cec5; display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: .76rem; }
#signatureCanvas { display: block; width: 100%; height: 190px; touch-action: none; cursor: crosshair; background: #fff; }
.signature-meta { margin: 0; color: var(--muted); font-size: .78rem; }

.success-panel { text-align: center; max-width: 760px; margin: 0 auto; padding: 20px 0; }
.success-icon { width: 82px; height: 82px; display: grid; place-items: center; border-radius: 50%; margin: 0 auto 18px; background: rgba(88,214,141,.1); color: var(--success); font-size: 2.6rem; border: 1px solid rgba(88,214,141,.3); }
.success-panel p { color: var(--muted); line-height: 1.7; }
.protocol-box { margin: 22px auto; max-width: 420px; border: 1px solid var(--line); border-radius: 14px; padding: 15px; display: grid; gap: 5px; }
.protocol-box span { color: var(--muted); font-size: .75rem; text-transform: uppercase; letter-spacing: .12em; }
.protocol-box strong { color: var(--gold-soft); font-size: 1.2rem; letter-spacing: .06em; }
.success-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 24px; }
.share-help { margin-top: 18px; color: var(--muted); font-size: .82rem; line-height: 1.6; }
.back-site-final { display: inline-flex; gap: 8px; margin-top: 22px; color: var(--gold-soft); text-decoration: none; font-weight: 700; }

.rental-footer { border-top: 1px solid var(--line); padding: 24px 18px 20px; text-align: center; color: #8f837a; font-size: .78rem; }
.rental-footer p { margin: 0; }
.gustavo-credit { display: inline-block; margin-top: 7px; font-size: .62rem; letter-spacing: .08em; opacity: .34; color: #bdb1a8; }
.privacy-consent { display:flex; gap:12px; align-items:flex-start; padding:14px 16px; border:1px solid rgba(209,151,25,.22); border-radius:14px; background:rgba(255,255,255,.025); color:#c9bdb4; font-size:.84rem; line-height:1.55; }
.privacy-consent input { margin-top:4px; width:18px; height:18px; accent-color:#d59a22; flex:0 0 auto; }
.privacy-consent a, .rental-footer a { color:#d9a631; text-decoration:none; }
.privacy-consent a:hover, .rental-footer a:hover { text-decoration:underline; }


@media (max-width: 900px) {
    .rental-header { grid-template-columns: auto 1fr auto; padding-inline: 16px; }
    .rental-brand img { width: 70px; height: 52px; }
    .back-home span { display: none; }
    .back-home { width: 42px; height: 42px; padding: 0; border-radius: 50%; }
    .rental-main { width: min(100% - 24px, 1180px); padding-top: 36px; }
    .stepper { gap: 6px; }
    .step { min-height: 62px; flex-direction: column; gap: 4px; }
    .step strong { font-size: .67rem; }
    .step span { width: 25px; height: 25px; font-size: .74rem; }
    .oven-picker { grid-template-columns: repeat(2, 1fr); }
    .address-grid { grid-template-columns: repeat(2, 1fr); }
    .address-grid .span-2 { grid-column: span 2; }
    .success-actions { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .rental-header-copy span { display: none; }
    .rental-header-copy strong { font-size: .92rem; }
    .rental-main { width: calc(100% - 16px); padding-bottom: 50px; }
    .rental-hero { padding: 0 8px; }
    .rental-hero h1 { font-size: 2.25rem; }
    .wizard-card { border-radius: 18px; }
    .wizard-step { padding: 20px 14px 24px; }
    .step-heading { flex-direction: column; margin-bottom: 22px; }
    .contract-heading { gap: 8px; }
    .live-label { align-self: flex-start; }
    .oven-picker, .two-columns, .address-grid, .delivery-options { grid-template-columns: minmax(0, 1fr); }
    .address-grid .span-2 { grid-column: auto; }
    .oven-choice { min-height: 205px; }
    .step-actions { display: grid; grid-template-columns: 1fr; }
    .step-actions .primary-button, .step-actions .secondary-button { width: 100%; min-height: 50px; }
    .step-actions.align-end { display: block; }
    .step-actions.align-end .primary-button { width: 100%; }
    .price-summary > div { align-items: flex-start; }
    .contract-paper { padding: 22px 16px; max-height: 610px; }
    .contract-paper p { font-size: .83rem; }
    .contract-paper .contract-signatures { grid-template-columns: 1fr; gap: 32px; }
    #signatureCanvas { height: 165px; }
    .signature-canvas-header { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 390px) {
    .stepper .step strong { font-size: .58rem; }
    .stepper { gap: 4px; }
    .step { border-radius: 12px; }
}


/* Disponibilidade automática */
.availability-check {
    margin: 14px 0 24px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid rgba(217,154,37,.28);
    border-radius: 14px;
    background: rgba(217,154,37,.06);
    color: #d9d0c5;
    line-height: 1.55;
}
.availability-check i { color: #d99a25; margin-top: 3px; }
.availability-check.is-available { border-color: rgba(46,180,112,.42); background: rgba(46,180,112,.08); }
.availability-check.is-available i, .availability-check.is-available strong { color: #65d69b; }
.availability-check.is-unavailable { border-color: rgba(224,85,85,.5); background: rgba(224,85,85,.08); }
.availability-check.is-unavailable i, .availability-check.is-unavailable strong { color: #ff8c8c; }
.availability-check.is-warning { border-color: rgba(255,190,75,.45); background: rgba(255,190,75,.08); }
@media (max-width: 640px) {
    .availability-check { font-size: .86rem; padding: 12px 13px; }
}
