body.visit-page { background:var(--pearl); }
.visit-hero { display:grid; grid-template-columns:minmax(0,.93fr) minmax(440px,1.07fr); min-height:calc(100vh - 121px); overflow:hidden; background:radial-gradient(circle at 76% 15%,rgba(217,103,95,.26),transparent 27%),linear-gradient(125deg,#1e141a 0%,#352029 59%,#4b2632 100%); color:var(--pearl); }
.visit-hero-copy { display:flex; justify-content:center; flex-direction:column; max-width:640px; padding:clamp(80px,11vw,145px) 55px clamp(95px,9vw,130px) max(40px,calc((100vw - min(1240px,calc(100vw - 80px)))/2)); }
.visit-hero .eyebrow,.visit-contact .eyebrow { color:var(--neon); }.visit-hero h1 { margin-bottom:30px; color:var(--pearl); font-size:clamp(72px,8.5vw,132px); }.visit-hero h1 em,.visit-contact h2 em { color:var(--neon); }.visit-hero-copy>p:not(.eyebrow) { max-width:450px; margin-bottom:31px; color:rgba(255,250,248,.82); font-size:18px; line-height:1.65; }.visit-hero-actions { display:flex; align-items:center; gap:26px; flex-wrap:wrap; }.visit-hero .text-link { border-color:rgba(246,164,156,.7); color:var(--pearl); }.visit-hero .text-link:hover,.visit-hero .text-link:focus-visible { color:var(--neon); }.visit-hero-address { display:grid; gap:10px; margin-top:53px; color:var(--neon); font-size:9px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }.visit-hero-address address { color:rgba(255,250,248,.75); font-family:var(--accent); font-size:23px; font-style:normal; font-weight:400; letter-spacing:0; line-height:1.16; text-transform:none; }
.visit-exterior { position:relative; min-height:650px; margin:0; overflow:hidden; border-left:1px solid rgba(246,164,156,.45); background:var(--wine); }.visit-exterior img { filter:saturate(.78) contrast(1.04); object-position:center; }.visit-exterior::after { position:absolute; inset:0; background:linear-gradient(180deg,transparent 58%,rgba(37,25,31,.64)); content:''; }.visit-exterior figcaption { position:absolute; z-index:1; right:26px; bottom:23px; left:26px; display:flex; justify-content:space-between; gap:15px; color:var(--neon); font-size:8px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }.exterior-stamp { position:absolute; z-index:2; top:38px; left:clamp(23px,5vw,72px); display:grid; width:123px; height:123px; place-items:center; border:1px solid var(--neon); border-radius:50%; background:rgba(37,25,31,.81); color:var(--pearl); font-family:var(--accent); font-size:17px; line-height:1.05; text-align:center; transform:rotate(-9deg); backdrop-filter:blur(7px); }.exterior-stamp::before { position:absolute; inset:7px; border:1px solid rgba(246,164,156,.38); border-radius:inherit; content:''; }
.arrival-intro { display:grid; grid-template-columns:.88fr 1.12fr; gap:11%; padding:125px 0 140px; }.arrival-count { display:grid; grid-template-columns:55px 1fr; gap:20px; padding-top:9px; border-top:1px solid var(--line); }.arrival-count span { color:var(--gold); font-family:var(--serif); font-size:27px; }.arrival-count p { max-width:275px; margin:0; color:var(--gold); font-family:var(--accent); font-size:24px; line-height:1.13; }.arrival-copy { max-width:690px; }.arrival-copy h2 { margin-bottom:28px; font-size:clamp(61px,7vw,105px); }.arrival-copy>p:not(.eyebrow) { max-width:490px; margin-bottom:0; font-size:18px; line-height:1.65; }
.map-section { padding:124px 0 135px; background:radial-gradient(circle at 10% 16%,rgba(217,103,95,.28),transparent 25%),linear-gradient(125deg,#352029,var(--ink)); color:var(--pearl); }.map-heading { display:grid; grid-template-columns:1fr .53fr; gap:10%; align-items:end; margin-bottom:48px; }.map-heading .eyebrow { color:var(--neon); }.map-heading h2 { font-size:clamp(57px,6vw,91px); }.map-heading h2 em { color:var(--neon); }.map-heading>p { max-width:355px; margin:0 0 8px; color:rgba(255,250,248,.72); font-size:16px; line-height:1.65; }.map-shell { position:relative; min-height:545px; overflow:hidden; border:1px solid rgba(246,164,156,.62); background:var(--wine); }.map-shell iframe { display:block; width:100%; height:545px; border:0; filter:saturate(.66) contrast(.98) sepia(.08); }.map-open { position:absolute; right:0; bottom:0; display:flex; align-items:center; gap:17px; border-top:1px solid rgba(246,164,156,.7); border-left:1px solid rgba(246,164,156,.7); background:rgba(37,25,31,.91); padding:14px 18px; color:var(--neon); font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; transition:background .2s ease,color .2s ease; }.map-open strong { font-family:var(--accent); font-size:22px; line-height:.7; }.map-open:hover,.map-open:focus-visible { background:var(--neon); color:var(--ink); }
.arrival-help { display:grid; grid-template-columns:.71fr 1.29fr; gap:clamp(52px,9vw,145px); padding:130px 0 140px; }.arrival-help-head h2 { max-width:500px; margin-bottom:0; font-size:clamp(58px,5.8vw,88px); }.arrival-notes { border-top:1px solid var(--line); }.arrival-note { display:grid; grid-template-columns:43px 1fr .85fr; gap:22px; align-items:start; padding:27px 0; border-bottom:1px solid var(--line); }.arrival-note>span { padding-top:7px; color:var(--gold); font-size:10px; font-weight:700; letter-spacing:.12em; }.arrival-note h3 { margin:0; font-family:var(--accent); font-size:29px; font-weight:400; line-height:1.08; }.arrival-note p { max-width:290px; margin:0; font-size:14px; line-height:1.55; }
.visit-contact { padding:126px 0; background:radial-gradient(circle at 84% 18%,rgba(217,103,95,.34),transparent 27%),linear-gradient(128deg,var(--wine),#28171f); color:var(--pearl); }.contact-shell { display:grid; grid-template-columns:1fr .82fr; align-items:center; gap:clamp(52px,10vw,150px); }.contact-copy { max-width:570px; }.contact-copy h2 { margin-bottom:28px; font-size:clamp(59px,6vw,91px); }.contact-copy>p:not(.eyebrow) { max-width:405px; margin-bottom:0; color:rgba(255,250,248,.75); font-size:17px; line-height:1.65; }.contact-actions { max-width:400px; }.contact-phone { display:grid; gap:8px; border-top:1px solid rgba(246,164,156,.58); border-bottom:1px solid rgba(246,164,156,.58); padding:19px 0 20px; color:var(--neon); transition:color .2s ease; }.contact-phone span { color:rgba(255,250,248,.62); font-size:9px; font-weight:700; letter-spacing:.14em; }.contact-phone strong { color:var(--pearl); font-family:var(--accent); font-size:clamp(32px,4vw,47px); font-weight:400; letter-spacing:-.03em; line-height:1; }.contact-phone:hover strong,.contact-phone:focus-visible strong { color:var(--neon); }.whatsapp-button { width:100%; margin-top:18px; border-color:#25d366; background:#25d366; color:#123b24; }.whatsapp-button:hover,.whatsapp-button:focus-visible { border-color:#61e893; background:#61e893; color:#0d2818; transform:translateY(-3px); }.whatsapp-dot { display:inline-grid; width:17px; height:17px; place-items:center; border:1px solid currentColor; border-radius:50%; font-size:14px; line-height:1; }.contact-actions>p { margin:14px 0 0; color:rgba(255,250,248,.57); font-size:11px; line-height:1.5; }
@media (max-width:950px) { .visit-hero { grid-template-columns:minmax(0,1fr) minmax(310px,.85fr); min-height:auto; }.visit-hero-copy { padding:90px 24px; }.visit-exterior { min-height:570px; }.arrival-intro { gap:8%; padding:98px 0 108px; }.map-section { padding:100px 0; }.map-heading { grid-template-columns:1fr .7fr; gap:7%; }.arrival-help { gap:65px; padding:105px 0; }.contact-shell { gap:65px; }.visit-contact { padding:105px 0; } }
@media (max-width:640px) { .visit-hero { grid-template-columns:1fr; }.visit-hero-copy { min-height:570px; padding:65px 19px 74px; }.visit-hero h1,.arrival-copy h2,.map-heading h2,.arrival-help-head h2,.contact-copy h2 { font-size:clamp(55px,14vw,78px); }.visit-hero-copy>p:not(.eyebrow),.arrival-copy>p:not(.eyebrow) { font-size:16px; }.visit-exterior { min-height:450px; border-top:1px solid rgba(246,164,156,.45); border-left:0; }.visit-exterior img { object-position:center; }.exterior-stamp { top:24px; left:20px; width:108px; height:108px; font-size:15px; }.visit-exterior figcaption { right:18px; bottom:16px; left:18px; font-size:7px; }.arrival-intro { grid-template-columns:1fr; gap:29px; padding:83px 0; }.arrival-count { grid-template-columns:42px 1fr; }.map-section { padding:83px 0; }.map-heading { grid-template-columns:1fr; gap:22px; margin-bottom:35px; }.map-shell,.map-shell iframe { min-height:415px; height:415px; }.map-open { padding:12px 14px; font-size:8px; }.arrival-help { grid-template-columns:1fr; gap:43px; padding:84px 0; }.arrival-note { grid-template-columns:32px 1fr; gap:14px; }.arrival-note p { grid-column:2; }.visit-contact { padding:84px 0; }.contact-shell { grid-template-columns:1fr; gap:39px; }.contact-phone strong { font-size:39px; } }
