/* Forever Bond Studio v2 — componentes. Classes com prefixo v2-; os valores vêm dos tokens (no tema: --v2-<token>). */
.v2{font-family:var(--font-sans);color:var(--ink);background:var(--surface);-webkit-font-smoothing:antialiased}
.v2 *,.v2 *::before,.v2 *::after{box-sizing:border-box}
.v2 :where(a){color:inherit;text-decoration:none}
.v2-serif{font-family:var(--font-serif);font-weight:400}
.v2-up{text-transform:uppercase}

/* Botões */
.v2-btn{display:inline-flex;align-items:center;justify-content:center;height:54px;padding:0 30px;border-radius:var(--radius-pill);border:1.5px solid var(--ink);background:var(--ink);color:var(--on-inverse);font:600 14px/1 var(--font-sans);cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}
.v2-btn:hover{background:var(--brand-hover);border-color:var(--brand-hover)}
.v2-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.v2-btn--md{height:48px;padding:0 26px;font-size:13.5px}
.v2-btn--sm{height:44px;padding:0 22px;font-size:13px}
.v2-btn--outline{background:transparent;color:var(--ink);border-width:1px}
.v2-btn--outline:hover{background:var(--ink);color:var(--on-inverse);border-color:var(--ink)}
.v2-btn--block{display:flex;width:100%}
.v2-btn:disabled,.v2-btn[aria-disabled="true"]{background:var(--disabled);border-color:var(--disabled);color:var(--on-inverse);cursor:not-allowed}

/* Link sublinhado */
.v2-link{display:inline-block;font:600 13px/1.3 var(--font-sans);color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:2px;cursor:pointer}
.v2-link:hover{color:var(--brand-hover);border-color:var(--brand-hover)}
.v2-link--lg{font-size:14px}

/* Texto de apoio */
.v2-eyebrow{font:400 13px/1.3 var(--font-serif);letter-spacing:.14em;color:var(--brand);text-transform:uppercase}
.v2-kicker{font:600 10px/1.3 var(--font-sans);letter-spacing:.16em;color:var(--brand);text-transform:uppercase}
.v2-h2{margin:0;font:400 42px/1.1 var(--font-serif);text-transform:uppercase;text-wrap:balance}
.v2-body{font:400 15px/1.65 var(--font-sans);color:var(--text-secondary);text-wrap:pretty}
.v2-body-sm{font:400 14px/1.55 var(--font-sans);color:var(--text-secondary)}

/* Barra de anúncio */
.v2-announce{background:var(--surface-inverse);color:var(--on-inverse);font:500 11px/1.3 var(--font-sans);letter-spacing:.02em;padding:9px 16px;text-align:center}

/* Header */
.v2-header{position:sticky;top:0;z-index:20;background:var(--header-glass);backdrop-filter:blur(10px);border-bottom:1px solid rgba(29,26,36,.07)}
.v2-header__in{max-width:var(--container);margin:0 auto;padding:0 var(--page-x-desktop);height:var(--header-height);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:40px}
.v2-wordmark{display:flex;flex-direction:column;line-height:1}
.v2-wordmark__name{font:400 19px/1 var(--font-serif);letter-spacing:.22em}
.v2-wordmark__sub{font:500 8px/1 var(--font-sans);letter-spacing:.44em;margin-top:6px;color:var(--text-tertiary)}
.v2-nav{display:flex;justify-content:center;gap:34px;font:500 13px var(--font-sans)}
.v2-nav a,.v2-nav button{padding:28px 0;border:0;border-bottom:1.5px solid transparent;background:none;font:inherit;color:var(--ink);cursor:pointer}
.v2-nav [aria-expanded="true"]{border-bottom-color:var(--ink)}
.v2-nav__caret{font-size:9px;color:var(--text-muted)}
.v2-header__actions{display:flex;align-items:center;gap:18px}
.v2-bag{position:relative;width:40px;height:44px;border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}
.v2-bag__handle{width:9px;height:6px;border:1.5px solid var(--ink);border-bottom:0;border-radius:5px 5px 0 0}
.v2-bag__body{width:18px;height:15px;border:1.5px solid var(--ink);border-radius:2px 2px 4px 4px}
.v2-bag__count{position:absolute;top:6px;right:0;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--brand);color:var(--on-inverse);font:700 9px/16px var(--font-sans);text-align:center}
.v2-header--mobile .v2-header__in{height:auto;padding:8px 12px;grid-template-columns:44px 1fr 44px;gap:0}
.v2-header--mobile .v2-wordmark{align-items:center}
.v2-header--mobile .v2-wordmark__name{font-size:17px;margin-right:-.22em}
.v2-header--mobile .v2-wordmark__sub{font-size:7.5px;margin-top:5px;margin-right:-.44em}
.v2-burger{width:44px;height:44px;border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer}
.v2-burger span{width:20px;height:1.5px;background:var(--ink)}

