:root{--navy:#10264a;--pink:#ed0b70;--orange:#ff9f19;--ink:#14294c;--muted:#66738d;--line:#efdee7;--paper:#fff;--wash:#fff9f7;--brand:#ed0b70}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 8% 8%,#ffeaf2,transparent 28%),#fffaf8;color:var(--ink);font:16px/1.55 Inter,system-ui,sans-serif}.public-shell{max-width:1240px;margin:auto;padding:0 28px}.public-nav{height:92px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{width:180px;height:68px;background:url('/assets/festasgo-wordmark-cropped.webp') center/contain no-repeat}.public-nav>span{color:var(--muted);font-size:13px;font-weight:750}.profile-hero{overflow:hidden;border:1px solid var(--line);border-radius:32px;background:#fff;box-shadow:0 28px 70px #69224312}.cover{height:330px;background:linear-gradient(135deg,var(--brand),var(--orange));background-size:cover;background-position:center;position:relative}.cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,#10264a88)}.identity{display:flex;align-items:center;gap:24px;padding:0 42px 32px;margin-top:-55px;position:relative}.logo-wrap{width:132px;height:132px;display:grid;place-items:center;overflow:hidden;border:8px solid #fff;border-radius:34px;background:linear-gradient(145deg,#fff2f7,#fff7e9);box-shadow:0 15px 35px #14294c20;color:var(--brand);font-size:38px;font-weight:950}.logo-wrap img{width:100%;height:100%;object-fit:cover}.eyebrow{margin:0 0 7px;color:var(--brand);font-size:11px;font-weight:950;letter-spacing:1.6px;text-transform:uppercase}.identity h1{margin:0;font-size:42px;line-height:1.05;letter-spacing:-1.8px}.tagline{margin:7px 0;color:var(--muted);font-size:17px}.trust-row{display:flex;gap:9px;flex-wrap:wrap}.trust-row span{padding:6px 10px;border-radius:999px;background:#e9f8ef;color:#16845a;font-size:12px;font-weight:850}.profile-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start;margin:20px 0}.profile-main{display:grid;gap:20px}.content-card,.request-card,.editor-panel{border:1px solid var(--line);border-radius:24px;background:#fff;padding:28px}.content-card h2,.request-card h2{margin:0 0 12px;font-size:26px;letter-spacing:-.6px}.about{margin:0;color:var(--muted);white-space:pre-line}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.gallery figure{margin:0;overflow:hidden;border-radius:17px;background:#f5edf2;aspect-ratio:1}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.gallery figure:hover img{transform:scale(1.035)}.services{display:flex;gap:10px;flex-wrap:wrap}.services span{padding:10px 13px;border:1px solid #f1d7e3;border-radius:999px;background:#fff7fa;font-size:13px;font-weight:800}.request-card{position:sticky;top:20px;background:linear-gradient(145deg,#fff,#fff2f6);box-shadow:0 20px 50px #6922430e}.request-card .spark{display:grid;place-items:center;width:50px;height:50px;border-radius:16px;background:linear-gradient(135deg,var(--brand),var(--orange));color:#fff;font-size:24px;margin-bottom:20px}.request-card p{color:var(--muted)}.request-card ul{list-style:none;padding:0;margin:22px 0;display:grid;gap:10px;color:#53617c;font-size:14px}.request-card button,.editor-bar button{width:100%;border:0;border-radius:14px;padding:15px;background:linear-gradient(90deg,var(--brand),#ff4059,var(--orange));color:#fff;font-weight:900;font-size:15px;cursor:pointer;box-shadow:0 12px 27px #ed0b7025}.request-card small{display:block;margin-top:14px;color:#7b8496}.empty{color:var(--muted)}footer{display:flex;justify-content:space-between;gap:20px;padding:30px 4px 45px;color:var(--muted);font-size:13px}footer nav{display:flex;gap:18px}footer a{color:inherit}.loading{position:fixed;inset:0;display:grid;place-items:center;background:#fffaf8;color:var(--navy);font-weight:850;z-index:20}.loading[hidden]{display:none}.editor-bar{position:sticky;top:0;z-index:30;min-height:64px;padding:10px max(20px,calc((100vw - 1184px)/2));display:flex;align-items:center;justify-content:space-between;gap:16px;background:#10264af2;color:#fff;backdrop-filter:blur(12px)}.editor-bar a{color:#fff;text-decoration:none;font-weight:800}.editor-bar>div{display:flex;gap:9px}.editor-bar button{width:auto;padding:10px 15px}.editor-bar div a{padding:10px 14px;border:1px solid #ffffff55;border-radius:12px}.editor-panel{margin-bottom:20px;display:grid;grid-template-columns:.75fr 1.25fr;gap:28px;background:linear-gradient(135deg,#fff4f8,#fff)}.editor-panel h1{margin:4px 0;font-size:34px;line-height:1.05}.editor-panel form{display:grid;grid-template-columns:1fr 1fr;gap:13px}.editor-panel label{font-size:12px;font-weight:850}.editor-panel .wide{grid-column:1/-1}.editor-panel input,.editor-panel textarea{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid var(--line);border-radius:12px;font:inherit}.editor-panel input[type=color]{height:48px;padding:5px}.editor-panel .switch{display:flex;align-items:center;gap:8px}.editor-panel .switch input{width:auto;margin:0}.editor-message{grid-column:1/-1;margin:0;color:#16845a;font-weight:750}.section-head{display:flex;justify-content:space-between}.public-error{text-align:center;padding:100px 20px}.public-error a{color:var(--brand)}
@media(max-width:850px){.profile-grid,.editor-panel{grid-template-columns:1fr}.request-card{position:static}.cover{height:250px}.identity{padding:0 24px 26px}.identity h1{font-size:34px}.gallery{grid-template-columns:repeat(2,1fr)}.editor-bar strong{display:none}.editor-bar{align-items:flex-start}.editor-bar>div{width:100%}.editor-bar button,.editor-bar div a{flex:1;text-align:center}.public-nav>span{display:none}}
@media(max-width:520px){.public-shell{padding:0 14px}.public-nav{height:74px}.brand{width:145px}.profile-hero{border-radius:22px}.cover{height:190px}.identity{align-items:flex-end;gap:14px;margin-top:-42px;padding:0 18px 22px}.logo-wrap{width:92px;height:92px;border-width:5px;border-radius:24px}.identity h1{font-size:27px}.tagline{font-size:14px}.trust-row{margin-top:8px}.profile-grid{margin-top:14px}.content-card,.request-card,.editor-panel{padding:20px;border-radius:20px}.gallery{gap:8px}.editor-panel form{grid-template-columns:1fr}.editor-panel .wide{grid-column:auto}.editor-bar{position:relative;flex-wrap:wrap}.editor-bar>a{display:none}}
.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.profile-stats>div{padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 12px 30px #6922430a}.profile-stats strong{display:block;color:var(--navy);font-size:25px;line-height:1.1}.profile-stats span{display:block;margin-top:5px;color:var(--muted);font-size:12px;font-weight:750}.rating-badge{align-self:center;padding:8px 12px;border-radius:999px;background:#fff7df;color:#a66d00;font-size:12px;font-weight:850}.reviews-list{display:grid;gap:13px}.review{padding:14px 0;border-bottom:1px solid var(--line)}.review:last-child{border-bottom:0}.review-head{display:flex;justify-content:space-between;gap:12px}.review-author{font-weight:850}.review-stars{color:#f5a400;letter-spacing:1px}.review p{margin:6px 0 0;color:var(--muted);white-space:pre-line}.reviews-empty{margin:0}.editor-panel small{display:block;margin-top:5px;color:var(--muted);font-size:11px;font-weight:600}@media(max-width:650px){.profile-stats{grid-template-columns:1fr}.profile-stats>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.profile-stats span{margin-top:0;text-align:right}.review-head{display:block}.review-stars{display:block;margin-top:3px}}
.identity-copy{padding-top:55px}.name-extra{margin:2px 0 0;color:var(--brand);font-size:18px;font-weight:800}.identity-copy .tagline{margin-top:4px}.editor-panel label small{font-weight:650}
@media(max-width:520px){.identity-copy{padding-top:42px}.name-extra{font-size:15px}}
.editor-panel select{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid var(--line);border-radius:12px;font:inherit;background:#fff;color:var(--ink)}
.editor-panel[hidden]{display:none!important}
.editor-bar[hidden]{display:none!important}
.verified-badge,.location-badge{display:inline-flex!important;align-items:center;gap:7px}.location-badge{background:#fff0f2!important;color:#b73f55!important}.location-badge>span:first-child{color:#cc4e61;font-size:11px}.cta-actions{display:grid;gap:9px;margin-top:18px}.cta-actions button,.cta-actions a{display:flex;align-items:center;justify-content:center;gap:10px;min-height:45px;width:100%;border-radius:14px;font:inherit;font-size:13px;font-weight:900;text-decoration:none;cursor:pointer}.cta-primary{border:0;background:linear-gradient(90deg,#c94862,#d65a73);color:#fff;box-shadow:0 10px 20px #c9486228}.cta-primary span:last-child{font-size:23px;line-height:0}.cta-whatsapp{border:0;background:#25d366;color:#fff;box-shadow:0 10px 20px #25d36635}.cta-whatsapp:hover{background:#1fbd5a;transform:translateY(-1px)}.cta-whatsapp svg{width:19px;height:19px;fill:currentColor;flex:0 0 auto}.cta-whatsapp span:last-child{font-size:22px;line-height:0}.cta-save{border:0;background:#fbecef;color:#52617c}.cta-save.is-saved{background:#e9f8ef;color:#16845a}.save-message{min-height:0;margin:0;text-align:center;color:#16845a;font-size:12px;font-weight:750}.cta-actions+small{margin-top:14px}

/* Perfil sem gradientes: a cor escolhida aparece sempre de forma sólida. */
body{background:#fffaf8}
.cover{background:var(--brand);background-size:cover;background-position:center}
.cover-shade{background:transparent}
.logo-wrap{background:#fff7fa}
.request-card{background:#fff}
.request-card .spark{background:var(--brand)}
.editor-panel{background:#fff}
.cta-primary{background:var(--brand)}
.request-card button,.editor-bar button{background:#10264a;background-image:none;box-shadow:0 10px 22px #10264a25}
.request-card button:hover,.editor-bar button:hover{background:#1b3b70}
#saveProvider,#saveProfile{background:#10264a!important;background-image:none!important;color:#fff!important;box-shadow:0 10px 22px #10264a25!important}
#saveProvider:hover,#saveProfile:hover{background:#1b3b70!important}
.location-badge{background:#e9f8ef!important;color:#16845a!important}
.location-badge>span:first-child{padding:0!important;background:transparent!important;color:inherit!important;font-size:11px!important}
.cover{height:auto;aspect-ratio:1600 / 450;min-height:0}
@media(max-width:850px){.cover{height:auto;aspect-ratio:1600 / 450}}
@media(max-width:520px){.cover{height:auto;aspect-ratio:1600 / 450}}
.editor-panel label .image-guide{padding:9px 11px;border-radius:10px;background:#fff7ed;color:#8a6100;font-size:11px;line-height:1.45}.editor-panel label .image-guide strong{color:#6e4b00}.editor-panel label .image-guide span{color:var(--muted)}
.social-access-card{background:linear-gradient(135deg,#fff8fb,#fffdf9);border-color:#f2d6e3}.social-access-card .section-head{align-items:center}.social-lock{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#fff0f6;color:#ed0b70;font-size:17px;font-weight:900}.social-lock.unlocked{background:#e8f8ef;color:#16845b}.social-access-copy{margin:4px 0 15px;color:#687995;font-size:13px;line-height:1.55}.public-social-links{display:flex;flex-wrap:wrap;gap:8px}.public-social-link{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid #efdae4;border-radius:12px;background:#fff;color:#102b52;text-decoration:none;font-size:12px;font-weight:850}.public-social-link span{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#fff0f6;color:#ed0b70;font-weight:900}.public-social-link.whatsapp{border-color:#ccebdc;background:#f4fcf8}.public-social-link.whatsapp span{background:#ddf7e9;color:#118657}.public-social-link b{margin-left:4px;color:#ed0b70}.public-social-link.whatsapp b{color:#118657}.social-unlock{margin-top:15px;min-height:40px;padding:0 14px;border:0;border-radius:11px;background:#102b52;color:#fff;font:inherit;font-size:11px;font-weight:900;cursor:pointer}.social-unlock:hover{background:#1e467a}@media(max-width:720px){.social-access-copy{font-size:12px}.public-social-links{display:grid;grid-template-columns:1fr 1fr}.public-social-link{font-size:11px}}
.profile-grid{display:block!important;grid-template-columns:none!important}.profile-grid>.profile-main{width:100%;max-width:none}

/* Cabeçalho público: montra centrada, humana e pronta a partilhar. */
.profile-hero{position:relative;overflow:hidden;border-color:#ecdde5;border-radius:34px;background:#fff;box-shadow:0 24px 64px rgba(47,25,51,.09)}
.profile-hero::after{content:"";position:absolute;inset:auto -90px -120px auto;width:300px;height:300px;border-radius:50%;background:color-mix(in srgb,var(--brand) 7%,transparent);pointer-events:none}
.cover{height:clamp(180px,24vw,286px);aspect-ratio:auto!important;background-color:var(--brand);background-position:center;background-size:cover}
.cover::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(16,38,74,.08),transparent 45%,rgba(255,255,255,.08));pointer-events:none}
.cover-shade{display:block;background:linear-gradient(180deg,transparent 45%,rgba(16,38,74,.2))}
.identity{display:flex;flex-direction:column;align-items:center;gap:0;margin-top:-76px;padding:0 38px 24px;text-align:center}
.logo-wrap{position:relative;z-index:2;width:152px;height:152px;flex:0 0 152px;border:7px solid #fff;border-radius:50%;background:#fff7fa;box-shadow:0 15px 38px rgba(16,38,74,.18),0 0 0 1px rgba(237,11,112,.1);font-size:42px}
.logo-wrap::after{content:"";position:absolute;inset:5px;border:1px solid rgba(255,255,255,.7);border-radius:inherit;pointer-events:none}
.logo-wrap img{object-fit:cover;border-radius:inherit}
.identity-copy{max-width:760px;padding-top:17px}
.identity-copy .eyebrow{display:inline-flex;align-items:center;justify-content:center;margin:0 0 11px;padding:6px 12px;border-radius:999px;background:#fff0f6;color:var(--brand);font-size:10px;letter-spacing:1.7px}
.identity h1{margin:0;color:var(--name-color,var(--navy));font-size:clamp(34px,5vw,54px);line-height:1.02;letter-spacing:-2.1px;text-wrap:balance}
.name-extra{margin:7px 0 0;color:var(--brand);font-size:17px;font-weight:850}
.identity-copy .tagline{max-width:620px;margin:13px auto 0;color:#62708a;font-size:clamp(15px,2vw,18px);line-height:1.55;text-wrap:balance}
.trust-row{position:relative;z-index:2;display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:0;padding:18px 30px 22px;border-top:1px solid #f1e7ec;background:linear-gradient(180deg,#fff,#fffbfc)}
.trust-row>span{display:inline-flex!important;align-items:center;gap:8px;min-height:40px;padding:9px 15px;border:1px solid #d8eee3;border-radius:999px;background:#eefaf3!important;color:#167958!important;font-size:12px;font-weight:850;line-height:1.15}
.trust-row .trust-icon{display:grid!important;place-items:center;width:21px;height:21px;padding:0!important;border:0!important;border-radius:50%;background:#1d966b!important;color:#fff!important;font-size:12px!important;line-height:1!important}
.trust-row .location-badge{border-color:#d8eee3;background:#eefaf3!important;color:#167958!important}
.trust-row .location-badge .trust-icon{background:#1d966b!important;color:#fff!important;font-size:14px!important}
.public-nav-meta{display:flex;align-items:center;justify-content:flex-end;gap:12px;color:var(--muted);font-size:13px;font-weight:750}
.public-nav .provider-code-badge{display:inline-flex;align-items:center;min-height:36px;padding:8px 13px;border:1px solid #e1e7f1;border-radius:999px;background:#fff;color:#425370;font-size:12px;font-weight:900;letter-spacing:.25px;box-shadow:0 8px 20px rgba(16,38,74,.06)}
.public-nav .provider-code-badge[hidden]{display:none!important}
.public-request-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 17px;border:0;border-radius:13px;background:linear-gradient(90deg,var(--brand),#f23f63,var(--orange));color:#fff;font:inherit;font-size:13px;font-weight:900;white-space:nowrap;cursor:pointer;box-shadow:0 10px 24px color-mix(in srgb,var(--brand) 22%,transparent);transition:transform .18s,box-shadow .18s}
.public-request-button:hover{transform:translateY(-1px);box-shadow:0 13px 28px color-mix(in srgb,var(--brand) 28%,transparent)}

@media(max-width:850px){
  .cover{height:220px}
  .identity{margin-top:-68px;padding:0 28px 22px}
  .logo-wrap{width:136px;height:136px;flex-basis:136px}
}
.public-social-link>span{font-size:0}.public-social-link>span::before{font-size:14px;line-height:1}.public-social-link.instagram>span::before{content:'◎'}.public-social-link.facebook>span::before{content:'f';font-weight:900}.public-social-link.tiktok>span::before{content:'♪'}.public-social-link.website>span::before{content:'⊕'}.public-social-link.whatsapp>span::before{content:'◉'}.social-unlock{display:inline-flex;align-items:center;gap:8px;min-height:43px;padding:0 17px;border-radius:13px;background:linear-gradient(135deg,#102b52,#1d477c);box-shadow:0 10px 22px rgba(16,43,82,.16);font-size:0}.social-unlock::before{content:'◉';display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#dff8ea;color:#118657;font-size:13px}.social-unlock::after{content:'Pedir acesso';font-size:11px;font-weight:900}.social-unlock:hover{background:linear-gradient(135deg,#1d477c,#2b5b91)}
.social-access-card .social-lock{display:none}.social-unlock{gap:0}.social-unlock::before{display:none}.social-unlock::after{font-size:11px}
@media(max-width:520px){
  .profile-hero{border-radius:26px}
  .cover{height:156px}
  .identity{align-items:center;gap:0;margin-top:-56px;padding:0 18px 20px;text-align:center}
  .logo-wrap{width:112px;height:112px;flex-basis:112px;border-width:5px;font-size:32px}
  .identity-copy{padding-top:14px}
  .identity-copy .eyebrow{margin-bottom:9px;padding:5px 10px;font-size:9px}
  .identity h1{font-size:32px;letter-spacing:-1.35px}
  .name-extra{font-size:14px}
  .identity-copy .tagline{margin-top:10px;font-size:14px;line-height:1.48}
  .trust-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px}
  .trust-row>span{justify-content:center;min-width:0;padding:8px 10px;text-align:center}
  .safe-booking-label{display:none}
  .public-nav-meta{margin-left:auto}
  .public-nav .provider-code-badge{min-height:34px;padding:7px 11px;font-size:11px}
  .public-request-button{min-height:39px;padding:9px 12px;font-size:11px}
}

/* Reserva separada da identidade; favorito integrado no cartão. */
.profile-hero>.save-provider-button{position:absolute;z-index:6;top:calc(clamp(180px,24vw,286px) - 29px);right:32px;display:flex;align-items:center;justify-content:center;gap:9px;min-width:58px;height:58px;padding:0 17px;border:1px solid rgba(237,11,112,.16);border-radius:999px;background:rgba(255,255,255,.96);color:#b72d62;box-shadow:0 14px 36px rgba(36,25,44,.16);backdrop-filter:blur(12px)}
.profile-hero>.save-provider-button:hover{border-color:#edb9cf;background:#fff;transform:translateY(-2px)}
.profile-hero>.save-provider-button .favorite-heart{font-size:27px}
.profile-hero>.save-provider-button .favorite-label{font-size:11px;white-space:nowrap}
.profile-hero>.save-provider-button.is-saved{border-color:#f3bfd2;background:#fff0f6;color:var(--brand)}
.profile-booking-bar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:17px;margin:18px 0 20px;padding:17px 18px;border:1px solid #eadde5;border-radius:22px;background:linear-gradient(115deg,#fff,#fff9fb 58%,#fff8ed);box-shadow:0 15px 38px rgba(53,29,48,.07)}
.booking-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:16px;background:linear-gradient(145deg,#fff0f6,#fff1df);color:var(--brand);font-size:23px;box-shadow:inset 0 0 0 1px rgba(237,11,112,.08)}
.booking-copy{min-width:0}
.booking-copy small,.booking-copy strong,.booking-copy span{display:block}
.booking-copy small{margin-bottom:2px;color:var(--brand);font-size:9px;font-weight:950;letter-spacing:.85px;text-transform:uppercase}
.booking-copy strong{color:var(--navy);font-size:17px;line-height:1.25}
.booking-copy span{margin-top:2px;color:#6c7890;font-size:12px;line-height:1.4}
.profile-booking-bar .public-request-button{min-width:174px;min-height:50px;padding:10px 13px 10px 18px;border-radius:15px;font-size:13px;box-shadow:0 12px 25px color-mix(in srgb,var(--brand) 22%,transparent)}
.profile-booking-bar .request-button-arrow{width:30px;height:30px;flex-basis:30px;font-size:18px}
@media(max-width:620px){
  .profile-hero>.save-provider-button{top:132px;right:18px;width:48px;min-width:48px;height:48px;padding:0}
  .profile-hero>.save-provider-button .favorite-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .profile-hero>.save-provider-button .favorite-heart{font-size:25px}
  .profile-booking-bar{grid-template-columns:auto minmax(0,1fr);gap:12px;margin:13px 0 15px;padding:15px;border-radius:19px}
  .booking-icon{width:43px;height:43px;border-radius:14px;font-size:20px}
  .booking-copy strong{font-size:15px}
  .booking-copy span{font-size:11px}
  .profile-booking-bar .public-request-button{grid-column:1/-1;width:100%;min-height:49px;margin-top:2px;border-radius:14px;font-size:13px}
}
@media(max-width:390px){.public-nav .provider-code-badge{display:none!important}.public-request-button{padding-inline:11px}.brand{width:126px}}

/* Ações principais integradas no perfil. */
.profile-actions{position:relative;z-index:3;display:flex;align-items:stretch;justify-content:center;gap:10px;width:min(100%,560px);margin:24px auto 4px}
.profile-actions .public-request-button{flex:1;min-height:62px;padding:10px 17px 10px 21px;border-radius:18px;text-align:left;box-shadow:0 15px 30px color-mix(in srgb,var(--brand) 24%,transparent)}
.request-button-copy{display:flex;flex:1;flex-direction:column;align-items:flex-start;font-size:16px;line-height:1.2}
.request-button-copy small{margin-bottom:4px;color:rgba(255,255,255,.78);font-size:9px;font-weight:800;letter-spacing:.65px;text-transform:uppercase}
.request-button-arrow{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:rgba(255,255,255,.18);font-size:20px;transition:transform .18s}
.profile-actions .public-request-button:hover .request-button-arrow{transform:translateX(2px)}
.save-provider-button{display:flex;align-items:center;justify-content:center;gap:8px;min-width:128px;padding:10px 16px;border:1px solid #ebdbe4;border-radius:18px;background:#fff;color:#ad315f;font:inherit;font-size:12px;font-weight:900;cursor:pointer;box-shadow:0 12px 26px rgba(54,30,50,.08);transition:transform .18s,border-color .18s,background .18s,color .18s}
.save-provider-button:hover{transform:translateY(-1px);border-color:#edb9cf;background:#fff8fb}
.favorite-heart{font-size:25px;font-weight:500;line-height:1;transition:transform .18s}
.save-provider-button:hover .favorite-heart{transform:scale(1.08)}
.save-provider-button.is-saved{border-color:#f3bfd2;background:#fff0f6;color:var(--brand)}
.save-provider-button.is-saved .favorite-heart{animation:favorite-pop .3s ease}
@keyframes favorite-pop{50%{transform:scale(1.28)}}
@media(max-width:520px){
  .public-nav{height:82px}
  .public-nav-meta{gap:7px}
  .profile-actions{gap:8px;margin-top:20px}
  .profile-actions .public-request-button{min-height:58px;padding:9px 13px 9px 16px;border-radius:16px}
  .request-button-copy{font-size:14px}
  .request-button-copy small{font-size:8px;letter-spacing:.45px}
  .request-button-arrow{width:31px;height:31px;flex-basis:31px;font-size:18px}
  .save-provider-button{min-width:58px;padding:8px;border-radius:16px}
  .save-provider-button .favorite-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .favorite-heart{font-size:28px}
}

/* Portefólio com assinatura FestasGo e expositor imersivo. */
.portfolio-head{align-items:flex-end;gap:18px}
.gallery-hint{flex:0 0 auto;margin-bottom:13px;color:#7b8496;font-size:11px;font-weight:800}
.gallery{grid-auto-flow:dense}
.gallery figure{position:relative;border:1px solid #f0e1e8;box-shadow:0 10px 25px rgba(52,26,48,.07)}
.gallery:has(figure:nth-child(3)) figure:first-child{grid-column:span 2;grid-row:span 2}
.gallery-open{position:relative;display:block;width:100%;height:100%;padding:0;overflow:hidden;border:0;background:#f5edf2;cursor:zoom-in}
.gallery-open::after,.festasgo-watermark{content:"";position:absolute;z-index:1;right:50%;bottom:50%;width:clamp(148px,58%,270px);height:clamp(62px,30%,122px);border:0;border-radius:0;background:url('/assets/festasgo-wordmark-cropped.webp') center/contain no-repeat;box-shadow:none;opacity:.2;filter:drop-shadow(0 2px 5px rgba(16,38,74,.2));pointer-events:none;transform:translate(50%,50%)}
.gallery-open::before,.festasgo-corner-mark{content:"";position:absolute;z-index:2;right:11px;bottom:11px;width:72px;height:32px;background:url('/assets/festasgo-wordmark-cropped.webp') center/contain no-repeat;opacity:1;filter:drop-shadow(0 1px 3px rgba(16,38,74,.35));pointer-events:none}
.gallery-open img{display:block}
.gallery-open:focus-visible{outline:4px solid color-mix(in srgb,var(--brand) 35%,transparent);outline-offset:-4px}
.gallery-zoom{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.75);border-radius:50%;background:rgba(16,38,74,.68);color:#fff;font-size:16px;font-weight:900;opacity:0;transform:translateY(-5px);transition:.22s;backdrop-filter:blur(8px)}
.gallery-open:hover .gallery-zoom,.gallery-open:focus-visible .gallery-zoom{opacity:1;transform:none}
body.lightbox-open{overflow:hidden}
.portfolio-lightbox{position:fixed;inset:0;z-index:100;display:grid;grid-template-columns:72px minmax(0,1fr) 72px;align-items:center;gap:18px;padding:34px;background:rgba(6,15,31,.88);opacity:0;transition:opacity .18s ease;backdrop-filter:blur(15px)}
.portfolio-lightbox[hidden]{display:none}
.portfolio-lightbox.is-open{opacity:1}
.lightbox-stage{position:relative;width:min(100%,1080px);height:min(82vh,820px);margin:auto;display:grid;place-items:center;overflow:hidden;border-radius:24px;background:#09162a;box-shadow:0 28px 90px rgba(0,0,0,.45)}
.lightbox-stage img{display:block;width:100%;height:100%;object-fit:contain;animation:galleryReveal .28s ease}
.lightbox-stage .festasgo-watermark{right:50%;bottom:50%;width:min(360px,52%);height:138px;background-size:contain;opacity:.22;transform:translate(50%,50%)}
.lightbox-stage .festasgo-corner-mark{right:20px;bottom:72px;width:104px;height:46px}
.lightbox-stage figcaption{position:absolute;inset:auto 0 0;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:54px;padding:12px 18px;background:linear-gradient(180deg,transparent,rgba(4,13,28,.9));color:#fff;font-size:12px}
.lightbox-stage figcaption span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lightbox-stage figcaption strong{flex:0 0 auto;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,var(--brand) 78%,#10264a);font-size:11px}
.lightbox-close,.lightbox-arrow{display:grid;place-items:center;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.11);color:#fff;cursor:pointer;backdrop-filter:blur(10px);transition:.2s}
.lightbox-close{position:absolute;top:20px;right:20px;z-index:2;width:46px;height:46px;border-radius:50%;font-size:30px;font-weight:300}
.lightbox-arrow{width:58px;height:58px;border-radius:50%;font-size:42px;line-height:1}
.lightbox-arrow:hover,.lightbox-close:hover{border-color:#fff;background:#fff;color:#10264a;transform:scale(1.04)}
@keyframes galleryReveal{from{opacity:.35;transform:scale(.985)}to{opacity:1;transform:none}}
@media(max-width:720px){
  .portfolio-head{display:block}.gallery-hint{display:block;margin:-5px 0 14px;text-align:left}
  .gallery:has(figure:nth-child(3)) figure:first-child{grid-column:1/-1;grid-row:auto;aspect-ratio:1.45}
  .gallery-open::after{right:50%;bottom:50%;width:62%;height:29%;background-size:contain;transform:translate(50%,50%)}
  .gallery-open::before{right:8px;bottom:8px;width:58px;height:26px}
  .gallery-zoom{display:none}
  .portfolio-lightbox{display:block;padding:0;background:rgba(4,12,26,.96)}
  .portfolio-lightbox[hidden]{display:none}
  .lightbox-stage{width:100%;height:100%;border-radius:0;box-shadow:none}
  .lightbox-stage .festasgo-watermark{right:50%;bottom:50%;width:64%;height:110px;background-size:contain;transform:translate(50%,50%)}
  .lightbox-stage .festasgo-corner-mark{right:14px;bottom:78px;width:88px;height:39px}
  .lightbox-stage figcaption{min-height:62px;padding:14px 16px}
  .lightbox-arrow{position:absolute;top:50%;z-index:2;width:44px;height:54px;border-radius:14px;font-size:34px;transform:translateY(-50%)}
  .lightbox-arrow:hover{transform:translateY(-50%)}
  .lightbox-prev{left:10px}.lightbox-next{right:10px}
  .lightbox-close{top:14px;right:14px;width:42px;height:42px}
}

/* Ações públicas finais: simples, sólidas e sem degradés. */
.profile-hero>#saveProvider.save-provider-button{top:calc(clamp(180px,24vw,286px) + 16px);right:34px;min-width:auto;height:42px;padding:0;border:0;border-radius:0;background:transparent!important;background-image:none!important;color:#111827!important;box-shadow:none!important;backdrop-filter:none;gap:8px}
.profile-hero>.save-provider-button:hover{border:0;background:transparent;color:var(--brand);box-shadow:none;transform:none}
.profile-hero>.save-provider-button .favorite-heart{display:inline-block;font-size:25px;color:#111827;line-height:1;transform-origin:center;transition:color .18s,transform .18s}
.profile-hero>.save-provider-button .favorite-label{color:currentColor;font-size:12px;font-weight:850}
.profile-hero>#saveProvider.save-provider-button.is-saved{border:0;background:transparent!important;color:var(--brand)!important}
.profile-hero>.save-provider-button.is-saved .favorite-heart{color:var(--brand);animation:favorite-heart-zoom .42s cubic-bezier(.2,.85,.35,1.25)}
.profile-hero>.save-provider-button.is-preview{color:var(--brand)}
.profile-hero>.save-provider-button.is-preview .favorite-heart{color:var(--brand);animation:favorite-heart-zoom .42s cubic-bezier(.2,.85,.35,1.25)}
@keyframes favorite-heart-zoom{0%{transform:scale(1)}45%{transform:scale(1.52)}72%{transform:scale(.92)}100%{transform:scale(1)}}
.profile-booking-bar{gap:20px;padding:20px 21px;border-color:#e9e1e6;border-radius:22px;background:#fff;box-shadow:0 13px 34px rgba(44,31,45,.065)}
.booking-icon{width:52px;height:52px;border-radius:16px;background:#fff4f7;color:var(--brand);box-shadow:none}
.booking-copy small{color:#6d7280}
.booking-copy strong{font-size:18px}
.booking-copy span{font-size:12px}
.profile-booking-bar .public-request-button{min-width:244px;min-height:58px;padding:11px 13px 11px 22px;border-radius:16px;background:#10264a;background-image:none;color:#fff;font-size:14px;box-shadow:0 12px 24px rgba(16,38,74,.18)}
.profile-booking-bar .public-request-button:hover{background:#173661;box-shadow:0 15px 29px rgba(16,38,74,.23)}
.profile-booking-bar .request-button-arrow{background:rgba(255,255,255,.12)}
@media(max-width:620px){
  .profile-hero>.save-provider-button{top:166px;right:20px;width:auto;min-width:auto;height:34px;padding:0;gap:6px}
  .profile-hero>.save-provider-button .favorite-label{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:nowrap;font-size:11px}
  .profile-hero>.save-provider-button .favorite-heart{font-size:23px}
  .profile-booking-bar{gap:12px;padding:17px;border-radius:19px}
  .profile-booking-bar .public-request-button{min-height:56px;margin-top:5px;border-radius:15px;font-size:14px}
}
