/* Shared editorial scale and rhythm. Component art and prices have their own scale. */
:root {
  --type-page:clamp(40px,5.2vw,72px);
  --type-section:clamp(32px,3.5vw,48px);
  --type-card:clamp(22px,2vw,27px);
  --section-gap:clamp(90px,9.5vw,132px);
  --heading-gap:clamp(36px,3.6vw,50px);
  --page-inset:clamp(38px,5vw,64px);
  --handy-button:var(--button);
  --handy-button-text:var(--button-text);
}
body[class*="page-"] #contenido {
  display:flex; flex-direction:column; gap:var(--section-gap);
  padding-block:var(--page-inset) var(--section-gap);
}
/* A single gap between content boundaries avoids stacked section padding. */
body[class*="page-"] #contenido>section { padding-block:0!important; margin-block:0!important; min-height:0; }
#contenido h1,.shoe-pending-copy h1 { font-size:var(--type-page); line-height:1.1; letter-spacing:-.045em; }
#contenido h2 { font-size:var(--type-section); line-height:1.13; letter-spacing:-.045em; }
#contenido h3,
#contenido :is(.flip-back,.info-panel,.membership-benefit-row,.membership-concepts,.franchise-models,.contact-channel,.empty-state) h2 {
  font-size:var(--type-card); line-height:1.22; letter-spacing:-.03em;
}
#contenido :is(.flip-front-copy>strong) { font-size:var(--type-card); line-height:1.22; }
#contenido :is(.page-intro,.hero-copy,.membership-heading,.rewards-hero,.detail-hero,.contact-intro)>p:not(.eyebrow,.branch-note),
#contenido :is(.section-intro,.dexter-copy>p:not(.eyebrow),.process-title>p:not(.eyebrow),.rewards-intro>div>p:not(.eyebrow),.membership-copy>p:not(.eyebrow,.membership-id-note),.shoe-section-copy>p:not(.eyebrow),.promo-copy>p:not(.eyebrow),.location-copy>p:not(.eyebrow),.inquiry-grid>div>p:not(.eyebrow),.faq-intro>p:not(.eyebrow)) {
  font-size:16px; line-height:1.8;
}
#contenido :is(.service-copy>p:last-child,.steps p,.feature-grid p,.rewards-features p,.membership-concepts p:not(.eyebrow),.membership-benefit-row p,.franchise-options article p,.franchise-models article p:not(.eyebrow)) { font-size:14px; line-height:1.8; }
#contenido .eyebrow { font-size:11px; line-height:1.5; margin-bottom:20px; }
#contenido :is(.branch-body,.flip-front-copy,.contact-channel,.membership-concepts) .eyebrow { font-size:10px; margin-bottom:14px; }
#contenido :is(.section-heading,.faq-intro) { margin-bottom:var(--heading-gap); }
#contenido .section-heading h2 { margin-bottom:0; }
#contenido :is(.page-intro,.membership-heading) h1 { margin-bottom:24px; }
#contenido :is(.page-intro,.membership-heading)>p:last-child { margin-bottom:0; }
#contenido :is(.hero-grid,.hero-copy) { padding-block:0; }
#contenido .hero-visual { padding-block:0 30px; }
#contenido .section-heading .section-intro { margin-top:20px; }
.pricing-section .section-heading h2 { margin-inline:auto; }
.pricing-section .section-heading>div { text-align:center; }
.pricing-section .section-heading .section-intro { max-width:650px; }
/* Intros belong to their following cards; later sections retain the full gap. */
body[class*="page-"] #contenido>.page-intro+section { margin-top:calc(var(--heading-gap) - var(--section-gap))!important; }
#contenido .membership-benefit-row { margin-top:var(--heading-gap); }
#contenido .rewards-features { margin-top:var(--heading-gap); }
#contenido .franchise-visual { min-height:0; height:100%; max-height:620px; }
#contenido .process-title>p:last-child { margin-bottom:0; }
#contenido .faq-contact { margin-top:var(--heading-gap); }
.page-contact #contenido { justify-content:center; }
/* The shoe artwork includes roughly 8% transparent air at both ends. Match
   the visible artwork boundary to the editorial gap, not the PNG rectangle. */
