/* Burbujas Nails · editorial redesign 2026
   Web estática sin bibliotecas externas de interfaz. */
:root{
  --bg:#fcf9f6;--paper:#ffffff;--paper-soft:#fff5f6;
  --ink:#30252d;--muted:#75636d;--soft:#9f8d96;
  --rose:#b84571;--rose-dark:#8e2e55;--rose-pale:#f7e2e8;
  --line:#eddee1;--gold:#d2aa88;--accent:#f0c9d4;
  --shadow:0 12px 35px rgba(77,36,58,.08);
  --shadow-lg:0 26px 70px rgba(77,36,58,.12);
  --serif:'Playfair Display',Georgia,serif;
  --sans:'DM Sans',system-ui,-apple-system,sans-serif;
  --max-w:1320px;
  --page-gutter:clamp(16px,3.2vw,44px);
  --icon-rose:#a84d72;--icon-champagne:#d8b38a;
  --icon-pearl:#fff8fb;--icon-outline:#efd6de;
}
*,*::before,*::after{box-sizing:border-box}
html{width:100%;max-width:100%;scroll-behavior:smooth;scroll-padding-top:94px}
body{width:100%;max-width:100%;margin:0;overflow-x:clip;color:var(--ink);background:var(--bg);font:400 16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}img{display:block}
button,input{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2,h3,p{margin:0}
h1,h2,h3{line-height:1.16}
button:focus-visible,a:focus-visible{outline:3px solid #de7697;outline-offset:4px}
[hidden],.nav-mobile[hidden],.svc-detail[hidden]{display:none!important}
.skip-link{position:fixed;z-index:500;top:-60px;left:12px;padding:.6rem 1rem;background:#fff;color:var(--rose-dark);border-radius:0 0 12px 12px}
.skip-link:focus{top:0}
.container{width:min(calc(100% - var(--page-gutter) - var(--page-gutter)),var(--max-w));max-width:100%;margin-inline:auto}
.section{padding:110px 0}
.section-alt{background:#f8f0ed}
.section-header{max-width:700px}
.section-header-centered{text-align:center;margin:0 auto 40px}
.section-kicker{font-size:.73rem;letter-spacing:.2em;font-weight:700;color:var(--rose);margin-bottom:18px}
.section-title{font:500 clamp(2.2rem,4.2vw,3.65rem)/1.2 var(--serif);letter-spacing:-.042em}
.section-title em{color:var(--rose);font-weight:500}
.section-sub{font-size:1.01rem;color:var(--muted);line-height:1.85;margin-top:20px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;border:1px solid transparent;border-radius:100px;white-space:nowrap;font-size:.9rem;font-weight:700;transition:background .2s,color .2s,transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px)}
.btn-primary{color:#fff;background:var(--rose);box-shadow:0 10px 26px rgba(184,69,113,.2)}
.btn-primary:hover{background:var(--rose-dark);box-shadow:0 14px 34px rgba(184,69,113,.28)}
.btn-sm{padding:12px 20px;font-size:.81rem}
.btn-lg{padding:17px 25px}
.btn-ghost{background:transparent;color:var(--ink);border-color:#d7c4cb}
.btn-ghost:hover{border-color:var(--rose);color:var(--rose-dark);background:#fff}
.text-link{display:inline-flex;gap:12px;align-items:center;font-size:.9rem;font-weight:700;color:var(--rose-dark);border-bottom:1px solid var(--rose);padding-bottom:5px;margin-top:28px}

/* Diseño fluido: ningún bloque puede ampliar el viewport por su ancho intrínseco. */
main,.site-header,.section,.footer,.benefit-strip{width:100%;max-width:100%;min-width:0}
.container > *, .hero-inner,.hero-deco,.process-layout > *,
.contact-main > *,.contact-grid,.service-shell,.steps-grid,
.section-heading-row > *,.location-map-heading > *,.nav-inner > *{min-width:0}
.section-header,.section-sub,.hero-sub,.contact-card p,.location-map-heading p{overflow-wrap:break-word}
iframe{max-width:100%}

/* Iconografía uniforme: SVG locales sin emoji dependiente del sistema. */
.ui-icon{display:block;width:22px;height:22px;flex:none;stroke:currentColor;stroke-width:1.8}
.fb .ui-icon{width:19px;height:19px;filter:drop-shadow(0 1px 1px rgba(80,35,67,.1))}
.svc-ico .ui-icon{position:relative;z-index:1;width:29px;height:29px;filter:drop-shadow(0 1px 1px rgba(80,35,67,.12))}
.contact-ico .ui-icon{position:relative;z-index:1;width:20px;height:20px;stroke-width:1.8}
.btn > span[aria-hidden="true"],.text-link > span[aria-hidden="true"],
.location-map-heading a > span[aria-hidden="true"]{display:inline-flex;align-items:center;justify-content:center;font-size:1rem;line-height:1}

/* Beauty charms: una paleta por categoría, sin perder elegancia ni contraste. */
:is(.svc-ico,.fb).is-manos{--tile-ink:#ac4e78;--tile-light:#fff0f6;--tile-deep:#f2d5e1;--tile-border:#eac6d7;--tile-spark:#dcb184}
:is(.svc-ico,.fb).is-extensiones{--tile-ink:#a36b59;--tile-light:#fff6f0;--tile-deep:#efdbc8;--tile-border:#e7cdb7;--tile-spark:#d6a46d}
:is(.svc-ico,.fb).is-pies{--tile-ink:#91649b;--tile-light:#faf1ff;--tile-deep:#e9d7ef;--tile-border:#dfc6e7;--tile-spark:#cca5bd}
:is(.svc-ico,.fb).is-promos{--tile-ink:#93622d;--tile-light:#fff9e9;--tile-deep:#f2e1bf;--tile-border:#e8d4a8;--tile-spark:#d7a35a}
:is(.svc-ico,.fb).is-retiros{--tile-ink:#a35b7a;--tile-light:#fff3f4;--tile-deep:#f0d9de;--tile-border:#e5c7d3;--tile-spark:#d2a589}
:is(.svc-ico,.fb).is-cejas{--tile-ink:#96516d;--tile-light:#fff1f6;--tile-deep:#ecd1dd;--tile-border:#e2bed0;--tile-spark:#cfa49a}
:is(.svc-ico,.fb).is-extras{--tile-ink:#93617b;--tile-light:#fff6f7;--tile-deep:#eddae5;--tile-border:#dec6d4;--tile-spark:#d5ad9a}
:is(.svc-ico,.fb).is-todos{--tile-ink:#a84d72;--tile-light:#fff2f7;--tile-deep:#efd6de;--tile-border:#e9c9d6;--tile-spark:#d8b38a}
.svc-ico::after,.contact-ico::after{content:"";position:absolute;top:7px;right:7px;width:7px;height:7px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 7%,var(--tile-spark,var(--icon-champagne)) 78%);opacity:.8;box-shadow:0 0 5px rgba(255,255,255,.65);pointer-events:none}
#svcList .svc-row:hover .svc-ico{transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 8px 17px rgba(168,77,114,.14)}
.fb:not(.active):not([aria-pressed="true"]) .ui-icon{color:var(--tile-ink,var(--icon-rose))}
.fb.active .ui-icon,.fb[aria-pressed="true"] .ui-icon{color:#fff}

/* Iconos ilustrados multicolor (no trazos monocromáticos).
 * Estos rellenos pintan la figura real, no solamente su fondo.
 * Paleta saturada con destellos oro/rosa y detalles blancos.
 */
.ui-icon-color .art-main{fill:var(--art-primary,#f14f96);stroke:var(--art-outline,#8b3e75);stroke-width:.6}
.ui-icon-color .art-secondary{fill:var(--art-secondary,#a778e9);stroke:var(--art-outline,#8b3e75);stroke-width:.55}
.ui-icon-color .art-gold{fill:var(--art-gold,#f5b94b);stroke:var(--art-outline,#8b3e75);stroke-width:.4}
.ui-icon-color .art-light{fill:#fff8ff;stroke:#fff8ff;stroke-width:.7;stroke-linecap:round;stroke-linejoin:round}
.ui-icon-color .art-ink{fill:none;stroke:var(--art-outline,#8b3e75);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.ui-icon-color .art-ink-fill{fill:var(--art-outline,#8b3e75)}
:is(.svc-ico,.fb).is-manos{--art-primary:#f24896;--art-secondary:#b66bee;--art-gold:#ffc34c;--art-outline:#873b76}
:is(.svc-ico,.fb).is-extensiones{--art-primary:#aa6ae6;--art-secondary:#f274a8;--art-gold:#f5b944;--art-outline:#755095}
:is(.svc-ico,.fb).is-pies{--art-primary:#ab73eb;--art-secondary:#f18db6;--art-gold:#facb5c;--art-outline:#845a9d}
:is(.svc-ico,.fb).is-promos{--art-primary:#f0769e;--art-secondary:#aa67dd;--art-gold:#f3b63b;--art-outline:#945e58}
:is(.svc-ico,.fb).is-retiros{--art-primary:#ed6899;--art-secondary:#8accc9;--art-gold:#f9b863;--art-outline:#8b4b75}
:is(.svc-ico,.fb).is-cejas{--art-primary:#ac5bcf;--art-secondary:#ef79a9;--art-gold:#f5c65c;--art-outline:#7c4293}
:is(.svc-ico,.fb).is-extras{--art-primary:#ee6ba2;--art-secondary:#6ac5b6;--art-gold:#f3c259;--art-outline:#89557b}
:is(.svc-ico,.fb).is-todos{--art-primary:#f24896;--art-secondary:#ac70e7;--art-gold:#f9c353;--art-outline:#874376}
/* Incluso sobre el fondo oscuro del filtro activo las figuras tienen dos tonos. */
.fb.active .ui-icon-color .art-main,.fb[aria-pressed="true"] .ui-icon-color .art-main{fill:#fff4f7;stroke:#fff4f7}
.fb.active .ui-icon-color .art-secondary,.fb[aria-pressed="true"] .ui-icon-color .art-secondary{fill:#eed6ff;stroke:#eed6ff}
.fb.active .ui-icon-color .art-gold,.fb[aria-pressed="true"] .ui-icon-color .art-gold{fill:#ffe08a;stroke:#ffe08a}
.fb.active .ui-icon-color .art-ink,.fb[aria-pressed="true"] .ui-icon-color .art-ink{stroke:#fffaf9}

/* Navigation */
.site-header{height:88px;position:relative;z-index:100}
.nav-bar{position:fixed;inset:0 0 auto;background:rgba(252,249,246,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(225,206,212,.55);transition:box-shadow .25s}
.nav-bar.scrolled{box-shadow:0 8px 30px rgba(48,37,45,.07)}
.nav-inner{width:min(calc(100% - var(--page-gutter) - var(--page-gutter)),var(--max-w));max-width:100%;margin:auto;min-height:88px;display:flex;align-items:center;gap:34px}
.nav-logo{display:inline-flex;gap:12px;align-items:center;flex-shrink:0}
.logo-bubble{width:43px;height:43px;display:grid;place-items:center;flex-shrink:0;border-radius:14px;background:var(--rose);color:#fff;font:italic 600 1.85rem/1 var(--serif);padding-bottom:5px;box-shadow:0 6px 18px rgba(184,69,113,.16)}
.logo-bubble.small{width:36px;height:36px;font-size:1.5rem}
.logo-text{font-weight:700;letter-spacing:-.055em;font-size:1.24rem;line-height:1;display:flex;align-items:baseline;flex-wrap:wrap;position:relative;padding-bottom:14px}
.logo-text span{font-weight:500;color:var(--rose);font-style:italic}
.logo-text small{position:absolute;left:0;bottom:0;letter-spacing:.3em;font-size:.42rem;color:var(--soft);font-weight:700;white-space:nowrap}
.nav-links{display:flex;align-items:center;gap:clamp(16px,2.6vw,35px);margin-left:auto}
.nav-links a{font-size:.86rem;font-weight:600;color:#594951;transition:color .2s}
.nav-links a:hover{color:var(--rose)}
.nav-cta{margin-left:6px}
.nav-burger{margin-left:auto;display:none;background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px;width:45px;height:45px;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.nav-burger span{width:19px;height:2px;background:var(--ink);border-radius:2px}
.nav-mobile{background:var(--bg);padding:10px 24px 24px;border-top:1px solid var(--line);box-shadow:var(--shadow)}
.nav-mobile a{display:block;padding:13px 10px;font-size:1rem;font-weight:600}
.nav-mobile-cta{background:var(--rose);color:#fff;border-radius:14px;text-align:center;margin-top:10px}

/* Hero */
.hero-wrap{position:relative;width:min(calc(100% - var(--page-gutter) - var(--page-gutter)),var(--max-w));max-width:100%;min-height:440px;margin:20px auto 0;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(20px,4vw,50px);align-items:center}
.hero-inner{position:relative;z-index:2;padding:20px 0 35px}
.hero-tag{display:flex;align-items:center;gap:14px;color:var(--rose);font-weight:700;letter-spacing:.17em;font-size:.7rem;margin-bottom:20px}
.hero-tag-line{width:37px;height:1px;background:var(--rose)}
.hero-title{font:500 clamp(3.4rem,6.7vw,6rem)/1.1 var(--serif);letter-spacing:-.065em;max-width:610px}
.hero-title em{display:block;color:var(--rose);font-weight:500;letter-spacing:-.07em}
.hero-sub{max-width:470px;color:var(--muted);line-height:1.86;font-size:1.02rem;margin-top:20px}
.hero-cta{display:flex;flex-wrap:wrap;gap:13px;margin-top:22px}
.hero-note{display:flex;align-items:center;gap:10px;margin-top:18px;color:#8b7983;font-size:.78rem}
.hero-note-dot{display:block;width:7px;height:7px;border-radius:50%;background:var(--rose)}
.hero-deco{height:250px;width:100%;max-width:420px;margin-inline:auto;position:relative;isolation:isolate;border-radius:32px;overflow:hidden;background:linear-gradient(145deg,#f7e6e8 4%,#e5bfc4 52%,#cb91a4 100%);box-shadow:0 12px 34px rgba(115,62,82,.12)}
.hero-art-halo{position:absolute;width:74%;aspect-ratio:1;top:-18%;left:-30%;border:1px solid rgba(255,255,255,.5);border-radius:50%;box-shadow:0 0 0 40px rgba(255,255,255,.10),0 0 0 95px rgba(255,255,255,.07)}
.hero-art-ring{position:absolute;width:83%;aspect-ratio:1;right:-24%;bottom:-27%;border:1.5px solid rgba(255,255,255,.45);border-radius:50%;box-shadow:0 0 0 47px rgba(255,255,255,.10),0 0 0 100px rgba(255,255,255,.06)}
.hero-art-center{position:absolute;inset:18px 14px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#fff;text-shadow:0 3px 18px rgba(82,33,52,.14)}
.hero-art-kicker{letter-spacing:.18em;font-size:.53rem;font-weight:700;border-block:1px solid rgba(255,255,255,.65);padding:5px}
.hero-art-center strong{font:400 clamp(2.2rem,3.7vw,3.8rem)/.95 var(--serif);letter-spacing:-.085em;margin:10px 0}
.hero-art-center i{font-weight:400}
.hero-art-foot{font-size:.5rem;letter-spacing:.18em;font-weight:700}
.deco-circle{position:absolute;display:block;border-radius:50%;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.9),rgba(255,255,255,.04) 65%);border:1px solid rgba(255,255,255,.4)}
.deco-circle.c1{width:48px;height:48px;top:15%;right:9%}
.deco-circle.c2{width:25px;height:25px;top:42%;left:10%}
.deco-circle.c3{width:58px;height:58px;bottom:0;left:-2%}
.hero-art-seal{position:absolute;bottom:27px;right:23px;display:none;align-items:center;gap:9px;padding:12px 16px;background:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.6);border-radius:14px;box-shadow:var(--shadow);font-size:.56rem;letter-spacing:.12em;font-weight:700;color:#825063;line-height:1.4}
.hero-art-seal span:first-child{font-size:1.6rem;font-weight:300}

/* Value strip */
.benefit-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.benefit-inner{width:min(calc(100% - var(--page-gutter) - var(--page-gutter)),var(--max-w));max-width:100%;min-height:90px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center}
.benefit-inner>span{display:flex;min-width:0;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 12px;padding:8px;font-size:.78rem;color:var(--muted);letter-spacing:.02em;line-height:1.35;text-align:center;overflow-wrap:anywhere}
.benefit-inner>span+span{border-left:1px solid var(--line)}
.benefit-inner b{font:500 1.3rem/1 var(--serif);color:var(--rose)}

/* Catalogue */
.services-section{background:var(--bg)}
.section-heading-row{display:flex;align-items:end;justify-content:space-between;gap:26px;margin-bottom:45px}
.section-side-note{font-size:.83rem;color:var(--soft);max-width:185px;text-align:right;padding-bottom:8px}
.service-shell{min-width:0;width:100%;max-width:100%;background:#fff;border:1px solid var(--line);border-radius:28px;padding:30px;box-shadow:var(--shadow)}
.service-topline{display:flex;justify-content:space-between;gap:20px;padding-bottom:22px;border-bottom:1px solid #f1e7e9;color:var(--soft);font-size:.66rem;font-weight:700;letter-spacing:.12em}
.frow{display:flex;gap:9px;flex-wrap:wrap;padding:24px 0}
.fb{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid #e8d7dd;border-radius:99px;padding:10px 16px;background:linear-gradient(160deg,#fff,#fff8fa);color:var(--ink);font-size:.81rem;font-weight:600;white-space:nowrap;transition:background .2s,color .2s,transform .2s,border-color .2s,box-shadow .2s}
.fb:hover{border-color:#d9a3b7;color:var(--rose-dark);box-shadow:0 4px 14px rgba(168,77,114,.1)}
.fb.active,.fb[aria-pressed="true"]{background:linear-gradient(135deg,#bf668d,#a84d72);color:#fff;border-color:#a84d72;box-shadow:0 5px 13px rgba(168,77,114,.16)}
#svcList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;align-items:start}
.svc-card{min-width:0}
#svcList .svc-row{appearance:none;display:grid;grid-template-columns:48px minmax(0,1fr) auto 24px;align-items:center;gap:12px;padding:19px 17px;border:1px solid var(--line);border-radius:18px;background:#fffcfc;width:100%;min-height:102px;text-align:left;color:var(--ink);transition:border-color .2s,box-shadow .2s,background .2s}
#svcList .svc-row:hover{border-color:#e6b0c0;background:#fff8fa;box-shadow:0 10px 28px rgba(115,62,82,.08)}
#svcList .svc-row.open{border-color:#dfafbf;background:#fff8fa;border-bottom-left-radius:0;border-bottom-right-radius:0}
.svc-ico{position:relative;width:48px;height:48px;display:grid;place-items:center;flex-shrink:0;isolation:isolate;overflow:hidden;border-radius:16px;color:var(--tile-ink,var(--icon-rose));background:radial-gradient(circle at 20% 10%,rgba(255,255,255,.96),transparent 53%),linear-gradient(150deg,var(--tile-light,#fff1f6) 5%,var(--tile-deep,#f2d5e1) 88%);border:1px solid var(--tile-border,var(--icon-outline));box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 5px 14px rgba(168,77,114,.09);transition:box-shadow .2s,transform .2s}
.svc-info{min-width:0}.svc-name{display:block;font-size:.85rem;font-weight:700;line-height:1.4;overflow-wrap:anywhere}.svc-dur{display:block;font-size:.73rem;color:var(--soft);margin-top:5px}
.svc-right{min-width:66px;text-align:right}
.svc-price{font-size:.89rem;font-weight:700;color:var(--rose-dark);white-space:nowrap}
.badge-pop{display:inline-block;margin-left:4px;border-radius:5px;background:#fcf0d8;color:#8c602e;padding:2px 5px;font-size:.57rem;font-weight:700;vertical-align:middle}
.svc-toggle{width:24px;height:24px;border:1px solid #edcfd8;border-radius:50%;display:grid;place-items:center;color:var(--rose);font-size:1.1rem;line-height:1;transition:transform .2s}
.svc-row.open .svc-toggle{transform:rotate(45deg)}
#svcList .svc-detail:not([hidden]){grid-column:auto;background:#fff8fa;border:1px solid #dfafbf;border-top:0;margin-top:-13px;padding:0;border-radius:0 0 18px 18px}
.svc-detail-inner{padding:22px 20px}
.svc-desc{font-size:.82rem;color:var(--muted);margin-bottom:13px}
.svc-includes{display:grid;gap:6px;margin-bottom:18px}
.svc-includes li{position:relative;font-size:.78rem;color:var(--muted);padding-left:18px}
.svc-includes li:before{content:'✓';position:absolute;left:0;color:var(--rose)}
.svc-agendar{width:100%;padding:11px 14px}
.service-disclaimer{font-size:.73rem;color:var(--soft);margin-top:23px;text-align:center}

/* Process */
.process-section{background:#f8f0ed}
.process-layout{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(35px,7vw,100px);align-items:center}
.process-intro{max-width:440px}
.steps-grid{display:grid;gap:12px}
.steps-grid li{display:flex;gap:24px;padding:25px 28px;align-items:start;border:1px solid #ecdce0;border-radius:18px;background:rgba(255,255,255,.72)}
.step-number{font:400 2rem/1.1 var(--serif);color:#c07d97;min-width:45px}
.steps-grid h3{font:.7rem/1.3 var(--sans);font-weight:700;letter-spacing:.02em;font-size:1rem;margin:3px 0 7px}
.steps-grid p{font-size:.85rem;color:var(--muted)}

/* Gallery: miniaturas compactas; ampliación únicamente en modal */
.gallery-section{background:#fffaf8}
.gallery-grid{
  width:100%;max-width:100%;min-width:0;margin-inline:auto;display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));gap:13px
}
.gallery-item{
  position:relative;display:block;appearance:none;width:100%;min-width:0;padding:0;
  text-align:left;border:1px solid var(--line);aspect-ratio:4/3;max-height:205px;overflow:hidden;
  border-radius:14px;cursor:zoom-in;background:#f7e4eb;
  box-shadow:0 5px 17px rgba(77,36,58,.07);font:inherit;color:inherit;
  transition:box-shadow .2s,transform .2s
}
.gallery-item:hover{box-shadow:0 12px 25px rgba(77,36,58,.15);transform:translateY(-2px)}
.gallery-item img{height:100%;width:100%;object-fit:cover;object-position:center;transition:transform .3s}
.gallery-item:hover img{transform:scale(1.045)}
.gallery-caption{
  position:absolute;inset:auto 0 0;padding:28px 10px 10px;
  background:linear-gradient(transparent,rgba(43,29,35,.8));color:#fff;
  font-size:.73rem;line-height:1.35;pointer-events:none
}
.gallery-cat{font-size:.58rem;letter-spacing:.09em;text-transform:uppercase}
.gallery-empty{grid-column:1/-1;min-height:260px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;text-align:center;padding:45px;background:linear-gradient(128deg,#f8eaec 0%,#fbeedc 100%);border:1px solid #efdde0;border-radius:24px;color:var(--muted)}
.gallery-empty:before{content:'✳';display:block;font-size:3rem;line-height:1;color:#b95b7b}
.gallery-empty strong{font:400 1.9rem var(--serif);color:var(--ink)}
.gallery-empty a{font-weight:700;color:var(--rose-dark);font-size:.9rem;border-bottom:1px solid var(--rose);padding-bottom:4px}
body.gallery-modal-open{overflow:hidden}
.lb-overlay{
  position:fixed;inset:0;z-index:600;display:grid;place-items:center;
  padding:14px;background:rgba(35,24,30,.78);backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px)
}
.lb-overlay.closing{opacity:0;transition:opacity .17s}
.lb-dialog{
  position:relative;width:min(100%,740px);max-height:calc(100dvh - 28px);
  display:grid;grid-template-columns:44px minmax(0,1fr) 44px;
  align-items:center;gap:10px;padding:52px 17px 26px;
  background:#fffaf9;border:1px solid rgba(255,255,255,.65);
  border-radius:22px;box-shadow:0 24px 85px rgba(20,11,17,.4)
}
.lb-close,.lb-prev,.lb-next{
  border:1px solid #e5d3da;border-radius:50%;
  background:#fff;color:var(--rose-dark);width:42px;height:42px;
  display:grid;place-items:center;font-size:1.6rem;line-height:1
}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{background:var(--rose-pale)}
.lb-close{position:absolute;top:12px;right:14px}
.lb-img-wrap{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.lb-img{
  display:block;width:auto;max-width:100%;max-height:min(68dvh,680px);
  height:auto;object-fit:contain;border-radius:12px;background:#f7e6ea;
  box-shadow:0 4px 16px rgba(30,20,27,.13)
}
.lb-caption{color:var(--muted);font-size:.84rem;line-height:1.4;margin-top:12px;text-align:center}
.lb-dots{grid-column:1/-1;display:flex;justify-content:center;align-items:center;gap:6px;margin-top:2px}
.lb-dot{display:block;width:6px;height:6px;background:#d7bac5;border-radius:50%}
.lb-dot.active{background:var(--rose);width:17px;border-radius:8px}
@media(max-width:1080px){.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:820px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .gallery-item{border-radius:12px}
  .gallery-caption{font-size:.67rem;padding:25px 9px 8px}
  .gallery-empty{min-height:230px;padding:28px}
  .gallery-empty strong{font-size:1.6rem}
  .lb-overlay{padding:8px}
  .lb-dialog{
    width:100%;max-height:calc(100dvh - 16px);
    grid-template-columns:34px minmax(0,1fr) 34px;
    padding:53px 9px 23px;gap:5px;border-radius:15px
  }
  .lb-close,.lb-prev,.lb-next{width:33px;height:33px;font-size:1.35rem}
  .lb-close{top:10px;right:10px}
  .lb-img{max-height:65dvh}
  .lb-caption{font-size:.76rem}
}
@media(prefers-reduced-motion:reduce){.gallery-item,.gallery-item img,.lb-overlay{transition:none!important}}

/* Contact */
.contact-section{background:#f8f0ed}
.contact-main{display:grid;grid-template-columns:minmax(0,.87fr) minmax(0,1.13fr);align-items:center;gap:clamp(35px,7vw,115px)}
.contact-copy .section-title{font-size:clamp(2.7rem,5vw,4.3rem)}
.contact-cta{margin-top:30px}
.contact-grid{display:grid;grid-template-columns:1fr;gap:11px}
.contact-card{display:flex;align-items:center;gap:17px;padding:21px 25px;border:1px solid #e9dadd;border-radius:18px;background:#fff;min-width:0}
.contact-ico{position:relative;height:48px;width:48px;flex-shrink:0;display:grid;place-items:center;isolation:isolate;overflow:hidden;border-radius:16px;background:radial-gradient(circle at 22% 12%,rgba(255,255,255,.95),transparent 56%),linear-gradient(155deg,#fff1f6,#f1d4e0);border:1px solid var(--icon-outline);color:var(--icon-rose);box-shadow:inset 0 1px 0 rgba(255,255,255,.82),0 5px 14px rgba(168,77,114,.09)}
.contact-card h3{font-size:.82rem;font-weight:700;margin-bottom:4px}
.contact-card p{font-size:.84rem;color:var(--muted);overflow-wrap:anywhere}
.contact-card a{color:var(--rose-dark);font-weight:600}
.contact-card a:hover{text-decoration:underline}

/* Ubicación y mapa — visible, accesible y apto para dispositivos móviles. */
.location-map{min-width:0;width:100%;margin-top:44px;background:#fff;border:1px solid #e9dadd;border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}
.location-map-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px}
.location-map-heading h3{font-weight:700;font-size:1.05rem;color:var(--ink)}
.location-map-heading p{font-size:.86rem;color:var(--muted);margin-top:5px}
.location-map-heading a{color:var(--rose-dark);font-size:.85rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.location-map iframe{display:block;width:100%;height:360px;border:0;background:#efe5e4}
.map-privacy-note{padding:9px 20px 13px;color:var(--soft);font-size:.7rem;text-align:right}
@media(max-width:650px){
 .location-map{margin-top:28px;border-radius:17px}
 .location-map-heading{align-items:start;flex-direction:column;gap:12px;padding:19px}
 .location-map iframe{height:310px}
 .map-privacy-note{text-align:left}
}

/* Footer and action */
.footer{background:#30232c;color:#eddee1;padding:35px 0}
.footer-inner{display:flex;gap:20px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.footer .logo-text{font-size:1.2rem;color:#fff;padding-bottom:0}
.footer .logo-text span{color:#f3adbf}
.footer-brand{display:flex;align-items:center;gap:10px}
.footer-copy{font-size:.73rem;color:#d5c4cb}
.footer-links{display:flex;flex-wrap:wrap;gap:18px}
.footer-links a{font-size:.75rem;color:#eedee4}.footer-links a:hover{color:#fff}
.wa-fab{position:fixed;bottom:23px;right:23px;width:57px;height:57px;display:grid;place-items:center;border-radius:50%;background:#25d366;color:#fff;z-index:190;box-shadow:0 12px 30px rgba(32,133,73,.25);transition:transform .2s}
.wa-fab:hover{transform:translateY(-3px) scale(1.03)}
.reveal{opacity:1}
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(17px);transition:opacity .6s,transform .6s}
  .reveal.visible{opacity:1;transform:translateY(0)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* Laptop */
@media(max-width:1080px){
  .nav-inner{gap:19px}
  .nav-links{gap:17px}
  .hero-wrap{gap:45px}
  .hero-deco{height:240px;max-width:380px}
  #svcList{grid-template-columns:1fr}
}
/* Tablet */
@media(max-width:820px){
  :root{--page-gutter:20px}
  .section{padding:80px 0}
  .nav-links,.nav-cta{display:none}
  .nav-burger{display:flex}
  .hero-wrap{min-height:auto;grid-template-columns:1fr 1fr;gap:23px;margin-top:15px}
  .hero-inner{padding:35px 0}
  .hero-title{font-size:clamp(3rem,6.8vw,4.6rem)}
  .hero-deco{height:220px;max-width:320px}
  .hero-art-center strong{font-size:clamp(2.2rem,4vw,3.1rem)}
  .hero-art-seal{right:10px;bottom:17px}
  .benefit-inner{min-height:78px}
  .process-layout,.contact-main{gap:30px}
  .section-side-note{display:none}
}
/* Mobile */
@media(max-width:650px){
  html{scroll-padding-top:75px}
  .site-header{height:75px}.nav-inner{min-height:75px}
  :root{--page-gutter:16px}
  .section{padding:68px 0}
  .section-kicker{font-size:.64rem}
  .section-title{font-size:clamp(2.05rem,9vw,2.8rem)}
  .section-sub{font-size:.92rem;margin-top:13px}
  .hero-wrap{display:block;min-height:0;margin-top:0}
  .hero-inner{padding:28px 0 34px}
  .hero-tag{font-size:.63rem;margin-bottom:22px}
  .hero-title{font-size:clamp(3.35rem,13vw,4.8rem)}
  .hero-sub{font-size:.98rem;margin-top:22px}
  .hero-cta{margin-top:25px}
  .hero-cta .btn{flex:1 1 100%;min-width:0;font-size:.82rem;padding:14px 16px;white-space:normal;text-align:center}
  .hero-note{margin-top:20px;margin-bottom:12px}
  .hero-deco{display:none}
  .benefit-inner{min-height:66px;gap:3px}
  .benefit-inner>span{font-size:.64rem;gap:3px;padding:7px 3px;text-align:center;line-height:1.35}
  .benefit-inner b{font-size:.99rem}
  .section-heading-row{margin-bottom:28px}
  .service-shell{padding:18px 12px;border-radius:18px}
  .service-topline{font-size:.57rem}
  .frow{flex-wrap:nowrap;overflow-x:auto;padding:19px 2px;scrollbar-width:none}
  .frow::-webkit-scrollbar{display:none}
  .fb{flex-shrink:0;min-height:42px;padding:9px 13px;font-size:.74rem;gap:7px}
  #svcList{gap:9px}
  #svcList .svc-row{grid-template-columns:42px minmax(0,1fr) auto 20px;gap:7px;padding:14px 9px;min-height:88px}
  .svc-ico{height:42px;width:42px;border-radius:14px}
  .svc-ico .ui-icon{width:25px;height:25px}
  .contact-ico{width:42px;height:42px;border-radius:14px}
  .contact-ico .ui-icon{width:18px;height:18px}
  .fb .ui-icon{width:18px;height:18px}
  .svc-name{font-size:.78rem}
  .svc-price{font-size:.77rem}
  .badge-pop{font-size:.49rem;padding:1px 3px}
  .svc-right{min-width:60px}
  .svc-toggle{height:20px;width:20px}
  #svcList .svc-detail:not([hidden]){margin-top:-9px}
  .process-layout,.contact-main{grid-template-columns:1fr;gap:35px}
  .steps-grid li{padding:21px 18px;gap:13px}
  .footer{padding:35px 0}
  .footer-inner{align-items:flex-start;flex-direction:column;gap:18px}
  .wa-fab{width:53px;height:53px;bottom:15px;right:15px}
}
@media(max-width:400px){
  .hero-title{font-size:clamp(2.65rem,11vw,3.2rem)}
  .logo-text{font-size:1.04rem}
  .nav-logo{gap:8px}
  .benefit-inner>span{font-size:.58rem}
  .benefit-inner b{font-size:.88rem}
  .service-topline{flex-wrap:wrap;gap:4px}
  .svc-right{min-width:0}
  .svc-price{white-space:normal;overflow-wrap:anywhere}
  .contact-card{padding:17px 15px}
}
@media(max-width:370px){
  .hero-cta{flex-direction:column}
  .hero-cta .btn{width:100%}
  .hero-title{font-size:3rem}
  #svcList .svc-row{grid-template-columns:34px minmax(0,1fr) auto 18px;gap:6px}
  .svc-ico{height:34px;width:34px;border-radius:9px}
  .svc-ico .ui-icon{width:22px;height:22px}
  .svc-ico::after{width:5px;height:5px;top:5px;right:5px}
  .svc-price{font-size:.68rem}
}
