@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#dededb;font-family:'DM Sans',sans-serif;color:var(--ink)}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}#app{--bg:#fcf8f5;--ink:#40342f;--muted:#8b7870;--accent:#a46d60;--line:#eaded7;max-width:440px;margin:auto;background:var(--bg);min-height:100dvh;position:relative;box-shadow:0 0 70px #0001;padding-bottom:100px}h1,h2,h3,p{margin:0}h1,h2,.serif{font-family:'Playfair Display',Georgia,serif}h2{font-size:28px;font-weight:500}h3{font-size:16px}button{border:0}a{color:inherit;text-decoration:none}.top{height:64px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;background:var(--bg)}.wordmark{font-size:12px;letter-spacing:2.5px;font-weight:700}.top small{font-size:12px;color:var(--muted)}.hero{height:280px;position:relative;overflow:hidden}.hero img{width:100%;height:100%;object-fit:cover}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,#0007)}.hero-tag{position:absolute;bottom:20px;left:24px;color:white;z-index:1;font-size:12px;letter-spacing:2px}.identity{padding:24px 24px 0;position:relative}.brand-seal{width:62px;height:62px;border:1px solid var(--line);border-radius:50%;background:var(--bg);position:absolute;right:24px;top:-32px;display:grid;place-items:center;font-family:Georgia;font-size:25px;color:var(--accent);box-shadow:0 4px 18px #0001}h1{font-size:32px;line-height:1.1;font-weight:500;max-width:320px}.subtitle{font-size:14px;color:var(--muted);margin-top:10px}.rating{display:flex;align-items:center;gap:8px;margin:17px 0;color:var(--accent);font-size:14px}.rating span{color:var(--muted);font-size:12px}.primary{width:100%;background:var(--accent);color:white;min-height:54px;border-radius:9px;letter-spacing:1.4px;font-size:13px;font-weight:700;transition:transform .15s,filter .15s}.primary:active{transform:scale(.98)}.primary:disabled{opacity:.4;cursor:default}.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:22px 0 4px}.quick button{background:none;color:var(--ink);font-size:12px;line-height:1.3;padding:0}.iconbox{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:15px;margin:0 auto 8px;color:var(--accent)}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.section{padding:30px 24px 0;scroll-margin-top:15px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:11px;color:var(--muted);margin-bottom:8px}.section-head small{font-size:12px;color:var(--accent)}.service{display:flex;justify-content:space-between;align-items:center;padding:17px 0;border-bottom:1px solid var(--line);gap:12px}.service small{display:block;margin-top:5px;color:var(--muted);font-size:12px}.service strong{font-size:14px;white-space:nowrap;font-weight:500;color:var(--accent)}.service button{background:none;color:var(--accent);padding:4px}.professionals{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.person img{width:100%;aspect-ratio: .82;object-fit:cover;border-radius:60px 60px 10px 10px}.person h3{font-size:13px;margin-top:9px}.person small{font-size:11px;color:var(--muted)}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gallery img{width:100%;height:180px;object-fit:cover;border-radius:10px}.about{color:var(--muted);font-size:14px;line-height:1.8}.quote{padding:22px;background:color-mix(in srgb,var(--accent) 7%,var(--bg));border-radius:12px;margin-bottom:12px}.quote .stars{color:var(--accent);letter-spacing:3px;font-size:13px;margin-bottom:10px}.quote p{font-family:Georgia;font-size:17px;line-height:1.6}.quote small{display:block;font-size:12px;color:var(--muted);margin-top:13px}.location{background:color-mix(in srgb,var(--accent) 6%,var(--bg));border:1px solid var(--line);border-radius:12px;padding:22px}.location h3{margin-bottom:8px}.location p{font-size:14px;color:var(--muted);line-height:1.7}.location button{background:none;color:var(--accent);padding:14px 0 0;font-size:13px;font-weight:700}footer{text-align:center;padding:35px 24px 0;color:var(--muted);font-size:11px;letter-spacing:2px}.bottom{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,440px);display:grid;grid-template-columns:repeat(4,1fr);padding:10px 12px max(12px,env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line);z-index:10}.bottom button{background:none;color:var(--muted);font-size:11px;display:flex;flex-direction:column;align-items:center;gap:5px;padding:5px}.bottom button.focus{background:var(--accent);border-radius:12px;color:white}.barbearia{--bg:#171715!important;--ink:#f5efe4!important;--muted:#a9a397!important;--accent:#bb9459!important;--line:#37362e!important}.barbearia .hero{height:310px}.barbearia .identity{margin-top:-100px;z-index:2;padding-top:0}.barbearia h1{font-family:'DM Sans';font-size:37px;font-weight:700;letter-spacing:1px}.barbearia .brand-seal{display:none}.barbearia .subtitle{color:#dfc9a6}.barbearia .hero:after{background:linear-gradient(transparent,#171715)}.barbearia .primary{color:#171715}.barbearia .person img{border-radius:6px;filter:saturate(.5)}.pizzaria{--bg:#fcf6e9!important;--ink:#20382a!important;--accent:#a33b2e!important;--muted:#847865!important;--line:#e5dbc8!important}.pizzaria .hero{height:290px}.pizzaria .top{background:#20382a;color:#fff3d8}.pizzaria .top small{color:#c6c7ad}.pizzaria h1{font-size:35px}.pizzaria .brand-seal{background:#20382a;color:#fff3d8;border:4px solid #fcf6e9}.sushi{--bg:#111210!important;--ink:#f5f0e4!important;--accent:#b33b35!important;--muted:#a19f92!important;--line:#30322a!important}.sushi .top{height:76px}.sushi .hero{height:300px}.sushi h1{font-family:'DM Sans';font-size:28px;letter-spacing:4px;font-weight:500}.sushi .brand-seal{border-radius:0;background:#b33b35;color:#fff;top:-42px;font-size:27px}.clinica{--bg:#fafbf8!important;--ink:#173d33!important;--accent:#245748!important;--muted:#75847b!important;--line:#dde5dc!important}.clinica .hero{height:230px;border-radius:0 0 80px 0}.clinica h1{font-family:'DM Sans';font-weight:600;font-size:29px}.clinica .brand-seal{border-radius:16px;background:#245748;color:white}.beleza{--bg:#fff7f4!important;--ink:#5b333c!important;--accent:#af667c!important;--muted:#9e7d81!important;--line:#efdcdf!important}.beleza .hero{height:300px;border-radius:0 0 45% 45% / 0 0 9% 9%}.beleza .identity{text-align:center}.beleza h1{margin:auto;font-style:italic;font-size:35px}.beleza .rating{justify-content:center}.beleza .brand-seal{display:none}.category{display:flex;gap:8px;overflow:auto;padding-bottom:10px;scrollbar-width:none}.chip{white-space:nowrap;padding:10px 14px;border:1px solid var(--line);border-radius:30px;color:var(--muted);font-size:12px;background:none}.chip.active{background:var(--accent);color:white;border-color:var(--accent)}.food{margin-top:14px;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:var(--bg)}.food img{width:100%;height:180px;object-fit:cover}.food-info{padding:17px}.food-info p{font-size:13px;color:var(--muted);line-height:1.6;margin:7px 0 13px}.food-info strong{color:var(--accent);font-size:16px}.specialties{display:grid;grid-template-columns:1fr 1fr;gap:12px}.specialty{border:1px solid var(--line);padding:23px 15px;border-radius:14px}.specialty svg{color:var(--accent);margin-bottom:15px}.specialty small{display:block;font-size:12px;color:var(--muted);margin-top:7px}.flow{position:fixed;inset:0;left:50%;transform:translateX(-50%);width:min(100%,440px);background:var(--bg);z-index:30;overflow:auto;animation:appear .18s ease}.flow-head{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--line)}.flow-head button{background:none;color:var(--ink);width:32px;height:32px}.flow-head span{font-size:12px;letter-spacing:1px;color:var(--muted)}.progress{height:3px;background:var(--line)}.progress i{display:block;background:var(--accent);height:100%;transition:width .2s}.flow-body{padding:28px 24px 130px}.flow-body h2{font-size:30px;line-height:1.2;margin-bottom:10px}.flow-sub{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:25px}.choice{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:19px 16px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:12px;margin:10px 0;gap:12px}.choice.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--bg));box-shadow:0 0 0 1px var(--accent)}.choice small{display:block;color:var(--muted);font-size:13px;margin-top:6px}.choice strong{font-size:14px;color:var(--accent)}.choice img{width:52px;height:52px;object-fit:cover;border-radius:50%}.choice .info{flex:1}.radio{width:19px;height:19px;border:1px solid var(--line);border-radius:50%}.selected .radio{border:5px solid var(--accent)}.flow-action{position:fixed;bottom:0;width:100%;max-width:440px;background:var(--bg);border-top:1px solid var(--line);padding:16px 24px max(20px,env(safe-area-inset-bottom))}.month{display:flex;align-items:center;justify-content:space-between;margin:25px 0 20px}.month button{background:none;color:var(--accent);padding:10px}.week,.days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.week{font-size:12px;color:var(--muted);margin-bottom:12px}.days button{height:43px;background:none;color:var(--ink);border-radius:50%;font-size:14px}.days button:disabled{color:var(--muted);opacity:.3;cursor:default}.days .selected{background:var(--accent);color:white}.days .available{border-bottom:2px solid var(--line)}.times{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.times button{border:1px solid var(--line);border-radius:9px;background:none;color:var(--ink);padding:13px;font-size:14px}.times .selected{background:var(--accent);color:white;border-color:var(--accent)}.time-title{margin-top:25px;font-size:16px}.summary{background:color-mix(in srgb,var(--accent) 7%,var(--bg));border-radius:14px;padding:20px;margin:25px 0}.summary p{font-size:14px;line-height:1.9;color:var(--muted)}.summary strong{color:var(--ink)}label{display:block;font-size:14px;margin:20px 0 9px}input{width:100%;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);outline:none;font-size:16px}input:focus{border-color:var(--accent)}.success{text-align:center;padding-top:45px}.check{width:80px;height:80px;border-radius:50%;background:color-mix(in srgb,var(--accent) 14%,var(--bg));color:var(--accent);display:grid;place-items:center;margin:0 auto 26px}.check svg{width:36px;height:36px}.success .summary{text-align:left}.secondary{width:100%;padding:17px;background:none;color:var(--accent);border:1px solid var(--line);border-radius:10px;margin-top:12px;font-size:14px}.mini-modal{position:fixed;inset:0;background:#0006;z-index:40;display:flex;align-items:flex-end;justify-content:center}.mini-content{width:min(100%,440px);background:var(--bg);color:var(--ink);padding:28px 24px 35px;border-radius:25px 25px 0 0;animation:appear .18s}.mini-content h2{margin-bottom:14px}.mini-content p{font-size:14px;line-height:1.8;color:var(--muted)}@keyframes appear{from{opacity:0;translate:0 12px}to{opacity:1;translate:0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}@media(min-width:600px){#app{margin-top:25px;margin-bottom:25px;border-radius:22px;overflow:hidden}.flow{border-left:1px solid var(--line);border-right:1px solid var(--line)}}

