/* Video-led opening, with the clear left-aligned hierarchy of the AR reference. */
.site-journey { position:relative; height:calc(var(--slide-count, 11) * 100svh); }
.site-slider { position:sticky; top:0; display:flex; width:100%; height:100svh; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; scroll-behavior:auto; }
.site-slider::-webkit-scrollbar { display:none; }
.site-slider>section,.site-slider>footer { flex:0 0 100%; width:100%; height:100svh; min-height:0; overflow:hidden; }
.site-slider .croquis-teaser { min-height:0; }
.opening-back { align-self:flex-start; margin:0 0 28px; padding:0; border:0; background:none; color:var(--red); font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.opening-back:hover { color:white; }
.opening-back:focus-visible { outline:2px solid var(--red); outline-offset:5px; }
body.is-intro { overflow:hidden; }
.intro-screen { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; overflow:hidden; background:radial-gradient(circle at 50% 54%,#270b0e 0%,#090a0d 62%); color:white; }
.intro-screen.is-revealing { opacity:0; pointer-events:none; transition:opacity .7s cubic-bezier(.55,0,.15,1); }
.intro-screen[hidden] { display:none; }
.intro-word-canvas { position:absolute; inset:0; width:100%; height:100%; }
.intro-top { position:absolute; z-index:1; top:0; left:0; right:0; height:116px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(24px,4vw,80px); border-bottom:1px solid rgba(255,255,255,.16); font-size:13px; font-weight:800; letter-spacing:.1em; }
.intro-top>span:first-child { display:flex; align-items:center; gap:12px; }
.intro-top img { width:44px; height:44px; object-fit:contain; }
.intro-markers { color:var(--red); letter-spacing:1.7em; }
.intro-markers i { color:rgba(255,255,255,.4); font-style:normal; }
.intro-bottom { position:absolute; z-index:1; bottom:32px; left:20px; right:20px; text-align:center; font-size:10px; font-weight:800; letter-spacing:.32em; color:rgba(255,255,255,.64); }
.intro-skip { position:absolute; z-index:2; right:clamp(24px,4vw,80px); bottom:32px; padding:10px 0; border:0; background:none; color:white; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; cursor:pointer; }
.intro-skip:focus-visible { outline:2px solid var(--red); outline-offset:5px; }
.site-header { width:min(calc(100% - 44px),1160px); background:rgba(8,9,12,.78); }
.desktop-nav { gap:24px; }
.desktop-nav a:first-child { color:#ff6a72; }
.header-cta { background:var(--red); color:white; }
.brand b { color:var(--red); }
.hero { min-height:100svh; background:#0a0a0d; }
.hero-video { object-position:center; filter:grayscale(1) contrast(1.08); }
.hero-scrim { background:linear-gradient(90deg,rgba(5,5,8,.9) 0%,rgba(10,10,14,.63) 46%,rgba(10,10,14,.3) 100%),linear-gradient(0deg,rgba(5,5,8,.8),transparent 34%,rgba(8,8,10,.16)); }
.hero-grid { background-size:100px 100px; opacity:.5; }
.hero-content { min-height:100svh; justify-content:center; padding:145px var(--pad) 130px; }
.hero .eyebrow { display:inline-block; align-self:flex-start; margin:0 0 30px; padding:9px 18px; border:1px solid rgba(255,255,255,.38); border-radius:30px; background:rgba(14,14,18,.56); font-size:12px; letter-spacing:.18em; }
.hero .eyebrow::before { content:'•'; color:var(--red); margin-right:10px; }
.hero h1 { max-width:none; white-space:nowrap; font-size:clamp(68px,9vw,142px); line-height:.88; letter-spacing:-.075em; text-shadow:0 8px 28px rgba(0,0,0,.45); }
.hero h1 em { color:white; }
.hero h1 em span { color:var(--red); }
.hero-period { color:white; }
.hero-bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; max-width:1060px; margin-top:54px; }
.hero-bottom p { max-width:600px; font-size:clamp(22px,2.8vw,38px); font-weight:650; line-height:1.08; }
.hero-bottom small { display:block; max-width:520px; margin-top:15px; color:#e5e0e2; font-size:clamp(14px,1.25vw,18px); font-weight:400; line-height:1.5; }
.hero-bottom small strong { color:#fff; font-weight:800; }
.hero-offer { min-width:0; }
.hero-services { margin-top:25px; }
.hero-services>span { display:block; margin-bottom:10px; color:#ff6a72; font-size:10px; font-weight:800; letter-spacing:.19em; }
.hero-service-links { display:flex; flex-wrap:wrap; gap:8px; max-width:700px; }
.hero-service-links a { display:inline-flex; align-items:center; min-height:32px; padding:7px 11px; border:1px solid rgba(255,255,255,.35); border-radius:20px; background:rgba(16,16,20,.5); color:white; font-size:11px; font-weight:700; letter-spacing:.02em; backdrop-filter:blur(8px); }
.hero-service-links a:hover { border-color:#ff6a72; background:rgba(220,23,37,.24); }
.hero-service-links a:focus-visible { outline:2px solid var(--red); outline-offset:3px; }
.hero-scroll:focus-visible { outline:3px solid white; outline-offset:4px; }
.hero-scroll { position:absolute; z-index:3; left:var(--pad); bottom:26px; display:flex; align-items:center; flex-direction:row; gap:14px; padding:0; border:0; background:none; color:#fff; font-size:10px; font-weight:800; letter-spacing:.22em; text-transform:uppercase; white-space:nowrap; cursor:pointer; }
.hero-scroll span { font-size:24px; font-weight:400; }
.hero-status { display:none; }
.croquis-teaser { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.13fr); min-height:620px; background:#090a0d; color:white; overflow:hidden; }
.croquis-teaser-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:80px var(--pad); }
.croquis-teaser-copy>span { color:#ff6a72; font-size:11px; font-weight:800; letter-spacing:.2em; }
.croquis-teaser h2 { margin:28px 0 24px; font-size:clamp(42px,4.2vw,70px); line-height:.99; letter-spacing:-.06em; text-transform:uppercase; }
.croquis-teaser p { max-width:490px; color:#c9c5c7; font-size:18px; line-height:1.55; }
.croquis-teaser-copy a { display:flex; align-items:center; gap:32px; margin-top:25px; padding:17px 22px; background:var(--accent); color:white; border-radius:4px; text-transform:uppercase; font-size:12px; font-weight:800; letter-spacing:.06em; }
@media(max-height:780px) and (min-width:901px){
 .hero-content { padding-top:110px; padding-bottom:70px; }
 .hero-bottom { margin-top:34px; }
}
.croquis-teaser-visual { position:relative; min-width:0; min-height:500px; overflow:hidden; background:#090a0d; }
.croquis-teaser-visual iframe { display:block; width:100%; height:100%; border:0; pointer-events:none; background:#090a0d; }
.croquis-replay { position:absolute; z-index:2; bottom:20px; padding:12px 15px; border:1px solid rgba(255,255,255,.28); border-radius:3px; background:rgba(9,10,13,.82); color:white; font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; backdrop-filter:blur(10px); }
.croquis-replay { left:20px; cursor:pointer; }
.croquis-replay:hover { border-color:var(--red); background:var(--red); }
.croquis-replay:focus-visible { outline:3px solid white; outline-offset:3px; }
body.in-croquis-preview .whatsapp-float { opacity:0; pointer-events:none; }
body.in-gallery .whatsapp-float { opacity:0; pointer-events:none; }
body.in-services .whatsapp-float { opacity:0; pointer-events:none; }
@media(max-width:900px){
 .hero h1 { font-size:clamp(60px,9vw,100px); }
 .hero-bottom { align-items:flex-start; flex-direction:column; gap:25px; }
 .hero-scroll { bottom:20px; }
 .croquis-teaser { grid-template-columns:minmax(0,1fr); }
 .croquis-teaser-copy { min-height:440px; }
 .croquis-teaser-visual { min-height:440px; }
}
@media(max-width:600px){
 .intro-top { height:82px; font-size:11px; }
 .intro-top img { width:32px; height:32px; }
 .intro-markers { display:none; }
 .intro-bottom { bottom:70px; font-size:8px; letter-spacing:.16em; }
 .intro-skip { bottom:18px; right:24px; }
 .hero-content { justify-content:center; padding:105px 24px 120px; }
 .hero .eyebrow { font-size:8px; letter-spacing:.12em; margin-bottom:25px; }
 .hero h1 { font-size:clamp(42px,10.4vw,70px); letter-spacing:-.085em; }
 .hero-bottom { margin-top:32px; }
 .hero-bottom p { font-size:27px; }
 .hero-bottom small { font-size:15px; }
 .hero-services { margin-top:18px; }
 .hero-service-links { gap:6px; }
 .hero-service-links a { font-size:10px; min-height:28px; padding:5px 9px; }
 .hero-scroll { left:24px; bottom:18px; font-size:8px; }
 .site-slider .croquis-teaser { grid-template-rows:60% 40%; }
 .site-slider .croquis-teaser-copy { min-height:0; justify-content:flex-start; padding:86px 24px 22px; }
 .site-slider .croquis-teaser-visual { min-height:0; }
 .opening-back { margin-bottom:12px; }
 .croquis-teaser h2 { margin:15px 0 16px; font-size:35px; }
 .croquis-teaser p { font-size:15px; }
 .croquis-teaser-copy a { margin-top:17px; }
 .croquis-replay { bottom:12px; padding:9px 10px; font-size:8px; letter-spacing:.04em; }
 .croquis-replay { left:12px; }
}
@media(max-width:600px) and (max-height:760px){
 .site-slider .croquis-teaser-copy { padding-top:74px; }
 .site-slider .croquis-teaser h2 { font-size:32px; margin:12px 0; }
 .site-slider .croquis-teaser p { font-size:14px; }
}
@media(prefers-reduced-motion:reduce){.croquis-teaser-visual iframe { transition:none; }}

/* Every chapter occupies one horizontal viewport. The page's vertical scroll
   drives this single row, so a normal wheel/trackpad motion travels sideways. */
.site-slider>footer { max-width:none; margin:0; padding:clamp(90px,10vw,150px) var(--pad); align-content:center; background:#0a0a0d; }
.site-slider>section:focus { outline:none; }
/* Cajamarca photograph with a dark scrim to keep the Experience copy readable. */
.site-slider>.manifesto { background:#090b10 url("assets/cajamarca-atardecer.jpg") center center / cover no-repeat; color:#fff; }
.site-slider>.manifesto::before { content:""; position:absolute; z-index:0; inset:0; background:linear-gradient(90deg,rgba(5,8,15,.78) 0%,rgba(5,8,15,.65) 52%,rgba(5,8,15,.47) 100%),linear-gradient(0deg,rgba(4,6,12,.55),transparent 75%); pointer-events:none; }
.site-slider>.manifesto>.section-index,.site-slider>.manifesto>.manifesto-copy { position:relative; z-index:1; }
.site-slider>.manifesto>.ticker { z-index:1; }
.site-slider>.manifesto .section-index { color:rgba(255,255,255,.75); }
.site-slider>.manifesto .kicker { color:#f4f5f7; }
.site-slider>.manifesto .split-copy { color:#f0f2f5; }
.site-slider>.manifesto .display,.site-slider>.manifesto .kicker,.site-slider>.manifesto .split-copy { text-shadow:0 2px 18px rgba(0,0,0,.65); }
/* Cars sampled into particles from the site's existing transparent sedan. */
.site-slider>.booking,.site-slider>.faq { position:relative; isolation:isolate; }
.site-slider>.booking { background:radial-gradient(circle at 20% 82%,rgba(220,23,37,.075),transparent 48%),#f2f0eb; }
.site-slider>.faq { background:radial-gradient(circle at 12% 62%,rgba(220,23,37,.065),transparent 48%),#f2f0eb; }
.particle-scene { position:absolute; inset:0; z-index:0; display:block; width:100%; height:100%; pointer-events:none; }
.particle-scene[data-particle-scene="cars"] { mask-image:linear-gradient(90deg,#000 0%,#000 46%,transparent 83%); }
.site-slider>.booking>.booking-copy,.site-slider>.booking>.booking-form,.site-slider>.faq>.section-head,.site-slider>.faq>.faq-list { position:relative; z-index:1; }
@media(min-width:901px) {
 .site-slider>.section-pad { padding:clamp(98px,9vh,125px) var(--pad) 28px; }
 .site-slider .display { font-size:clamp(44px,5.2vw,78px); }
 .site-slider .section-head { margin-bottom:24px; gap:24px; }
 .site-slider .kicker { margin-bottom:12px; }
 .site-slider .manifesto-copy { margin:clamp(30px,8vh,80px) auto 0; }
 .site-slider .split-copy { margin-top:clamp(28px,5vh,55px); }
 .site-slider .ticker { position:absolute; left:0; right:0; bottom:0; margin:0; }
 .site-slider .service-stage { min-height:0; height:calc(100svh - 245px); }
 .site-slider .service-visual { min-height:0; }
 .site-slider .service-panel { padding:clamp(18px,2vw,30px); }
 .site-slider .service-tab { padding:8px 0; font-size:11px; }
 .site-slider .service-detail { padding-top:10px; }
 .site-slider .service-detail h3 { margin:8px 0 12px; font-size:clamp(28px,3vw,42px); }
 .site-slider .service-detail>p:not(.service-overline) { margin:8px 0; font-size:13px; line-height:1.4; }
 .site-slider .service-detail ul { margin:10px 0 14px; font-size:12px; }
 .site-slider .service-detail li { padding:5px 0; }
 .site-slider .promise { min-height:0; gap:4vw; }
 .site-slider .promise-art { min-height:350px; }
 .site-slider .promise .section-index { margin-bottom:25px; }
 .site-slider .promise-lead { margin:18px 0; font-size:clamp(16px,1.5vw,21px); }
 .site-slider .principles { gap:12px; }
 .site-slider .principles article { padding-top:12px; }
 .site-slider .principles h3 { margin:8px 0; font-size:14px; }
 .site-slider .principles p { margin:0; font-size:12px; }
 .site-slider .gallery-head { margin-bottom:22px; }
 .site-slider .gallery-grid { gap:10px; }
 .site-slider .booking { gap:5vw; }
 .site-slider .booking-copy .section-index,.site-slider .location-copy .section-index { margin-bottom:25px; }
 .site-slider .booking-copy>p:not(.section-index) { margin:22px 0; font-size:15px; }
 .site-slider .booking-form { align-self:start; padding:clamp(20px,2vw,30px); }
 .site-slider .booking-form fieldset { margin-bottom:18px; padding-bottom:15px; }
 .site-slider .booking-form legend { margin-bottom:12px; }
 .site-slider .booking-form select,.site-slider .booking-form input[type="text"] { font-size:24px; }
 .site-slider .location-image { min-height:0; height:calc(100svh - 140px); }
 .site-slider .location-copy address { margin:26px 0; }
 .site-slider .faq .section-head { margin-bottom:24px; }
 .site-slider .faq summary { padding:15px 0; font-size:clamp(16px,1.6vw,22px); }
 .site-slider .faq details p { margin-bottom:15px; }
}
@media(max-width:900px) {
 .site-slider>section:not(.hero):not(.croquis-teaser):not(.final-cta),.site-slider>footer { overflow-y:auto; overscroll-behavior:contain; }
 .site-slider>section,.site-slider>footer { scrollbar-width:none; }
 .site-slider>section::-webkit-scrollbar,.site-slider>footer::-webkit-scrollbar { display:none; }
 .site-slider>.section-pad { padding-top:105px; padding-bottom:45px; }
 .site-slider>.promise { min-height:0; }
 .site-slider>.final-cta { min-height:0; }
 .site-slider>footer { align-content:start; }
 .site-slider>.manifesto { background-position:52% center; }
 .site-slider>.manifesto::before { background:linear-gradient(90deg,rgba(5,8,15,.83),rgba(5,8,15,.7)),linear-gradient(0deg,rgba(4,6,12,.5),transparent 80%); }
 .particle-scene[data-particle-scene="cars"] { mask-image:none; opacity:1; }
}
@media(min-width:901px) {
 .site-slider>.services { padding-top:90px; }
 .site-slider>.services .section-head { margin-bottom:14px; }
 .site-slider>.services .display { font-size:clamp(42px,4.5vw,66px); }
 .site-slider .service-stage { height:calc(100svh - 270px); }
 .site-slider .gallery-grid { display:flex; height:calc(100svh - 300px); }
}
@media(max-width:600px) {
 .site-slider>.booking .booking-copy { padding-bottom:145px; }
 .site-slider>.gallery { display:flex; flex-direction:column; padding:88px 20px 20px; }
 .site-slider .gallery-head { display:block; margin:0 0 15px; }
 .site-slider .gallery-head .section-index { margin:0 0 8px; }
 .site-slider .gallery .kicker { display:none; }
 .site-slider .gallery .display { font-size:clamp(39px,10.5vw,54px); }
 .site-slider .gallery-intro { margin:12px 0 0; font-size:12px; line-height:1.4; }
 .site-slider .gallery-grid { flex:none; width:100%; height:calc(100svh - 340px); min-height:400px; }
}

/* Chapter points echo the reference navigation while retaining PUNTO GO branding. */
.site-header { grid-template-columns:minmax(155px,1fr) auto minmax(105px,1fr); gap:12px; }
.desktop-nav { display:flex; align-items:center; justify-content:center; gap:clamp(18px,2.7vw,42px); color:white; }
.desktop-nav a { display:grid; place-items:center; position:relative; width:44px; height:48px; }
.desktop-nav a::after { display:none; }
.nav-point { display:block; width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.48); transition:background .25s,transform .25s,box-shadow .25s; }
.nav-label { position:absolute; top:32px; left:50%; transform:translate(-50%,-4px); opacity:0; white-space:nowrap; color:white; font-size:9px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; transition:opacity .25s,transform .25s; pointer-events:none; }
.desktop-nav a.is-active .nav-point,.desktop-nav a:hover .nav-point,.desktop-nav a:focus-visible .nav-point { background:var(--red); transform:scale(1.35); box-shadow:0 0 12px rgba(255,54,66,.6); }
.desktop-nav a.is-active .nav-label,.desktop-nav a:hover .nav-label,.desktop-nav a:focus-visible .nav-label { opacity:1; transform:translate(-50%,0); }
.desktop-nav a:focus-visible { outline:2px solid white; outline-offset:2px; border-radius:20px; }
.menu-toggle { display:flex; align-items:center; justify-content:center; justify-self:end; gap:11px; width:100px; height:42px; padding:0 12px; border:1px solid rgba(255,255,255,.35); border-radius:25px; background:rgba(255,255,255,.04); color:white; cursor:pointer; }
.menu-toggle span { height:auto; margin:0; background:none; }
.menu-toggle[aria-expanded="true"] span:first-child,.menu-toggle[aria-expanded="true"] span:last-child { transform:none; }
.menu-toggle .menu-lines { display:grid; gap:5px; width:18px; }
.menu-lines i { display:block; width:18px; height:2px; background:currentColor; transition:transform .25s; }
.menu-toggle[aria-expanded="true"] .menu-lines i:first-child { transform:translateY(3.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-lines i:last-child { transform:translateY(-3.5px) rotate(-45deg); }
.menu-word { font-size:10px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.menu-toggle:focus-visible { outline:2px solid white; outline-offset:3px; }
.mobile-menu { overflow-y:auto; padding:85px 16px 20px; }
.mobile-menu a { padding:12px 0; font-size:clamp(24px,4vw,40px); }

/* Photo accordion for the four services. */
.site-slider>.services { display:flex; flex-direction:column; }
.site-slider>.services .section-head { width:100%; flex:none; }
.service-accordion { display:flex; flex:1; width:100%; max-width:var(--max); min-height:0; margin:0 auto; gap:10px; }
.service-card { position:relative; flex:1 1 0; min-width:0; overflow:hidden; border:1px solid rgba(255,255,255,.16); border-radius:22px; background:#1b1115; isolation:isolate; transition:flex-grow .9s cubic-bezier(.625,.05,0,1),border-color .35s; }
.service-card.is-active { flex-grow:5.2; border-color:rgba(255,255,255,.32); }
.service-card-toggle { position:absolute; z-index:1; inset:0; width:100%; height:100%; padding:0; overflow:hidden; border:0; background:#17191e; color:white; text-align:left; cursor:pointer; }
.service-card-toggle img { width:100%; height:100%; object-fit:cover; filter:grayscale(.55) brightness(.52); transition:filter .6s,transform .9s; }
.service-card.is-active .service-card-toggle img { filter:grayscale(.15) brightness(.66); }
.service-card-toggle:hover img { transform:scale(1.045); }
.service-card-toggle::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(4,4,7,.9),transparent 67%),linear-gradient(90deg,rgba(4,4,7,.35),transparent 70%); }
.service-card-index,.service-card-name,.service-card-arrow { position:absolute; z-index:1; }
.service-card-index { top:20px; left:20px; width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:var(--red); font-size:11px; font-weight:800; }
.service-card-name { left:50%; bottom:34px; transform:translateX(-50%); writing-mode:vertical-rl; rotate:180deg; white-space:nowrap; font-size:clamp(12px,1.2vw,17px); font-weight:800; letter-spacing:.08em; text-transform:uppercase; transition:opacity .25s; }
.service-card-arrow { right:18px; top:20px; font-size:22px; opacity:0; transition:opacity .25s; }
.service-card.is-active .service-card-name { opacity:0; }
.service-card.is-active .service-card-arrow { opacity:1; }
.service-card-toggle:focus-visible { outline:3px solid white; outline-offset:-5px; }
.service-card-detail { position:absolute; z-index:2; left:clamp(22px,3vw,46px); right:clamp(22px,3vw,46px); bottom:clamp(22px,3vw,40px); max-width:560px; opacity:0; transform:translateY(24px); visibility:hidden; pointer-events:none; transition:opacity .35s,transform .5s,visibility .5s; }
.service-card.is-active .service-card-detail { opacity:1; transform:none; visibility:visible; transition-delay:.2s; }
.service-card-detail p { margin:0 0 10px; color:#ff8790; font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.service-card-detail h3 { margin:0 0 12px; max-width:520px; font-size:clamp(29px,3.3vw,48px); line-height:.98; letter-spacing:-.05em; text-transform:uppercase; }
.service-card-detail>span { display:block; max-width:460px; color:#e4e2e3; font-size:clamp(12px,1.15vw,15px); line-height:1.45; }
.service-card-detail a { display:inline-flex; align-items:center; gap:25px; margin-top:20px; padding:10px 0; border-bottom:1px solid white; color:white; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; pointer-events:auto; }
.service-card-detail a:hover { color:#ff8790; border-color:#ff8790; }
.service-card-detail a:focus-visible { outline:2px solid white; outline-offset:4px; }
.map-link { background:transparent; color:white; cursor:pointer; }
.map-link:focus-visible { outline:3px solid var(--red); outline-offset:4px; }
.location-map { width:min(900px,calc(100vw - 32px)); max-height:calc(100svh - 32px); padding:20px; border:1px solid rgba(255,255,255,.22); border-radius:18px; background:#10141b; color:white; box-shadow:0 20px 90px rgba(0,0,0,.6); }
.location-map::backdrop { background:rgba(0,0,0,.78); backdrop-filter:blur(7px); }
.location-map-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.location-map-head small { color:#ff8790; font-size:10px; font-weight:800; letter-spacing:.15em; }
.location-map-head h2 { margin:8px 0; font-size:clamp(25px,4vw,42px); line-height:1; text-transform:uppercase; }
.location-map-head p { margin:0 0 16px; color:#c8cbd2; font-size:13px; }
.location-map-close { width:38px; height:38px; flex:none; border:1px solid rgba(255,255,255,.4); border-radius:50%; background:transparent; color:white; font-size:26px; cursor:pointer; }
.location-map iframe { display:block; width:100%; height:min(58svh,500px); border:0; border-radius:10px; background:#242a30; }
.location-map>a { display:inline-block; margin-top:14px; padding:10px 0; border-bottom:1px solid white; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.location-map a:focus-visible,.location-map button:focus-visible { outline:2px solid white; outline-offset:3px; }
.footer-login { display:inline-flex; align-items:center; gap:8px; padding:0; border:0; background:transparent; color:#c5cad1; cursor:pointer; font-size:13px; text-align:left; }
.footer-login svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.footer-login:hover,footer a:hover { color:#ff6a72; }
.footer-login:focus-visible { outline:2px solid var(--red); outline-offset:4px; }
.login-info { position:relative; width:min(420px,calc(100vw - 32px)); padding:34px; border:1px solid rgba(255,255,255,.22); border-radius:14px; background:#10141b; color:white; box-shadow:0 20px 90px rgba(0,0,0,.6); }
.login-info::backdrop { background:rgba(0,0,0,.78); backdrop-filter:blur(7px); }
.login-info .section-index { margin:0 0 18px; color:#ff6a72; font-weight:800; }
.login-info h2 { margin:0 0 15px; font-size:clamp(28px,5vw,38px); line-height:1; text-transform:uppercase; }
.login-info p:last-child { max-width:310px; margin:0; color:#c8cbd2; font-size:15px; line-height:1.5; }
.login-info-close { position:absolute; top:15px; right:15px; width:34px; height:34px; border:1px solid rgba(255,255,255,.35); border-radius:50%; background:transparent; color:white; cursor:pointer; font-size:22px; line-height:1; }
.login-info-close:focus-visible { outline:2px solid white; outline-offset:3px; }

@media(max-width:980px) {
 .desktop-nav { display:flex; }
 .site-header { grid-template-columns:minmax(140px,1fr) auto minmax(100px,1fr); }
}
@media(max-width:680px) {
 .site-header { grid-template-columns:44px 1fr 82px; padding:6px 8px; }
 .brand { gap:0; }
 .brand span { display:none; }
 .brand img { width:40px; height:40px; }
 .desktop-nav { gap:clamp(4px,2vw,11px); }
 .desktop-nav a { width:18px; height:40px; }
 .nav-label { display:none; }
 .nav-point { width:5px; height:5px; }
 .menu-toggle { width:78px; height:38px; gap:7px; padding:0 8px; }
 .menu-toggle .menu-lines,.menu-lines i { width:14px; }
 .menu-word { font-size:9px; }
 .site-slider>.services { padding:90px 20px 18px; }
 .site-slider>.services .section-head { display:block; margin:0 0 17px; }
 .site-slider>.services .section-index { margin-bottom:8px; }
 .site-slider>.services .kicker { display:none; }
 .site-slider>.services .display { font-size:clamp(37px,9.5vw,50px); }
 .service-accordion { flex-direction:column; gap:7px; min-height:470px; }
 .service-card { width:100%; border-radius:13px; }
 .service-card.is-active { flex-grow:4.5; }
 .service-card-index { top:11px; left:12px; width:32px; height:32px; font-size:10px; }
 .service-card-name { left:54px; top:50%; bottom:auto; transform:translateY(-50%); rotate:0deg; writing-mode:horizontal-tb; font-size:12px; }
 .service-card-arrow { top:11px; right:14px; }
 .service-card-detail { left:18px; right:18px; bottom:16px; }
 .service-card-detail p { font-size:9px; margin-bottom:7px; }
 .service-card-detail h3 { font-size:clamp(25px,7vw,35px); margin-bottom:8px; }
 .service-card-detail>span { font-size:12px; line-height:1.35; }
 .service-card-detail a { margin-top:10px; font-size:10px; }
 .location-map { padding:12px; }
 .location-map iframe { height:60svh; }
}
@media(prefers-reduced-motion:reduce) {
 .nav-point,.nav-label,.service-card,.service-card-toggle img,.service-card-detail { transition:none; }
}

/* The venue CTA opens the address map; the animated croquis remains beside it. */
.croquis-teaser-copy .croquis-location-link { display:flex; align-items:center; gap:32px; margin-top:25px; padding:17px 22px; border:0; border-radius:4px; background:var(--accent); color:white; cursor:pointer; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.croquis-teaser-copy .croquis-location-link:hover { background:white; color:var(--ink); }
.croquis-teaser-copy .croquis-location-link:focus-visible { outline:3px solid white; outline-offset:4px; }
.service-card-detail button { display:inline-flex; align-items:center; gap:25px; margin-top:20px; padding:10px 0; border:0; border-bottom:1px solid white; background:transparent; color:white; cursor:pointer; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; pointer-events:auto; }
.service-card-detail button:hover { color:#ff8790; border-color:#ff8790; }
.service-card-detail button:focus-visible { outline:2px solid white; outline-offset:4px; }

/* The reference's vertical card wheel, adapted to PUNTO GO's black and red palette. */
.reviews { position:relative; display:grid; grid-template-columns:minmax(265px,.52fr) minmax(0,1fr); align-items:center; gap:clamp(16px,3vw,45px); background:radial-gradient(circle at 78% 48%,#292026 0%,#151216 42%,#0a0b0e 85%); color:white; isolation:isolate; }
.reviews::before { content:""; position:absolute; inset:0; z-index:-1; opacity:.2; background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size:70px 70px; mask-image:linear-gradient(90deg,transparent,black 40%); }
.reviews-heading { align-self:center; position:relative; z-index:5; }
.reviews-heading .section-index { margin:0 0 22px; color:#ff7880; font-weight:800; }
.reviews-heading .display { font-size:clamp(42px,4.7vw,76px); }
.reviews-intro { max-width:310px; margin:24px 0 26px; color:#c7c2c8; font-size:16px; line-height:1.5; }
.reviews-controls { display:flex; align-items:center; gap:14px; }
.reviews-arrow { display:grid; place-items:center; width:43px; height:43px; padding:0; border:1px solid rgba(255,255,255,.35); border-radius:50%; background:transparent; color:white; font-size:22px; line-height:1; cursor:pointer; transition:background .2s,border-color .2s,transform .2s; }
.reviews-arrow:hover { background:var(--red); border-color:var(--red); transform:scale(1.07); }
.reviews-count { color:#d8d4d8; font-size:11px; font-weight:800; letter-spacing:.16em; font-variant-numeric:tabular-nums; }
.reviews-wheel { position:relative; min-width:0; height:100%; perspective:1100px; }
.reviews-stage { position:absolute; inset:0 28px 0 0; overflow:hidden; perspective:1100px; mask-image:linear-gradient(0deg,transparent,black 15%,black 85%,transparent); }
.review-card { position:absolute; top:50%; left:50%; display:grid; grid-template-columns:40% 60%; width:min(100%,760px); height:min(52svh,430px); overflow:hidden; border:1px solid rgba(255,255,255,.23); border-radius:21px; background:#e9e4e0; color:#161419; box-shadow:0 25px 70px rgba(0,0,0,.45); transform:translate(-50%,-50%) translateY(85%) rotateX(-18deg) scale(.83); transform-origin:center; opacity:0; visibility:hidden; pointer-events:none; transition:transform .9s cubic-bezier(.2,.7,.13,1),opacity .65s,visibility .65s,filter .65s; backface-visibility:hidden; }
.review-card.is-active { z-index:3; transform:translate(-50%,-50%) translateY(0) rotateX(0) scale(1); opacity:1; visibility:visible; pointer-events:auto; }
.review-card.is-before { z-index:2; transform:translate(-50%,-50%) translateY(-78%) rotateX(18deg) scale(.82); opacity:.48; visibility:visible; filter:brightness(.58); }
.review-card.is-after { z-index:1; transform:translate(-50%,-50%) translateY(78%) rotateX(-18deg) scale(.82); opacity:.5; visibility:visible; filter:brightness(.6); }
.review-image { position:relative; display:grid; place-items:center; overflow:hidden; background:radial-gradient(circle at 50% 45%,#564047,#251b22 68%,#170f15); }
.review-image::before { content:"“"; position:absolute; top:-.18em; left:.05em; color:rgba(255,255,255,.06); font-family:Georgia,serif; font-size:420px; line-height:1; pointer-events:none; }
.review-avatar { --avatar-tone:#d23b4b; --avatar-back:#3a2630; position:relative; z-index:1; width:min(72%,235px); aspect-ratio:1; overflow:hidden; border:6px solid #eee8e5; border-radius:50%; background:radial-gradient(circle at 73% 22%,rgba(255,255,255,.19),transparent 35%),linear-gradient(145deg,var(--avatar-back),#130f16); box-shadow:0 18px 48px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.28); }
.review-avatar::before,.review-avatar::after { content:""; position:absolute; left:50%; transform:translateX(-50%); background:var(--avatar-tone); }
.review-avatar::before { top:20%; width:32%; aspect-ratio:1; border-radius:50%; box-shadow:inset -12px -9px 18px rgba(0,0,0,.16); }
.review-avatar::after { bottom:-13%; width:73%; height:53%; border-radius:48% 48% 0 0; box-shadow:inset -22px -12px 25px rgba(0,0,0,.18); }
.review-card:nth-child(2) .review-avatar { --avatar-tone:#d99a80; --avatar-back:#3a2929; }
.review-card:nth-child(3) .review-avatar { --avatar-tone:#c6b7bd; --avatar-back:#29212c; }
.review-card:nth-child(4) .review-avatar { --avatar-tone:#b7515f; --avatar-back:#30212b; }
.review-card:nth-child(5) .review-avatar { --avatar-tone:#c29a89; --avatar-back:#3b2a2a; }
.review-card:nth-child(6) .review-avatar { --avatar-tone:#a9a3ad; --avatar-back:#28242c; }
.review-text { display:flex; flex-direction:column; justify-content:center; min-width:0; padding:clamp(22px,3vw,48px); }
.review-number { color:#ac2331; font-size:10px; font-weight:800; letter-spacing:.2em; }
.review-text blockquote { margin:24px 0 18px; font-size:clamp(25px,2.65vw,43px); font-weight:800; letter-spacing:-.055em; line-height:1.05; }
.review-text p { max-width:310px; margin:0; color:#676167; font-size:15px; line-height:1.45; }
.review-place { margin-top:auto; padding-top:18px; border-top:1px solid #c9bec0; color:#7c7277; font-size:9px; font-weight:800; letter-spacing:.15em; }
.reviews-dots { position:absolute; z-index:5; top:50%; right:0; display:grid; gap:10px; transform:translateY(-50%); }
.reviews-dots button { width:20px; height:20px; padding:0; border:0; background:transparent; cursor:pointer; }
.reviews-dots button::before { content:""; display:block; width:6px; height:6px; margin:auto; border-radius:50%; background:#8e8288; transition:background .25s,transform .25s; }
.reviews-dots button.is-active::before { background:var(--red); transform:scale(1.5); }
.reviews-arrow:focus-visible,.reviews-dots button:focus-visible { outline:2px solid var(--red); outline-offset:4px; }
@media(min-width:901px) { .site-slider>.reviews { padding-top:98px; padding-bottom:48px; } }
@media(max-width:900px) {
 .site-slider>.reviews { display:flex; flex-direction:column; align-items:stretch; gap:0; overflow:hidden; padding-top:94px; padding-bottom:34px; }
 .reviews-heading { align-self:stretch; flex:none; }
 .reviews-heading .section-index { margin-bottom:10px; }
 .reviews-heading .display { font-size:clamp(37px,7vw,58px); }
 .reviews-intro { max-width:none; margin:12px 0; font-size:13px; }
 .reviews-controls { gap:10px; }
 .reviews-arrow { width:36px; height:36px; font-size:19px; }
 .reviews-wheel { flex:1; min-height:0; }
 .review-card { height:min(47svh,390px); }
}
@media(max-width:600px) {
 .croquis-teaser-copy .croquis-location-link { margin-top:17px; }
 .service-card-detail button { margin-top:10px; font-size:10px; }
 .site-slider>.reviews { padding:84px 18px 34px; }
 .reviews-heading .display { font-size:clamp(34px,8.3vw,46px); }
 .reviews-intro { margin:9px 0 12px; font-size:12px; }
 .reviews-stage { right:12px; }
 .review-card { display:flex; flex-direction:column; height:min(46svh,400px); border-radius:16px; }
 .review-image { flex:0 0 41%; }
 .review-image::before { top:-.15em; font-size:220px; }
 .review-avatar { width:min(41%,136px); border-width:4px; }
 .review-text { flex:1; padding:18px 20px; }
 .review-text blockquote { margin:10px 0 7px; font-size:clamp(22px,6vw,30px); }
 .review-text p { font-size:11px; }
 .review-place { padding-top:9px; font-size:8px; }
 .reviews-dots { right:-9px; gap:4px; }
}
@media(max-width:600px) and (max-height:700px) {
 .site-slider>.reviews { padding-top:78px; padding-bottom:12px; }
 .reviews-heading .display { font-size:clamp(31px,8vw,40px); }
 .reviews-intro { margin:7px 0 8px; }
 .reviews-stage { mask-image:linear-gradient(0deg,transparent,black 7%,black 93%,transparent); }
 .review-card { top:47%; height:min(42svh,300px); }
 .review-image { flex-basis:38%; }
 .review-avatar { width:min(39%,106px); }
 .review-text { padding:12px 16px; }
 .review-text blockquote { margin:7px 0 5px; font-size:clamp(20px,5.6vw,24px); }
 .review-place { padding-top:5px; font-size:7px; }
}
@media(prefers-reduced-motion:reduce) { .review-card,.reviews-dots button::before,.reviews-arrow { transition:none; } }