/* Hero */
.v2-hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);max-width:var(--container-hero);margin:0 auto}
.v2-hero__img{order:2;display:block;width:100%;height:780px;object-fit:cover}
.v2-hero__text{align-self:center;padding:48px 72px 48px 64px}
.v2-hero__title{margin:0;font:400 78px/.98 var(--font-serif);text-transform:uppercase}
.v2-hero__ess{display:flex;justify-content:space-between;align-items:baseline;gap:8px 16px;flex-wrap:wrap;margin-top:32px;padding-bottom:12px;border-bottom:1px solid var(--ink);font:500 11px var(--font-sans);letter-spacing:.1em;max-width:460px}
.v2-hero__lead{margin:18px 0 40px;font:400 17px/1.6 var(--font-sans);color:var(--text-secondary);max-width:400px;text-wrap:pretty}
.v2-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}

/* Lista de factos */
.v2-facts{border-bottom:1px solid var(--rule)}
.v2-facts__row{display:grid;grid-template-columns:170px minmax(0,1fr);gap:4px 20px;padding:15px 0;border-top:1px solid var(--rule)}
.v2-facts__t{font:400 17px/1.3 var(--font-serif);text-transform:uppercase}
.v2-facts__d{font:400 14px/1.55 var(--font-sans);color:var(--text-secondary)}

/* Lista de preços */
.v2-prices{border-bottom:1px solid var(--rule)}
.v2-prices__row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:18px 0;border-top:1px solid var(--rule);color:var(--ink)}
.v2-prices__row:hover,.v2-prices__row[aria-current="true"]{color:var(--brand-hover)}
.v2-prices__n{display:flex;flex-direction:column;gap:3px;font:400 24px var(--font-serif);text-transform:uppercase}
.v2-prices__s{font:400 12.5px var(--font-sans);color:var(--text-tertiary);text-transform:none}
.v2-prices__p{font:400 20px var(--font-serif);white-space:nowrap}
.v2-prices__foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px;font:500 13px var(--font-sans);color:var(--text-secondary)}

/* Passos */
.v2-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 32px}
.v2-steps__item{padding:18px 0 22px;border-top:1px solid var(--ink);display:flex;flex-direction:column;gap:8px}
.v2-steps__k{font:400 13px var(--font-serif);color:var(--brand)}
.v2-steps__t{font:400 22px/1.15 var(--font-serif);text-transform:uppercase}
.v2-steps__d{font:400 14px/1.55 var(--font-sans);color:var(--text-secondary);text-wrap:pretty}
.v2-dark{background:var(--surface-inverse);color:var(--on-inverse)}
.v2-dark .v2-steps__item{border-top-color:var(--rule-inverse);padding:20px 0 24px}
.v2-dark .v2-steps__k{font:600 10px var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brand-on-inverse)}
.v2-dark .v2-steps__d,.v2-dark .v2-body{color:var(--inverse-secondary)}

/* Cidades */
.v2-cities__item{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 0;border:0;border-bottom:1px solid var(--rule);background:none;text-align:left;cursor:pointer;color:var(--text-muted);font:400 20px var(--font-serif);text-transform:uppercase}
.v2-cities__item[aria-selected="true"]{color:var(--ink)}
.v2-cities__item[aria-selected="true"]::after{content:"→";font:500 16px var(--font-sans)}
.v2-card{padding:44px;background:var(--surface-raised);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:10px}
.v2-card__title{font:400 48px/1.05 var(--font-serif);text-transform:uppercase}
.v2-card__foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:12px;padding-top:16px;border-top:1px solid rgba(29,26,36,.1)}
.v2-card__meta{font:400 11px var(--font-sans);color:var(--text-tertiary)}
.v2-card__val{font:600 14px var(--font-sans);margin-top:2px}