/* Sushi: explicit text colors on the dark microsite surface. */
#app.sushi{color:#f5f0e4;--muted:#c6c1b4!important}
.sushi h1,.sushi h2,.sushi h3,.sushi .wordmark,.sushi .quote p{color:#f5f0e4}
.sushi .rating{color:#e2b877}
.sushi .food-info strong,.sushi .section-head small,.sushi .location button,.sushi .secondary{color:#e2b877}
.sushi .iconbox{color:#e2b877}

/* Conversion polish, preserving each establishment's palette. */
#app{color:var(--ink)}
#app.barbearia{--ink:#fff4e3!important;--muted:#cbc3b6!important;--accent:#d3ad73!important;color:#fff4e3}
.barbearia h1,.barbearia h2,.barbearia h3,.barbearia .quote p,.barbearia .flow-body,.barbearia label{color:#fff4e3}
.barbearia .primary,.barbearia .bottom .focus,.barbearia .days .selected,.barbearia .times .selected{color:#171715}
.barbearia .service strong,.barbearia .service-action{color:#e5bf83}
.service-booking{width:100%;text-align:left;background:transparent;color:var(--ink);padding:20px 0;cursor:pointer;transition:background .15s}
.service-booking:active{background:color-mix(in srgb,var(--accent) 8%,var(--bg))}
.service-info{flex:1}.service-info strong{display:block;margin-top:9px;font-size:14px}.service-action{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--accent);font-size:11px;letter-spacing:.8px;background:color-mix(in srgb,var(--accent) 8%,var(--bg));border:1px solid var(--line);border-radius:12px;padding:13px 10px}
button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.bottom{grid-template-columns:1fr 1fr 1.25fr 1fr;box-shadow:0 -8px 30px #00000008}.bottom button{min-height:55px;justify-content:center}.bottom .focus{font-weight:700;letter-spacing:.6px;box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 22%,transparent)}
.food-order{margin-top:18px;min-height:48px;font-size:12px}.food img{height:210px}
.month{border:1px solid var(--line);border-radius:14px;padding:6px 8px;background:color-mix(in srgb,var(--accent) 5%,var(--bg))}.month button{display:grid;place-items:center;border-radius:10px}.month button:disabled{opacity:.25}.week{font-size:13px}.days{gap:7px}.days button{height:42px;border-radius:12px}.days .available{border:1px solid var(--line);background:color-mix(in srgb,var(--accent) 4%,var(--bg))}.days .selected{box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 25%,transparent);font-weight:700}.times{gap:10px}.times button{min-height:49px;border-radius:12px}.times .selected{box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 20%,transparent);font-weight:700}.choice{min-height:84px}.flow-head{position:sticky;top:0;z-index:5;background:var(--bg)}
@media(max-width:370px){.service-action{font-size:10px;padding:12px 8px}.identity{padding-left:20px;padding-right:20px}.section{padding-left:20px;padding-right:20px}.days{gap:4px}.flow-body{padding-left:20px;padding-right:20px}}

/* Distinct component compositions for the seven establishments. */
.barbearia .hero-tag{display:none}
.barbearia .identity{margin-top:-110px;padding-top:0}
.barbearia .identity h1{line-height:1.18;margin-bottom:8px}
.barbearia .identity>.serif{line-height:1.35;margin-top:0!important}
.barbearia .identity .subtitle{line-height:1.6;margin-top:10px}

/* Aesthetics: quiet editorial tiles and soft rounded actions. */
.estetica .primary{border-radius:30px;letter-spacing:1px;box-shadow:0 7px 18px #a46d6025}
.estetica .service-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.estetica .service-booking{display:flex;flex-direction:column;align-items:stretch;padding:20px 16px;border:1px solid var(--line);border-radius:22px 22px 6px 22px;background:#fffdfa;min-height:190px;gap:17px}
.estetica .service-info h3{font-family:Georgia;font-size:19px;font-weight:400;line-height:1.25}
.estetica .service-info small{line-height:1.6}
.estetica .service-action{flex-direction:row;justify-content:center;border:0;background:#f5e9e2;border-radius:30px;padding:10px;font-size:10px}
.estetica .iconbox{border-radius:50%;background:#fffdfa}
.estetica .quote{border-left:2px solid var(--accent);border-radius:0;padding-left:22px}
.estetica .choice{border-radius:20px}.estetica .times button{border-radius:25px}

/* Barber: numbered service tickets, squared edges, engraved gold actions. */
.barbearia .primary{border-radius:3px;border:1px solid #e2c18c;background:linear-gradient(135deg,#e0bd85,#bc945a);letter-spacing:2px;box-shadow:inset 0 0 0 3px #17171522}
.barbearia .service-list{counter-reset:service}
.barbearia .service-booking{counter-increment:service;display:grid;grid-template-columns:36px 1fr auto;gap:13px;padding:20px 16px;background:#20211e;border:1px solid #3d3b31;border-radius:4px;margin-bottom:10px}
.barbearia .service-booking:before{content:counter(service,decimal-leading-zero);font-family:Georgia;font-size:21px;color:#b9a58b;align-self:start;margin-top:3px}
.barbearia .service-action{background:none;border:1px solid #b9945c;border-radius:3px;padding:12px 10px;color:#e5bf83}
.barbearia .iconbox{border-radius:4px;background:#20211e;border-color:#494334}
.barbearia .quote{border-radius:4px;border:1px solid #4b4436;background:#21211d}
.barbearia .location{border-radius:4px;border-top:3px solid #d3ad73}
.barbearia .choice,.barbearia .times button,.barbearia .bottom .focus{border-radius:4px}

/* Pizza: warm restaurant menu cards and Italian green buttons. */
.pizzaria .primary{background:#244733;border-radius:12px 3px 12px 3px;box-shadow:0 4px 0 #142d20;letter-spacing:1px}
.pizzaria .food{border-radius:24px 24px 8px 8px;border:0;background:#fffdf5;box-shadow:0 5px 22px #4f36200b;margin:18px 0 25px}
.pizzaria .food img{height:240px;border-radius:24px 24px 0 0}
.pizzaria .food-info{padding:22px;border:1px solid #e9dfca;border-top:0;border-radius:0 0 8px 8px}
.pizzaria .food-info h3{font-family:Georgia;font-size:25px;font-weight:400}
.pizzaria .food-info strong{display:inline-block;font-size:20px;color:#244733}
.pizzaria .chip{border-radius:5px;background:#f4ecdb}.pizzaria .chip.active{background:#a33b2e}
.pizzaria .iconbox{border-radius:15px 4px 15px 4px;background:#fffdf5;border-color:#d5c9ad;color:#244733}

/* Sushi: compact image-led bento rows with precise red actions. */
.sushi .primary{border-radius:2px;letter-spacing:2px;background:#aa3832;border:1px solid #cb544c}
.sushi .food{display:grid;grid-template-columns:116px minmax(0,1fr);border-radius:2px;border-color:#37392f;background:#191b16;margin-top:15px}
.sushi .food img{width:100%;height:100%;min-height:238px;object-fit:cover}
.sushi .food-info{padding:18px 15px}
.sushi .food-info h3{font-size:18px;font-weight:500;line-height:1.35}
.sushi .food-info p{font-size:13px;line-height:1.6;margin:10px 0 12px}
.sushi .food-order{min-height:44px;font-size:10px;padding:10px 5px;letter-spacing:1px;margin-top:14px}
.sushi .chip{border-radius:2px;padding:11px 15px}
.sushi .iconbox{border-radius:0;border-color:#565244;background:#191b16}
.sushi .quote{border-radius:0;border-top:1px solid #b79256;border-bottom:1px solid #b79256;background:none}
.sushi .location{border-radius:0;background:#191b16}

/* Medical clinic: clean horizontal specialty cards, reassuring solid controls. */
.clinica .primary{border-radius:14px;font-size:13px;letter-spacing:.7px;box-shadow:0 5px 14px #24574820}
.clinica .specialties{grid-template-columns:1fr;gap:12px}
.clinica .specialty{display:grid;grid-template-columns:42px 1fr;column-gap:16px;padding:20px;background:#fff!important;border-radius:16px;border:1px solid #dce8df;box-shadow:0 4px 15px #24574805}
.clinica .specialty svg{grid-row:1 / 3;align-self:center;width:32px;height:32px;margin:0}
.clinica .specialty h3{font-size:17px;line-height:1.4}.clinica .specialty small{margin-top:4px}
.clinica .iconbox{border:0;background:#eaf1eb;border-radius:15px;color:#245748}
.clinica .quote{background:#fff;border:1px solid #dce8df;border-radius:18px}

/* Beauty salon: portrait service cards and glossy rosé pill buttons. */
.beleza .primary{border-radius:32px;background:linear-gradient(100deg,#a65b73,#be798c);box-shadow:0 6px 16px #af667c26;letter-spacing:1px}
.beleza .service-list{display:flex;flex-direction:column;gap:16px}
.beleza .service-booking{display:grid;grid-template-columns:88px minmax(0,1fr);padding:0;overflow:hidden;background:#fffcfa;border:1px solid #edd7dc;border-radius:24px;column-gap:17px;position:relative}
.beleza .service-thumb{width:88px;height:100%;min-height:170px;object-fit:cover;grid-row:1 / 3}
.beleza .service-info{padding:17px 12px 0 0}.beleza .service-info h3{font-family:Georgia;font-size:24px;font-weight:400;line-height:1.2}.beleza .service-info small{margin-top:8px;line-height:1.6}
.beleza .service-action{margin:12px 16px 16px 0;padding:9px 15px;flex-direction:row;justify-content:center;justify-self:start;border-radius:25px;background:#f4e4e8;border:0}
.beleza .iconbox{border-radius:50%;background:#f4e4e8;border:0}
.beleza .quote{border-radius:24px;background:#fffcfa;border:1px solid #edd7dc}
.beleza .person img{border-radius:18px 18px 60px 60px}
@media(max-width:370px){.estetica .service-booking{padding:16px 12px}.estetica .service-info h3{font-size:17px}.barbearia .service-booking{grid-template-columns:25px 1fr auto;gap:8px;padding:17px 12px}.sushi .food{grid-template-columns:96px minmax(0,1fr)}.sushi .food-info{padding:15px 12px}}