@media(min-width:801px) {
  body.page-home #contenido>.shoe-section { margin-block:-42px!important; }
}
@media(max-width:800px) {
  body.page-home #contenido>.shoe-section { margin-bottom:-26px!important; }
}
.branch-toolbar { gap:24px; }
.branch-toolbar>label { height:56px; padding:0 20px; gap:12px; min-width:0; margin:0; }
.branch-toolbar>label>.icon { position:static; width:20px; height:20px; flex:0 0 20px; }
.branch-toolbar>label>input { height:54px; min-height:0; margin:0; padding:0; line-height:1.4; font-size:16px; }
.branch-toolbar>[data-nearest-branch] { position:relative; height:56px; min-height:56px; padding-block:0; }
.nearest-content { display:inline-flex; align-items:center; justify-content:center; gap:16px; }
.is-locating .nearest-content { visibility:hidden; }
.branch-toolbar>[data-nearest-branch]:disabled { opacity:1; }
.location-spinner { position:absolute; left:calc(50% - 11px); top:calc(50% - 11px); width:22px; height:22px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:location-spin .8s linear infinite; }
.location-spinner[hidden] { display:none; }
@keyframes location-spin { to { transform:rotate(360deg); } }
.location-error { font-size:13px; color:var(--text); margin:-12px 0 24px; }
.branch-directory-grid,
.branch-directory-grid:has(>.directory-branch:nth-child(2):last-child),
.branch-directory-grid:has(>.directory-branch:only-child) { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.directory-branch { max-width:none; justify-self:stretch; }
.branch-handy .branch-kind { color:var(--blue); }
.handy-map-marker { width:48px; height:58px; }
.handy-map-marker .handy-marker-pin { --pin-color:#0789b2; position:relative; display:block; width:48px; height:58px; border:0; border-radius:0; background:none; box-shadow:none; transform:none; opacity:1; }
.handy-map-marker .handy-marker-pin>.marker-silhouette { position:absolute; inset:0; width:48px; height:58px; fill:var(--pin-color); stroke:#fff; stroke-width:3; filter:drop-shadow(0 3px 3px #173e492b); }
.handy-map-marker .handy-marker-pin>.icon { position:absolute; left:50%; top:24px; width:25px; height:25px; margin:0; transform:translate(-50%,-50%); color:#fff; }
.handy-map-marker.marker-shoecare .handy-marker-pin { --pin-color:#c10808; background:none; opacity:1; }
.handy-map-marker.marker-shoecare .handy-marker-pin>.icon { width:27px; height:27px; top:23px; }
.handy-map-marker.marker-secondary .handy-marker-pin { opacity:.68; }
.handy-map-marker:is(:hover,:focus-visible,.is-selected) .handy-marker-pin { opacity:1; }
#contenido .branch-popup h3 { font-size:20px; line-height:1.25; margin-bottom:12px; }
.maplibregl-popup-content .popup-shoecare .popup-actions a { color:#b50707; }
.popup-shoecare .popup-actions a:first-child { background:#fbe9e9; }
.popup-shoecare .popup-close { color:#b50707; }
.popup-shoecare .popup-close:focus-visible { background:#f8dada; }
@media(max-width:700px) {
  .branch-directory-grid,
  .branch-directory-grid:has(>.directory-branch:nth-child(2):last-child),
  .branch-directory-grid:has(>.directory-branch:only-child) { grid-template-columns:1fr; }
  .branch-toolbar>label { flex:auto; }
  .branch-toolbar { gap:16px; }
  .branch-toolbar>label>input { font-size:16px; }
  #contenido .hero-visual { padding-bottom:30px; }
  #contenido .franchise-visual { height:335px; }
  #contenido .branch-popup h3 { font-size:18px; }
}
/* R10: roomier touch controls, brand accents and the franchise form. */
.close-control,.flip-close,.dialog-close,.popup-close { min-width:44px; min-height:44px; }
.close-control { display:grid; place-items:center; border:0; border-radius:50%; background:transparent; color:var(--muted); cursor:pointer; }
.close-control .icon { width:19px; height:19px; }
.close-control:focus-visible { background:var(--soft); color:var(--blue); }
.close-control[hidden] { display:none; }
.branch-toolbar>.branch-search-field { display:flex; align-items:center; gap:12px; height:56px; width:470px; max-width:100%; padding:0 6px 0 20px; border:1px solid var(--line); border-radius:50px; background:var(--surface); }
.branch-search-field>.icon { width:20px; height:20px; }
.branch-search-field input { height:54px; min-height:0; margin:0; border:0; background:transparent; padding:0; font-size:16px; min-width:0; }
.branch-search-field:focus-within { border-color:var(--blue); }
.branch-search-field input::-webkit-search-cancel-button { -webkit-appearance:none; appearance:none; }
.branch-search-field .clear-search { flex:0 0 44px; }
.branch-map-only { overflow:hidden; }
.branch-flip .branch-map-only { display:block; }
.branch-map-only .map-shell { position:absolute; inset:0; height:100%; min-height:0; }
.branch-map-close { position:absolute; top:12px; right:12px; z-index:5; background:var(--surface); box-shadow:0 3px 14px #123b4826; }
.map-shell:not([data-map-ready]) .maplibregl-ctrl-attrib-inner { visibility:hidden; }
.maplibregl-ctrl-attrib.maplibregl-compact:not(.maplibregl-compact-show) { min-width:32px; min-height:32px; }
.maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-button { width:32px; height:32px; background-repeat:no-repeat; background-position:center; background-size:24px; }
.maplibregl-popup-content { padding-top:28px; }
.branch-popup h3 { padding-right:24px; }
.popup-close { top:5px; right:5px; background:transparent; }
.shoe-accent { --blue:#c10808; --button:#c10808; --button-text:#fff; --soft:#fcf4f4; --focus-wash:#c108081a; --focus-line:#c10808; }
:root[data-theme=dark] .shoe-accent { --blue:#ff7d7d; --button:#c10808; --button-text:#fff; --soft:#342125; }
.shoe-accent .icon-button:focus-visible { color:var(--blue); background:var(--soft); }
.handy-map-marker.marker-shoecare:focus-visible { filter:drop-shadow(0 0 5px #c10808); }
.shoe-accent :is(.eyebrow,.flip-hint,.flip-service-icon,.text-link,em),.shoe-accent .option-symbol { color:var(--blue); }
.shoe-accent .status-pill { color:var(--blue); border-color:color-mix(in srgb,var(--blue) 25%,transparent); background:color-mix(in srgb,var(--blue) 6%,transparent); }
.page-home .shoe-section { --cloud-color:#ee9b9b35; }
.shoe-pending-page { --blue:#c10808; }
:root[data-theme=dark] .shoe-pending-page { --blue:#ff7d7d; }
.shoe-pending-wordmark { color:#c1080810; }.shoe-pending-wordmark>span { color:var(--blue); }
.shoe-pending-copy .status-pill { color:var(--blue); border-color:#c1080833; }
.page-franchises .page-intro { text-align:center; }
.page-franchises .page-intro>.eyebrow { justify-content:center; }
.page-franchises .page-intro>p { margin-inline:auto; }
.inquiry-grid { align-items:center; }
.inquiry-grid>div>p:not(.eyebrow) { max-width:510px; }
.inquiry-form :is(input,textarea,select):focus-visible { background:var(--bg); border-color:var(--line); box-shadow:none; outline:none; }
.model-field { position:relative; margin-bottom:20px; }
.model-field>label { display:block; margin-bottom:7px; }
.model-field>select { padding-right:44px; }
.model-trigger { display:flex; justify-content:space-between; align-items:center; width:100%; gap:20px; padding:13px 18px; min-height:52px; border:1px solid var(--line); border-radius:14px; background:var(--bg); color:var(--text); text-align:left; font-size:16px; }
.model-trigger .icon { width:20px; height:20px; transition:transform .2s; }
.model-trigger[aria-expanded=true] .icon { transform:rotate(180deg); }
.model-trigger:focus-visible { background:var(--soft); outline:none; }
.model-options { position:absolute; left:0; right:0; top:calc(100% + 8px); z-index:8; padding:7px; border:1px solid var(--line); border-radius:17px; background:var(--surface); box-shadow:0 14px 40px #103c4826; }
.model-options>[role=option] { width:100%; border:0; padding:12px 14px; min-height:46px; display:flex; align-items:center; justify-content:space-between; gap:18px; border-radius:11px; color:var(--text); background:transparent; text-align:left; font-size:15px; }
.model-options>[role=option] .icon { width:18px; height:18px; visibility:hidden; }
.model-options>[aria-selected=true] .icon { visibility:visible; }
.model-options>[role=option]:is(:hover,.is-active) { background:var(--soft); color:var(--blue); }
.model-options>[data-model-option="Shoe Care"]:is(:hover,.is-active) { background:#c108080d; color:#c10808; }
:root[data-theme=dark] .model-options>[data-model-option="Shoe Care"]:is(:hover,.is-active) { background:#ff7d7d12; color:#ff7d7d; }
.model-trigger[hidden],.model-options[hidden],.model-field>select[hidden] { display:none; }
.inquiry-form .inquiry-browser { display:flex; justify-content:center; margin-top:14px; font-size:12px; }
@media(max-width:700px) { .branch-toolbar>.branch-search-field { width:100%; }.branch-search-field input { font-size:16px; } }

/* Keep cartographic credits independent of editorial details/summary rules. */
.maplibregl-control-container .maplibregl-ctrl-attrib.maplibregl-compact { box-sizing:border-box; min-width:32px; min-height:32px; padding:0; border:0; border-radius:16px; background:#ffffffed; color:#41545b; box-shadow:0 2px 9px #123b481a; font:400 10px/18px Manrope,sans-serif; }
.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button { display:block; position:absolute; inset:0 auto auto 0; box-sizing:border-box; width:32px; height:32px; min-height:0; margin:0; padding:0; border:0; border-radius:50%; background-color:transparent; background-size:20px; background-position:center; background-repeat:no-repeat; outline:0; box-shadow:none; list-style:none; }
.maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-button,
.maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-button:hover { background-color:transparent; transition:none; transform:none; outline:0; box-shadow:none; }
.maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-button:focus-visible { background-color:#dceff3; }
.maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-button::marker { content:""; }
.maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-button::-webkit-details-marker { display:none; }
.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner { margin:0; padding:7px 12px 7px 38px; min-height:32px; max-width:min(440px,calc(100vw - 68px)); text-wrap:pretty; }
/* Width/height are animated together by the shared map control. No hover effect. */
.maplibregl-control-container .maplibregl-ctrl-attrib.handy-map-credits{width:32px;height:32px;overflow:hidden;isolation:isolate}
.maplibregl-ctrl-attrib.handy-map-credits .maplibregl-ctrl-attrib-inner{display:block;width:max-content;box-sizing:border-box;opacity:0;animation:none}
.maplibregl-ctrl-attrib.handy-map-credits .maplibregl-ctrl-attrib-button{z-index:1}
.maplibregl-ctrl-attrib-inner a { color:inherit; text-decoration:none; border-radius:3px; }
.maplibregl-ctrl-attrib-inner a:is(:hover,:focus-visible) { color:#087da1; outline:0; text-decoration:underline; text-underline-offset:2px; }

.page-services .shoe-accent .flip-front-copy .eyebrow { color:var(--muted); }
.page-services .shoe-accent .flip-back>.button { margin-top:auto; width:100%; align-self:stretch; justify-content:center; flex-shrink:0; }
.franchise-models>article { display:flex; flex-direction:column; }
.franchise-models>article>div:last-child { display:flex; flex-direction:column; flex:1; align-items:flex-start; }
.franchise-models>article>div:last-child>.text-link { margin-top:auto; padding-top:18px; }
.franchise-models>article:not(.shoe-accent) :is(.eyebrow,.text-link) { color:var(--blue); }
.model-options { display:flex; flex-direction:column; gap:6px; padding:8px; }
.model-options>[data-model-option="Ambas"]:is(:hover,.is-active) { background:#598b1810; color:#487a18; }
:root[data-theme=dark] .model-options>[data-model-option="Ambas"]:is(:hover,.is-active) { background:#c4ec8314; color:#c4ec83; }
.rewards-benefits,.membership-explained { text-align:center; }
:is(.rewards-benefits,.membership-explained) .section-heading { display:block; }
:is(.rewards-benefits,.membership-explained) .section-heading h2 { margin-inline:auto; }
:is(.rewards-benefits,.membership-explained) .eyebrow { justify-content:center; }
:is(.rewards-benefits,.membership-explained) :is(p,.concept-symbol) { margin-inline:auto; }
:is(.rewards-benefits,.membership-explained) :is(h2,h3,p) { text-wrap:balance; }
@media(prefers-reduced-motion:reduce) { .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner { animation:none; } }

/* Toasts adapted from Estudio Calvillo, with Handy typography and controls. */
.handy-toast {
    position: fixed;
    z-index: 2147483647;
    --handy-toast-safe-top: env(safe-area-inset-top, 0px);
    --handy-toast-safe-bottom: env(safe-area-inset-bottom, 0px);
    --handy-toast-safe-left: env(safe-area-inset-left, 0px);
    --handy-toast-safe-right: env(safe-area-inset-right, 0px);
    --handy-toast-center-x: calc(var(--handy-toast-safe-left) + (100vw - var(--handy-toast-safe-left) - var(--handy-toast-safe-right)) / 2);
    --handy-toast-terminal-offset: calc(100% + 30px);
    top: var(--handy-toast-top, 18px);
    right: auto;
    left: var(--handy-toast-center-x);
    bottom: auto;
    width: max-content;
    max-width: calc(100vw - var(--handy-toast-safe-left) - var(--handy-toast-safe-right) - 30px);
    min-height: 64px;
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) 44px;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 9px 10px 9px 16px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--surface);
    color: var(--text);
    box-shadow: 0 12px 40px #123b4826;
    font: 650 13px/1.5 Manrope, sans-serif;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, var(--handy-toast-terminal-offset));
    transition: top 0ms linear, transform 260ms cubic-bezier(.16, 1, .3, 1), opacity 190ms ease-out;
}
.handy-toast[data-toast-side="top"] { --handy-toast-terminal-offset: calc(-100% - 30px); }
.handy-toast:popover-open { display: grid; }
.handy-toast.is_visible { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.handy-toast.is_relocating {
    transition-duration: 140ms, 260ms, 190ms;
    transition-timing-function: ease-in-out, cubic-bezier(.16, 1, .3, 1), ease-out;
}
.handy-toast.is_closing {
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, var(--handy-toast-terminal-offset));
    transition: top 0ms linear, transform 220ms cubic-bezier(.55, .055, .675, .19), opacity 180ms ease-in;
}
.handy-toast-icon {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--soft);
    color: var(--blue);
    font-size: 17px;
    font-weight: 800;
}
.handy-toast[data-visual-type="success"] .handy-toast-icon { color: #52891e; background: rgba(38, 116, 81, .13); }
.handy-toast[data-visual-type="notice"] .handy-toast-icon { color: var(--blue); background: var(--soft); }
.handy-toast-message { min-width: 0; overflow-wrap: anywhere; }
.handy-toast-close {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    font: 400 20px/1 Arial, Helvetica, sans-serif;
}
@media (prefers-reduced-motion: reduce) { .handy-toast { transition-duration: 1ms !important; } }
.handy-toast-close,.handy-toast-close:hover { background:transparent; color:var(--muted); transition:none; transform:none; box-shadow:none; }
.handy-toast-close:focus-visible { background:var(--soft); color:var(--blue); outline:0; }
.handy-toast::backdrop { background:transparent; pointer-events:none; }

/* Shared by every dismiss/clear action, including text links with an X. */
.dismiss-control,.dismiss-control .icon { transition:none; animation:none; }
.dismiss-control:hover,.dismiss-control:hover .icon { transform:none; }
.dismiss-control:hover:not(:focus-visible) { text-decoration:none; }

/* R12: neutral labels, honest button semantics and uncluttered detail pages. */
.page-home .service-card.shoe-accent .eyebrow,
.page-home .shoe-section .eyebrow { color:var(--muted); }
.page-home .shoe-section .button-dark { --pill-bg:var(--handy-button); color:var(--handy-button-text); }
.whatsapp-float { font-family:inherit; cursor:pointer; }
.membership-concepts article { border-top:0; padding-top:0; }
.membership-concepts .concept-symbol { background:transparent; border-radius:0; }
.page-raffles .page-intro { text-align:center; }
.page-raffles .page-intro .eyebrow { justify-content:center; }
.page-raffles .page-intro :is(h1,p) { margin-inline:auto; }
.contact-modal-trigger { position:static; }
.contact-channel-wa { position:relative; }
.contact-modal-trigger::after { content:""; position:absolute; inset:0; border-radius:inherit; }
.contact-channel-wa:focus-within { border-color:var(--blue); }
.contact-intro>p:last-child { max-width:none; }
.gallery-strip>.gallery-photo { min-width:0; border-radius:20px; }
.gallery-photo img { width:100%; height:310px; object-fit:cover; border-radius:inherit; }
@media(max-width:1100px) { .gallery-photo img { height:250px; } }
@media(max-width:900px) { .gallery-photo img { height:230px; } }
@media(max-width:600px) {
  .gallery-strip>.gallery-photo { border-radius:14px; }
  .gallery-photo img { height:220px; }
  .gallery-strip>.gallery-photo:first-child { grid-column:1/-1; }
  .gallery-strip>.gallery-photo:first-child img { height:310px; }
}