/* Tabs em pílula (cidades em mobile) */
.v2-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}
.v2-tab{flex:none;height:40px;padding:0 16px;border-radius:var(--radius-pill);border:1px solid rgba(29,26,36,.2);background:transparent;color:var(--ink);font:600 13px var(--font-sans);cursor:pointer}
.v2-tab[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:var(--on-inverse)}

/* Tags */
.v2-tags{display:flex;flex-wrap:wrap;gap:8px}
.v2-tag{padding:8px 14px;border-radius:var(--radius-pill);border:1px solid var(--border-input);font:500 12.5px var(--font-sans)}

/* FAQ */
.v2-faq__item{border-top:1px solid var(--rule)}
.v2-faq__q{width:100%;min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:none;border:0;padding:16px 0;text-align:left;cursor:pointer;font:400 18px/1.25 var(--font-serif);color:var(--ink)}
.v2-faq__q::after{content:"+";flex:none;font:400 20px/1 var(--font-sans)}
.v2-faq__q[aria-expanded="true"]::after{content:"−"}
.v2-faq__a{margin:0 0 18px;font:400 14px/1.6 var(--font-sans);color:var(--text-secondary);max-width:620px}
.v2-faq__q[aria-expanded="false"]+.v2-faq__a{display:none}

/* Banda de gift card */
.v2-giftband{background:var(--surface-lilac)}
.v2-giftband__in{max-width:var(--container);margin:0 auto;padding:96px 64px;display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:center}
.v2-giftband__card{display:block;width:100%;max-width:560px;aspect-ratio:3/2;object-fit:cover;border-radius:var(--radius-lg);box-shadow:var(--shadow-giftcard);transform:rotate(-2deg)}

