/* Arcos Plaza · campaña editorial de estudio / identidad territorial */
.ribbon{padding:0;background:#19464a;overflow:hidden}
.ribbon-segments{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;height:64px}
.ribbon-segment{display:flex;align-items:center;justify-content:flex-start;min-width:0;padding:0 clamp(16px,2.6vw,48px);border-right:1px solid rgba(255,255,255,.22);background-size:cover;background-repeat:no-repeat}
.ribbon-segment:last-child{border-right:0}
.ribbon-shopping{background-color:#16494d;background-image:linear-gradient(95deg,rgba(16,69,73,.94),rgba(16,69,73,.28)),url('./scene-shopping-studio.webp');background-position:center,center 30%}
.ribbon-food{background-color:#ae7b3e;background-image:linear-gradient(95deg,rgba(150,98,42,.93),rgba(174,123,62,.27)),url('./scene-family.webp');background-position:center,center 36%}
.ribbon-cinema{background-color:#315558;background-image:linear-gradient(95deg,rgba(40,76,78,.94),rgba(49,85,88,.20)),url('./scene-cinema.webp');background-position:center,center 50%}
.ribbon-daily{background-color:#5e5148;background-image:none}
.ribbon-title{color:#fff;font:700 clamp(10px,1.05vw,15px)/1.3 Manrope,sans-serif;letter-spacing:.13em;white-space:nowrap;text-shadow:0 1px 10px rgba(0,0,0,.18)}
@media(max-width:1050px){.ribbon{overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}.ribbon::-webkit-scrollbar{display:none}.ribbon-segments{width:max-content;min-width:100%;grid-template-columns:repeat(4,minmax(196px,1fr))}.ribbon-segment{scroll-snap-align:start}}
@media(max-width:600px){.ribbon{padding:0}.ribbon-segments{height:44px;grid-template-columns:repeat(4,minmax(170px,1fr))}.ribbon-segment{padding:0 16px}.ribbon-title{font-size:10px;letter-spacing:.105em}}
.campaign{background:#f8f6f2}
.campaign .section-header{margin-bottom:42px}
.campaign-grid{display:grid;grid-template-columns:1.08fr .88fr .88fr;grid-template-rows:290px 290px;gap:14px}
.campaign-tile{margin:0;position:relative;overflow:hidden;background:#d6c7b5;isolation:isolate}
.campaign-tile:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(16,22,24,.72) 100%);z-index:1;pointer-events:none}
.campaign-tile img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1)}
.campaign-tile:hover img{transform:scale(1.045)}
.tile-shopping{grid-column:1;grid-row:1 / 3;background:#103f42}
.tile-shopping img{object-position:center 39%}
.tile-family{grid-column:2 / 4;grid-row:1;background:#b8832f}
.tile-family img{object-position:center 40%}
.tile-fuel{grid-column:2;grid-row:2;background:#073d43}
.tile-fuel img{object-position:56% center}
.tile-carwash{grid-column:3;grid-row:2;background:#b46145}
.tile-carwash img{object-position:58% center}
.tile-copy{position:absolute;z-index:2;left:27px;right:22px;bottom:22px;color:#fff}
.tile-copy span{font:800 9px/1.4 Manrope,sans-serif;letter-spacing:.19em;color:#f4e8de}
.tile-copy h3{font:600 clamp(21px,2.3vw,34px)/1.18 Manrope,sans-serif;letter-spacing:-.045em;margin:8px 0 0;text-shadow:0 1px 6px rgba(0,0,0,.1)}
.tile-shopping .tile-copy{left:38px;bottom:34px}
.tile-shopping .tile-copy h3{font-size:clamp(30px,3.1vw,46px)}
.campaign-legal{font-size:11px;color:#827b71;margin:20px 0 0;line-height:1.7}
.brand-strip{background:#fff;padding:58px 0 52px;border-bottom:1px solid #e9e3da;overflow:hidden}
.brand-strip-intro{text-align:center;margin:0 auto 42px;padding:0 22px}
.brand-strip-kicker{font:800 9px/1.5 Manrope,sans-serif;letter-spacing:.2em;color:#857c72;margin:0 0 9px}
.brand-strip-intro h2{font:600 clamp(27px,3vw,41px)/1.16 Manrope,sans-serif;letter-spacing:-.055em;color:#a95143;margin:0 0 9px}
.brand-strip-intro>p:last-child{font:500 13px/1.6 Manrope,sans-serif;color:#877f78;margin:0}
.brand-window{width:100%;overflow:hidden;mask-image:linear-gradient(90deg,transparent 0%,#000 6%,#000 94%,transparent 100%)}
.brand-track{display:flex;width:max-content;animation:brand-move 46s linear infinite;will-change:transform}
.brand-window:hover .brand-track{animation-play-state:paused}
.brand-set{display:flex;align-items:center;justify-content:space-around;flex:0 0 max(2060px,100vw);width:max(2060px,100vw)}
.brand-item{height:108px;flex:0 0 10%;min-width:0;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:8px 20px}
.brand-item img{display:block;max-width:min(100%,170px);max-height:73px;width:auto;height:auto;object-fit:contain;filter:saturate(.95);transition:transform .3s ease,filter .3s ease}
.brand-item img[src*="brand-tedi"]{max-width:min(100%,86px);max-height:83px}
.brand-item img[src*="brand-100montaditos"]{max-width:min(100%,155px);max-height:82px}
.brand-item img[src*="brand-decimas"]{max-width:min(100%,158px)}
.brand-item img[src*="brand-rutes"]{max-width:min(100%,158px)}
.brand-item img[src*="brand-amipan"]{max-width:min(100%,88px);max-height:88px;border-radius:50%}
.brand-item img[src*="brand-bucheria"]{max-width:min(100%,160px)}
.brand-item img[src*="brand-arcos-cinema"]{max-width:min(100%,160px);max-height:91px}
.brand-item img[src*="brand-becca"]{max-width:min(100%,174px);max-height:76px}
.brand-item img:hover{transform:scale(1.065);filter:saturate(1.12)}
.brand-credits{text-align:center;color:#aaa39b;font:400 9px/1.6 Manrope,sans-serif;margin:30px 20px 0}
@keyframes brand-move{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.brand-track{animation:none;will-change:auto}.brand-window{overflow-x:auto;mask-image:none}.brand-item img{transition:none}}
.store-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.store-grid .store-card-branded{min-height:292px;padding:24px 26px 23px;gap:9px;justify-content:flex-start;background:#fff;border-color:#e6dfd6}
.store-grid .store-card-branded:hover,.store-grid .store-card-branded:focus-visible{background:#fff;border-color:#ba8878;box-shadow:0 17px 38px rgba(51,45,34,.1)}
.store-card-branded .store-num{flex:0 0 auto;color:#ac7768}
.store-card-branded .store-logo{display:flex;align-items:center;justify-content:center;width:100%;flex:1 1 auto;min-height:132px;margin:0 auto}
.store-logo img{display:block;width:auto;height:auto;max-width:215px;max-height:108px;object-fit:contain;transition:transform .35s ease}
.store-card-branded:hover .store-logo img{transform:scale(1.06)}
.store-logo-tedi img{max-height:117px}
.store-logo-alpan img{width:130px;height:130px;max-height:130px;object-fit:cover;border-radius:50%}
.store-logo-bucheria img{max-height:94px}
.store-logo-cinema img{max-height:125px}
.store-logo-becca img{max-width:230px;max-height:115px}
.store-card-branded .store-info{width:100%;padding-right:27px;margin-top:auto}
.store-card-branded .store-info h3{font-size:clamp(19px,1.7vw,24px);line-height:1.2;margin:0 0 7px;max-width:260px}
.store-card-branded .store-info p{font-size:9px}
.store-card-branded .card-arrow{bottom:22px;right:25px;color:#a65346}
/* Las tarjetas mantienen un fondo blanco limpio: el color queda en las fichas del plano. */
.store-card-branded::before{content:none}
.store-grid .store-card-branded .store-logo{min-height:150px}
.store-foot{justify-content:flex-end}
/* Ficha editorial al seleccionar una marca en el plano interactivo. */
.map-detail.is-populated{justify-content:flex-start;gap:3px}
.map-detail[data-theme="clay"]{background:linear-gradient(148deg,#b76b55 0%,#9e4a3c 100%);--detail-ink:#fffaf4;--detail-muted:#ffece3;--detail-accent:#ffe7d5;--detail-close:#fff5dc;--detail-line:#f7c5ad}
.map-detail[data-theme="green"]{background:linear-gradient(145deg,#1b5e60 0%,#15484c 100%);--detail-ink:#fffef9;--detail-muted:#dbefea;--detail-accent:#bce6df;--detail-close:#e1f6ec;--detail-line:#8fcac0}
.map-detail[data-theme="ochre"]{background:linear-gradient(147deg,#ddae58 0%,#be893a 100%);--detail-ink:#242b28;--detail-muted:#393c30;--detail-accent:#4d3f23;--detail-close:#283b31;--detail-line:#705c37}
.map-detail.is-populated{color:var(--detail-ink)}
.map-detail.is-populated>small{color:var(--detail-muted)}
.map-detail.is-populated .detail-kicker{color:var(--detail-accent)}
.map-detail.is-populated h3,.map-detail.is-populated .detail-hook{color:var(--detail-ink)}
.map-detail.is-populated #detail-text{color:var(--detail-muted)}
.map-detail.is-populated .detail-closing{color:var(--detail-close);border-left-color:var(--detail-line)}
.map-detail.is-populated #detail-next{color:var(--detail-ink);border-bottom-color:var(--detail-line)}
.detail-brand{display:flex;align-items:center;justify-content:center;min-height:108px;margin:15px 0 18px;background:rgba(255,255,255,.97);padding:15px 18px;box-shadow:0 10px 25px rgba(37,39,34,.09)}
.detail-brand img{display:block;width:auto;height:auto;max-width:100%;max-height:84px;object-fit:contain}
.detail-brand[hidden],.detail-mark[hidden]{display:none}
.map-detail.is-populated .detail-mark{font-size:78px;line-height:1;text-align:right;margin:7px 0 14px;opacity:.72}
.map-detail.is-populated h3{font-size:clamp(23px,2vw,30px);font-weight:600;margin:8px 0 0}
.map-detail .detail-hook{font:600 clamp(17px,1.6vw,21px)/1.34 Manrope,sans-serif;letter-spacing:-.035em;color:#fff8f0;margin:19px 0 12px}
.map-detail .detail-hook[hidden],.map-detail .detail-closing[hidden]{display:none}
.map-detail.is-populated #detail-text{font:400 12.5px/1.78 Manrope,sans-serif;color:var(--detail-muted);min-height:0;margin:0}
.map-detail .detail-closing{font:600 12.5px/1.55 Manrope,sans-serif;color:#edbaa7;min-height:0;margin:20px 0 4px;padding:5px 0 5px 14px;border-left:2px solid #ba7765}
.map-detail.is-populated #detail-next{margin-top:21px;text-align:left;align-self:flex-start}
.map-detail.is-populated .detail-body{display:flex;flex-direction:column;align-items:flex-start}
.map-detail{scroll-margin-top:94px}
.hero-copy .eyebrow{letter-spacing:.13em;font-size:9px;max-width:450px}
.hero-description strong{font-weight:700;color:#3e3934}
.visit{padding:112px 0 120px}
.visit-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(290px,.82fr);align-items:center;gap:9%}
.visit-copy{min-width:0}
.visit-copy>small{color:#fbe7df}
.visit h2{font-size:clamp(65px,6.6vw,104px);line-height:1.08;letter-spacing:-.073em}
.visit-copy p{max-width:495px;line-height:1.85;font-size:16px}
.visit-copy p strong{font-weight:700;color:#fff}
.directions-card{background:#f8f4ed;color:#2e2c27;padding:37px 39px;min-height:442px;display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(69,19,15,.14)}
.directions-kicker{font:800 10px Manrope,sans-serif;letter-spacing:.19em;color:#a85143}
.directions-icon{font:300 104px/1.18 Manrope,sans-serif;color:#a85143;margin:20px 0 auto}
.directions-card h3{font:600 34px/1.2 Manrope,sans-serif;letter-spacing:-.05em;margin:15px 0 7px}
.directions-card p{font:500 14px/1.55 Manrope,sans-serif;color:#776f67;margin:0}
.directions-rule{border-top:1px solid #d8ccc0;margin:22px 0 14px}
.directions-action{display:flex;justify-content:space-between;align-items:center;gap:15px}
.directions-action>span{font:800 10px Manrope,sans-serif;letter-spacing:.13em}
.directions-action a{display:grid;place-items:center;flex:none;width:41px;height:41px;background:#a85143;color:#fff;font-size:18px;transition:background .2s,transform .2s}
.directions-action a:hover{background:#7e3d32;transform:translateY(-2px)}
.directions-card small.directions-note{font:500 10px/1.5 Manrope,sans-serif;letter-spacing:0;color:#8b8178;margin-top:13px}
@media(max-width:1100px){.campaign-grid{grid-template-rows:260px 260px}.visit-grid{gap:5%}.directions-card{padding:29px;min-height:410px}}
@media(max-width:900px){.store-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.store-grid .store-card-branded:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:900px){.map-detail.is-populated{display:flex;flex-direction:column;align-items:stretch}.map-detail.is-populated .detail-mark{margin:4px 0;text-align:left;font-size:58px}.map-detail.is-populated .detail-body{max-width:none}.map-detail.is-populated #detail-text{max-width:620px}}
@media(max-width:900px){.campaign-grid{grid-template-columns:1fr 1fr;grid-template-rows:400px 275px 275px}.tile-shopping{grid-column:1;grid-row:1}.tile-family{grid-column:2;grid-row:1}.tile-fuel{grid-column:1;grid-row:2 / 4}.tile-carwash{grid-column:2;grid-row:2 / 4}.tile-family img{object-position:48% center}.tile-copy h3{font-size:23px}.visit-grid{grid-template-columns:1fr;gap:45px}.directions-card{max-width:580px;min-height:365px}.directions-icon{font-size:75px}}
@media(max-width:600px){.campaign-grid{grid-template-columns:1fr 1fr;grid-template-rows:410px 260px 240px;gap:9px}.tile-shopping{grid-column:1 / 3;grid-row:1}.tile-family{grid-column:1 / 3;grid-row:2}.tile-fuel{grid-column:1;grid-row:3}.tile-carwash{grid-column:2;grid-row:3}.tile-shopping img{object-position:center 32%}.tile-family img{object-position:center 43%}.tile-fuel img{object-position:52% center}.tile-carwash img{object-position:58% center}.tile-copy{left:13px;right:11px;bottom:13px}.tile-copy span{font-size:7px;letter-spacing:.1em}.tile-copy h3{font-size:17px;margin-top:4px}.tile-shopping .tile-copy{left:22px;bottom:22px}.tile-shopping .tile-copy h3{font-size:33px}.campaign-legal{font-size:10px}.hero-copy .eyebrow{max-width:315px;line-height:1.6}.visit{padding:74px 0 80px}.visit h2{font-size:clamp(57px,12vw,73px)}.visit-copy p{font-size:14px}.directions-card{min-height:330px;padding:26px}.directions-card h3{font-size:29px}.directions-icon{font-size:68px;margin:16px 0 auto}}
@media(max-width:600px){.brand-strip{padding:45px 0 37px}.brand-strip-intro{margin-bottom:26px}.brand-strip-intro h2{font-size:30px}.brand-strip-intro>p:last-child{font-size:11px}.brand-item{height:88px;padding:10px 25px}.brand-item img{max-height:62px}.brand-item img[src*="brand-tedi"]{max-height:69px}.brand-credits{padding:0 20px;font-size:8px;margin-top:18px}}
@media(max-width:600px){.map-detail.is-populated{display:block;min-height:0}.map-detail.is-populated .detail-mark{float:none;text-align:right;font-size:54px;margin:0 0 7px}.map-detail .detail-hook{margin:16px 0 11px;font-size:19px}.map-detail.is-populated #detail-text{font-size:12px}.map-detail .detail-closing{font-size:12px}}
@media(max-width:600px){.store-grid{gap:10px}.store-grid .store-card-branded{min-height:242px;padding:17px 16px 18px;gap:6px}.store-card-branded .store-logo{min-height:103px}.store-logo img{max-width:125px;max-height:76px}.store-logo-tedi img{max-height:92px}.store-logo-alpan img{width:98px;height:98px;max-height:98px}.store-logo-bucheria img{max-height:76px}.store-logo-cinema img{max-height:90px}.store-card-branded .store-info{padding-right:16px}.store-card-branded .store-info h3{font-size:16px;margin-bottom:6px}.store-card-branded .store-info p{font-size:7px;line-height:1.45}.store-card-branded .card-arrow{right:13px;bottom:14px}.store-card-branded .store-num{font-size:8px}}
@media(max-width:600px){.store-grid .store-card-branded .store-logo{min-height:103px}.detail-brand{min-height:86px;padding:14px;margin:12px 0 15px}.detail-brand img{max-height:71px}}

/* Acceso directo a los canales oficiales desde las tarjetas del directorio. */
.store-card-branded .store-link-hint{display:block;margin-top:16px;color:#696b60;font:700 10px/1.4 Manrope,sans-serif;letter-spacing:.02em;text-transform:none}
.store-grid .store-card-branded:hover .store-link-hint,.store-grid .store-card-branded:focus-visible .store-link-hint{color:#a85143}

/* Marcas reales sobre el plano ilustrativo: las imágenes no interceptan el clic. */
.map-logos{pointer-events:none}
.map-logos>g>rect{fill:rgba(255,255,255,.94);stroke:#e5ddd2;stroke-width:1;filter:drop-shadow(0 2px 3px rgba(35,32,26,.12))}
.map-logos image{pointer-events:none}
.map-logos text{font-family:Manrope,sans-serif;text-anchor:middle;dominant-baseline:middle}
.map-unknown{fill:#aa9784;font-size:23px;font-weight:600}
.map-unknown-hint{fill:#948579;font-size:7px;font-weight:800;letter-spacing:.05em}
.map-available{fill:#347455;font-size:8px;letter-spacing:0;font-weight:800}
.map-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid #ebe4db;background:#f9f7f3}
.map-service{display:flex;align-items:center;gap:14px;padding:18px 23px}
.map-service+.map-service{border-left:1px solid #e6dfd5}
.map-service-icon{display:grid;place-items:center;width:39px;height:39px;flex:none;border-radius:50%;background:#1a5f59;color:#fff;font:800 20px/1 Manrope,sans-serif}
.map-service-camera{background:#c88d3a;font-size:21px}
.map-service strong{display:block;font:700 13px/1.35 Manrope,sans-serif;color:#373731}
.map-service small{display:block;margin-top:4px;font:500 10px/1.55 Manrope,sans-serif;color:#877e73}

/* Horarios visibles y comparables al lado de los festivos. */
.hours-panel{background:#f0e9df;padding:31px 30px;gap:0}
.hours-panel>small{color:#a85143}
.hours-panel h3{font-size:30px;line-height:1.2;margin:14px 0 23px}
.hours-group{padding:19px 0 18px;border-top:1px solid #d6c8ba}
.hours-type{display:block;font:800 9px/1.5 Manrope,sans-serif;letter-spacing:.14em;color:#a85143}
.hours-group h4{font:700 15px/1.35 Manrope,sans-serif;letter-spacing:-.03em;margin:7px 0 13px}
.hours-pair{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:3px 12px;margin:9px 0;font:500 11px/1.45 Manrope,sans-serif;color:#6d665e}
.hours-pair strong{font-weight:800;color:#2a3430;white-space:nowrap}
.hours-panel .hours-group a{display:block;align-self:unset;margin-top:14px;font:700 10px/1.6 Manrope,sans-serif;color:#7e473e;border:0;text-decoration:underline;text-underline-offset:4px}
.hours-panel .hours-footnote{margin:8px 0 0;font:500 10px/1.65 Manrope,sans-serif;color:#81776c}
.calendar-note a{color:#904f42;text-decoration:underline;text-underline-offset:2px}
.calendar-empty{grid-column:1/-1;padding:22px;background:#fff;border:1px solid #ebe6df;color:#756c62;font-size:12px;margin:0}

@media(max-width:600px){
  .store-card-branded .store-link-hint{font-size:9px;margin-top:12px}
  .map-services{grid-template-columns:1fr}
  .map-service{padding:13px 18px;gap:12px}
  .map-service+.map-service{border-left:0;border-top:1px solid #e6dfd5}
  .map-service-icon{width:34px;height:34px;font-size:16px}
  .map-service strong{font-size:12px}
  .hours-panel{padding:25px}
  .hours-panel h3{font-size:28px}
}

/* V20: tres puntos de contacto visibles y accesibles. */
.topline-email{white-space:nowrap;letter-spacing:.03em!important}
.visit-copy .visit-contact{margin:21px 0 0;font-size:13px;line-height:1.6;color:#fff}
.visit-contact a,.footer-contact{text-decoration:underline;text-underline-offset:4px}
.footer-contact{font-weight:700;color:#8b4339}
@media(max-width:600px){
  .topline{gap:10px;justify-content:space-between}
  .topline a{margin:0}
  .topline-email{font-size:8px}
  .topline-hours{font-size:7.3px;white-space:nowrap}
}
