/* Shared editorial layer for the two central conversion journeys. */
.conversion-page{background:#030d13}
.conversion-page header{position:absolute;inset:0 0 auto;z-index:30;width:100%;background:linear-gradient(180deg,rgba(2,8,12,.94),rgba(2,8,12,.28),transparent);border-bottom:0}
.conversion-page .hero{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:flex-end;background-image:linear-gradient(90deg,rgba(2,8,12,.96) 0%,rgba(2,8,12,.72) 42%,rgba(2,8,12,.2) 74%),linear-gradient(180deg,rgba(2,8,12,.12),rgba(2,8,12,.8)),url("hero-restaurants.webp");background-position:center;background-size:cover}
.conversion-page .hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 65%,#030d13)}
.conversion-page .hero .wrap{width:min(1240px,92vw);margin:auto;padding:clamp(128px,18vh,190px) 0 clamp(64px,9vh,100px)}
.conversion-page .hero h1{max-width:900px;font-size:clamp(4rem,7.2vw,7.4rem);line-height:.82;text-wrap:balance}
.conversion-page .hero p{max-width:650px;font-size:1rem;line-height:1.7;color:rgba(247,244,237,.82)}
.conversion-page .hero .actions,.conversion-page .hero .trust{margin-top:1.8rem}
.conversion-page .btn,.conversion-page button,.conversion-page input,.conversion-page select,.conversion-page textarea{font-size:max(.875rem,14px)}
.conversion-page .btn{min-height:52px;padding-inline:1.25rem;border-radius:3px;letter-spacing:.07em}
.contact-page .hero{min-height:72svh}
.reservation-page .hero{min-height:58svh}
.contact-page .routes,.contact-page .request-hub,.reservation-page .flow{position:relative;background:#041019}
.contact-page .card,.contact-page .help-card,.contact-page .request-card,.reservation-page .card{border-radius:3px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012));box-shadow:0 24px 70px rgba(0,0,0,.2)}
.contact-page .card span,.contact-page .help-card span,.contact-page .request-explain{font-size:.9rem;line-height:1.65}
.contact-page .card small,.contact-page .card em,.contact-page .request-field{font-size:.75rem}
.contact-page .request-field input,.contact-page .request-field select,.contact-page .request-field textarea,.reservation-page input,.reservation-page select,.reservation-page textarea{font-size:1rem;min-height:52px}
.reservation-page .flow{padding-top:54px}
.reservation-page .steps{margin-bottom:1.25rem}
.reservation-page .step small{font-size:.72rem}
.reservation-page .step b{font-size:.82rem}
.reservation-page label{font-size:.82rem}
.reservation-page .summary-row span,.reservation-page .summary-row b,.reservation-page .note{font-size:.85rem;line-height:1.55}
@media(max-width:700px){
 .conversion-page .hero{min-height:auto;background-image:linear-gradient(180deg,rgba(2,8,12,.38),rgba(2,8,12,.96) 76%),url("hero-restaurants.webp");background-position:center}
 .conversion-page .hero .wrap{padding:116px 0 52px}
 .conversion-page .hero h1{font-size:clamp(3.35rem,15vw,4.8rem);line-height:.84}
 .conversion-page .hero p{font-size:1rem}
 .conversion-page .hero .actions{display:grid;grid-template-columns:1fr}
 .conversion-page .hero .actions .btn{width:100%}
 .reservation-page .hero{min-height:52svh}
 .reservation-page .hero .trust{display:flex;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
 .reservation-page .hero .trust span{flex:0 0 auto}
 .contact-page .routes,.contact-page .request-hub,.reservation-page .flow{padding-top:48px}
}
@media(prefers-reduced-motion:reduce){.conversion-page *{scroll-behavior:auto!important}}

/* Clear, trustworthy completion state for prepared guest requests. */
.reservation-page .send-choice{border-color:rgba(222,182,92,.38);background:linear-gradient(145deg,rgba(222,182,92,.09),rgba(255,255,255,.025))}
.reservation-page .request-reference{display:flex;justify-content:space-between;gap:1rem;margin:1rem 0;padding:.8rem 0;border-top:1px solid rgba(255,255,255,.09);border-bottom:1px solid rgba(255,255,255,.09);color:#aeb9c0;font-size:.75rem;letter-spacing:.1em}
.reservation-page .request-reference strong{color:var(--gold);font-size:.82rem}
.reservation-page .send-actions{grid-template-columns:1fr 1fr 1fr}
.reservation-page .send-actions button{min-height:52px;font-size:.75rem;border-radius:3px}
.reservation-page .send-actions button:last-child{border-color:rgba(255,255,255,.2)}
@media(max-width:700px){.reservation-page .send-actions{grid-template-columns:1fr}.reservation-page .send-actions button{min-height:54px}}

/* Reservation conversion refinement: progressive clarity without extra JS or network weight. */
.reservation-page .steps{position:relative;isolation:isolate}
.reservation-page .step{position:relative;overflow:hidden;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease,transform .18s ease}
.reservation-page .step:after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--gold);transition:width .22s ease}
.reservation-page .step:first-child{border-color:rgba(222,182,92,.42);background:rgba(222,182,92,.07)}
.reservation-page .form-card:has(#restaurant:valid) .step:first-child{border-color:rgba(222,182,92,.28);background:rgba(255,255,255,.025)}
.reservation-page .form-card:has(#restaurant:valid) .step:first-child:after{width:100%}
.reservation-page .form-card:has(#restaurant:valid) .step:nth-child(2){border-color:rgba(222,182,92,.48);background:rgba(222,182,92,.08);box-shadow:0 0 0 1px rgba(222,182,92,.05) inset}
.reservation-page .form-card:has(#restaurant:valid):has(#date:valid):has(#time:valid):has(#people:valid) .step:nth-child(2){border-color:rgba(222,182,92,.28);background:rgba(255,255,255,.025);box-shadow:none}
.reservation-page .form-card:has(#restaurant:valid):has(#date:valid):has(#time:valid):has(#people:valid) .step:nth-child(2):after{width:100%}
.reservation-page .form-card:has(#restaurant:valid):has(#date:valid):has(#time:valid):has(#people:valid) .step:nth-child(3){border-color:rgba(222,182,92,.48);background:rgba(222,182,92,.08);box-shadow:0 0 0 1px rgba(222,182,92,.05) inset}
.reservation-page .form-card:has(input[name="name"]:valid):has(input[name="phone"]:valid):has(input[name="email"]:valid):has(#consent:checked) .step:nth-child(3){border-color:rgba(222,182,92,.28);background:rgba(255,255,255,.025);box-shadow:none}
.reservation-page .form-card:has(input[name="name"]:valid):has(input[name="phone"]:valid):has(input[name="email"]:valid):has(#consent:checked) .step:nth-child(3):after{width:100%}
.reservation-page .submit{transition:filter .18s ease,box-shadow .18s ease,transform .18s ease}
.reservation-page .form-card:has(#restaurant:valid):has(#date:valid):has(#time:valid):has(#people:valid):has(input[name="name"]:valid):has(input[name="phone"]:valid):has(input[name="email"]:valid):has(#consent:checked) .submit{box-shadow:0 10px 32px rgba(222,182,92,.22)}
@media(hover:hover) and (pointer:fine){.reservation-page .form-card:has(#restaurant:valid):has(#date:valid):has(#time:valid):has(#people:valid):has(input[name="name"]:valid):has(input[name="phone"]:valid):has(input[name="email"]:valid):has(#consent:checked) .submit:hover{transform:translateY(-1px)}}
@media(max-width:700px){
 .reservation-page .hero{min-height:46svh}
 .reservation-page .hero .wrap{padding-top:106px;padding-bottom:38px}
 .reservation-page .hero h1{font-size:clamp(3.05rem,14vw,4.35rem)}
 .reservation-page .hero p{line-height:1.58}
 .reservation-page .hero .trust{margin-top:1.15rem}
 .reservation-page .flow{padding-top:30px!important}
 .reservation-page .form-card{padding-top:14px}
 .reservation-page .steps{gap:5px;margin-bottom:1rem}
 .reservation-page .step{padding:8px 7px}
 .reservation-page .step b{font-size:.72rem}
}
@media(prefers-reduced-motion:reduce){.reservation-page .step,.reservation-page .step:after,.reservation-page .submit{transition:none!important}.reservation-page .submit:hover{transform:none!important}}