/* Pré-visualização do gift card (design Simples) */
.v2-gc{position:relative;aspect-ratio:3/2;border-radius:var(--radius-lg);box-shadow:var(--shadow-giftcard-preview);background:radial-gradient(120% 90% at 30% 20%,var(--giftcard-simple-from),var(--giftcard-simple-to));display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
.v2-gc__name{font:400 36px/1 var(--font-serif);letter-spacing:.14em}
.v2-gc__sub{font:500 11px/1 var(--font-sans);letter-spacing:.5em;color:var(--text-tertiary);margin-top:10px}
.v2-gc__pill{position:absolute;bottom:12px;left:12px;padding:8px 14px;border-radius:var(--radius-pill);background:var(--pill-light);font:400 28px/1 var(--font-serif)}
.v2-gc__to{position:absolute;bottom:12px;right:12px;padding:8px 14px;border-radius:var(--radius-pill);background:var(--overlay-ink);color:var(--on-inverse);font:500 12px var(--font-sans);max-width:45%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Cartão de garantia (contorno) */
.v2-promise{padding:44px;border:1px solid var(--ink);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:14px}
.v2-promise__t{font:400 46px/1.02 var(--font-serif);text-transform:uppercase;text-wrap:balance}

/* Newsletter */
.v2-news{display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:end}
.v2-news__field{display:flex;border-bottom:1px solid var(--ink);margin-bottom:16px}
.v2-news__field input{flex:1;min-width:0;height:48px;border:0;background:transparent;font:400 15px var(--font-sans);color:var(--ink);outline:none}
.v2-news__field button{border:0;background:none;font:600 12px var(--font-sans);letter-spacing:.14em;color:var(--ink);cursor:pointer}

/* Footer */
.v2-footer{background:var(--surface-inverse);color:var(--footer-text)}
.v2-footer__in{max-width:var(--container);margin:0 auto;padding:64px 64px 40px;display:grid;grid-template-columns:minmax(0,2fr) repeat(4,minmax(0,1fr));gap:28px 24px;font:400 13px/2 var(--font-sans)}
.v2-footer__brand{font:400 22px/1 var(--font-serif);letter-spacing:.2em;color:var(--on-inverse)}
.v2-footer__addr{font:400 13px/1.6 var(--font-sans);color:var(--inverse-tertiary);margin-top:12px;max-width:260px}
.v2-footer__h{font:700 11px/2 var(--font-sans);letter-spacing:.1em;color:var(--on-inverse)}
.v2-footer a{display:block;color:var(--inverse-tertiary)}
.v2-footer a:hover{color:var(--on-inverse)}
.v2-footer__bar{max-width:var(--container);margin:0 auto;padding:16px 64px 28px;display:flex;justify-content:space-between;border-top:1px solid var(--line-inverse);font:500 12px var(--font-sans);color:var(--inverse-tertiary)}
.v2-footer__bar b{color:var(--on-inverse)}

/* Formulário */
.v2-form-sec{padding:28px 0;border-bottom:1px solid var(--line)}
.v2-form-label{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px;font:600 11px var(--font-sans);letter-spacing:.14em;text-transform:uppercase}
.v2-form-label small{font:500 12px var(--font-sans);letter-spacing:0;text-transform:none;color:var(--text-tertiary)}
.v2-field{display:flex;flex-direction:column;gap:6px}
.v2-field__label{display:flex;justify-content:space-between;font:500 12.5px var(--font-sans);color:var(--text-form)}
.v2-input{height:50px;padding:0 14px;border-radius:var(--radius-lg);border:1px solid var(--border-input);background:var(--surface-raised);font:400 15px var(--font-sans);color:var(--ink);width:100%}
textarea.v2-input{height:auto;padding:12px 14px;line-height:1.5;resize:vertical}
.v2-input:focus{outline:2px solid var(--brand);outline-offset:-1px}
.v2-field--error .v2-input{border:1.5px solid var(--error)}
.v2-field__error{font:500 12px var(--font-sans);color:var(--error)}
.v2-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.v2-value{height:54px;border-radius:var(--radius-lg);border:1px solid var(--rule);background:var(--surface-raised);color:var(--ink);font:400 19px var(--font-serif);cursor:pointer}
.v2-value--text{font:600 12.5px var(--font-sans)}
.v2-value[aria-pressed="true"]{background:var(--ink);border:1.5px solid var(--ink);color:var(--on-inverse)}
.v2-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.v2-choice{padding:6px;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);cursor:pointer;text-align:left;font:inherit;color:var(--ink)}
.v2-choice[aria-checked="true"]{border:1.5px solid var(--ink)}
.v2-choice__img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--radius-sm)}
.v2-choice__row{display:flex;justify-content:space-between;align-items:center;padding:8px 4px 4px;font:600 12.5px var(--font-sans)}
.v2-choice--card{padding:14px}
.v2-choice__desc{display:block;font:400 12.5px var(--font-sans);color:var(--text-secondary);margin-top:4px}
.v2-radio{flex:none;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--border-control);background:var(--surface-raised)}
[aria-checked="true"] .v2-radio{border:5px solid var(--ink)}
.v2-toggle{position:relative;flex:none;width:44px;height:26px;border-radius:13px;border:0;background:var(--toggle-off);cursor:pointer;transition:background .2s}
.v2-toggle::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--surface-raised);transition:transform .2s}
.v2-toggle[aria-checked="true"]{background:var(--brand)}
.v2-toggle[aria-checked="true"]::after{transform:translateX(18px)}
.v2-stepper{display:inline-flex;align-items:center;height:44px;border:1px solid var(--border-input);border-radius:var(--radius-pill);background:var(--surface-raised)}
.v2-stepper button{width:44px;height:44px;border:0;background:none;font:500 18px var(--font-sans);color:var(--ink);cursor:pointer}
.v2-stepper output{min-width:24px;text-align:center;font:600 14px var(--font-sans)}

/* Barra CTA sticky (mobile) */
.v2-ctabar{position:sticky;bottom:0;padding:12px 16px 22px;background:rgba(248,245,240,.97);border-top:1px solid rgba(29,26,36,.1)}
.v2-ctabar__sum{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;font:500 12.5px var(--font-sans);color:var(--text-secondary)}
.v2-ctabar__total{font:400 22px var(--font-serif);color:var(--ink)}

/* Preview placeholder for photography (from source previews — replace with real photos) */
.v2-ph{background:repeating-linear-gradient(135deg,#ece6dc 0 8px,#f4f0e9 8px 16px)}
