/* =========================================================
   TatiLab3D — folha de estilos principal
   Tokens extraídos do design (Claude Design) da home da loja.
   ========================================================= */

/* Fontes servidas pelo próprio site.
   Antes vinham por @import do Google Fonts, e isso criava uma fila: o
   navegador baixava este CSS, só então descobria o CSS das fontes, e só
   então as fontes — três idas e voltas antes de desenhar qualquer texto
   (1,2 s no relatório do PageSpeed, em 4G). Servidas daqui, saem na mesma
   conexão do site. São as mesmas fontes, em arquivo variável. */
@font-face{
  font-family:'Cinzel'; font-style:normal; font-weight:500 700; font-display:swap;
  src:url('/assets/fonts/cinzel-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Cinzel'; font-style:normal; font-weight:500 700; font-display:swap;
  src:url('/assets/fonts/cinzel-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Manrope'; font-style:normal; font-weight:400 800; font-display:swap;
  src:url('/assets/fonts/manrope-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Manrope'; font-style:normal; font-weight:400 800; font-display:swap;
  src:url('/assets/fonts/manrope-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Marcellus'; font-style:normal; font-weight:400; font-display:swap;
  src:url('/assets/fonts/marcellus-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Marcellus'; font-style:normal; font-weight:400; font-display:swap;
  src:url('/assets/fonts/marcellus-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  /* ---- cores de marca (identidade dourada da logo) ---- */
  --gold-50:#FBF7EE; --gold-100:#F5ECD7; --gold-200:#EAD7A8; --gold-300:#DDBF74;
  --gold-400:#D1A94A; --gold-500:#C09235; --gold-600:#A67A26; --gold-700:#86611D;
  --gold-800:#664917; --gold-900:#463211;

  /* escalas antigas mantidas só para estados do admin */
  --blue-100:#DBF1F5; --blue-700:#245F6D;

  --ink-050:#FCFAF5; --ink-100:#F4EEE3; --ink-200:#E7DECF; --ink-300:#ADA293;
  --ink-500:#75695A; --ink-700:#4A4035; --ink-900:#1C1712; --ink-950:#120E0A;

  --green-100:#E4F2EB; --green-600:#318B67;
  --amber-100:#FAEEE1; --amber-600:#B96B22;
  --red-100:#FBEAE8;   --red-600:#C0392B;

  --brand-whatsapp:#1FA855;
  --brand-mercadolivre:#FFE600;
  --brand-shopee:#EE4D2D;
  --brand-instagram:#C1358A;
  --white:#FFFFFF;

  /* ---- papéis semânticos ---- */
  /* accent-primary: texto/bordas douradas com contraste sobre fundo claro */
  --accent-primary:var(--gold-700);
  --accent-primary-hover:var(--gold-800);
  --accent-primary-press:var(--gold-900);
  --accent-soft:var(--gold-100);
  /* accent-fill: fundos dourados (sempre com --text-on-accent escuro) */
  --accent-fill:var(--gold-400);
  --accent-fill-hover:var(--gold-300);
  --accent-affection:var(--gold-500);
  --accent-affection-soft:var(--gold-100);
  --accent-cool:var(--ink-900);
  --accent-cool-soft:var(--ink-100);

  --surface-page:var(--ink-050);
  --surface-card:var(--white);
  --surface-muted:var(--ink-100);
  --surface-inverse:var(--ink-950);
  --surface-atelier:#FAF5EF;

  --text-heading:var(--ink-900);
  --text-body:var(--ink-700);
  --text-muted:var(--ink-500);
  --text-on-accent:var(--ink-900);
  --text-link:var(--gold-700);
  --text-link-hover:var(--gold-800);

  --border-subtle:var(--ink-200);
  --border-strong:var(--gold-200);
  --border-focus:var(--gold-600);

  --state-success:var(--green-600); --state-success-soft:var(--green-100);
  --state-deadline:var(--amber-600); --state-deadline-soft:var(--amber-100);
  --state-danger:var(--red-600);     --state-danger-soft:var(--red-100);

  --gradient-brand:linear-gradient(115deg,#B8892E 0%,#E3C06A 38%,#F6E3A6 52%,#D4AC4F 68%,#A67A26 100%);
  --gradient-brand-dark:linear-gradient(135deg,#120E0A 0%,#2A1F12 55%,#4A3514 100%);
  --gradient-brand-soft:linear-gradient(120deg,#FBF7EE 0%,#F5ECD7 55%,#EFE3C8 100%);
  --scrim-photo:linear-gradient(90deg,rgba(18,14,10,.7) 0%,rgba(18,14,10,.38) 46%,rgba(18,14,10,0) 74%);
  --scrim-photo-bottom:linear-gradient(0deg,rgba(18,14,10,.62) 0%,rgba(18,14,10,0) 62%);
  --scrim:rgba(18,14,10,.5);

  /* ---- tipografia ---- */
  --font-display:"Marcellus","Cinzel",Georgia,serif;
  --font-brand:"Cinzel","Marcellus",Georgia,serif;
  --font-ui:"Manrope",Arial,sans-serif;
  --text-xs:.75rem; --text-sm:.875rem; --text-body-size:1rem;
  --text-lead:clamp(1.0625rem,1.4vw,1.25rem);
  --text-h4:1.125rem;
  --text-h3:clamp(1.25rem,1.95vw,1.75rem);
  --text-h2:clamp(1.625rem,2.8vw,2.5rem);
  --text-h1:clamp(2rem,3.6vw,3.25rem);
  --text-hero:clamp(2.5rem,5vw,4.5rem);
  --text-eyebrow:.75rem;
  --leading-tight:1.08; --leading-heading:1.18; --leading-body:1.6; --leading-relaxed:1.75;
  --tracking-tight:-0.005em; --tracking-eyebrow:.16em;
  --weight-display:400; --weight-medium:500; --weight-semibold:600; --weight-bold:700;

  /* ---- espaçamento / grade ---- */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px;
  --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px; --space-14:56px;
  --space-16:64px; --space-18:72px; --space-22:88px; --space-28:112px;
  --container-max:1320px;
  --gutter:clamp(24px,4vw,64px);
  --gutter-mobile:24px;
  --grid-gap:clamp(16px,2vw,32px);
  --section-y:clamp(48px,7vw,112px);
  --section-y-tight:clamp(40px,5vw,72px);

  /* ---- forma / profundidade ---- */
  --radius-xs:6px; --radius-sm:10px; --radius-md:16px; --radius-lg:16px; --radius-xl:20px; --radius-2xl:24px;
  --radius-pill:999px;
  --radius-card:var(--radius-lg);
  --radius-media:var(--radius-md);
  --control-h-sm:36px; --control-h:44px; --control-h-lg:52px;
  --tap-min:44px;

  --shadow-card:0 1px 2px rgba(28,23,18,.04),0 8px 24px -12px rgba(134,97,29,.14);
  --shadow-card-hover:0 2px 4px rgba(28,23,18,.05),0 18px 40px -16px rgba(134,97,29,.22);
  --shadow-sticky:0 1px 0 var(--border-subtle),0 6px 20px -14px rgba(28,23,18,.18);
  --shadow-drawer:-16px 0 48px -16px rgba(28,23,18,.24);
  --ring-focus:0 0 0 3px rgba(193,146,53,.35);

  --dur-fast:160ms; --dur-base:240ms; --dur-slow:420ms;
  --ease-out:cubic-bezier(.22,.61,.36,1);
  --t-color:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);
  --t-shadow:box-shadow var(--dur-base) var(--ease-out);
  --t-transform:transform var(--dur-base) var(--ease-out);
  --media-zoom-hover:1.04;
  --blur-header:saturate(1.4) blur(14px);
}

/* ---------------------------------------------------------
   Reset básico
   --------------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--surface-page);
  color:var(--text-body);
  font-family:var(--font-ui);
  font-size:var(--text-body-size);
  line-height:var(--leading-body);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
button{ font-family:inherit; }
h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--text-heading);
  line-height:var(--leading-heading);
  letter-spacing:var(--tracking-tight);
  margin:0;
  font-weight:var(--weight-display);
}
h1{ font-size:var(--text-h1); }
h2{ font-size:var(--text-h2); }
h3{ font-size:var(--text-h3); }
h4{ font-size:var(--text-h4); }
p{ margin:0; }
ul{ list-style:none; margin:0; padding:0; }
:focus-visible{ outline:none; box-shadow:var(--ring-focus); border-radius:var(--radius-xs); }

.tl-container{
  width:100%;
  max-width:var(--container-max);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.tl-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:var(--text-xs);
  font-weight:var(--weight-bold);
  letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase;
  color:var(--accent-primary);
}
.tl-eyebrow::before{ content:""; width:24px; height:1px; background:var(--gradient-brand); }
.tl-visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.tl-skip-link{
  position:absolute; left:12px; top:-48px; z-index:100;
  background:var(--accent-fill); color:var(--text-on-accent); padding:10px 16px;
  border-radius:var(--radius-sm); text-decoration:none; font-weight:var(--weight-bold);
  transition:top var(--dur-fast) var(--ease-out);
}
.tl-skip-link:focus{ top:12px; }

/* ---------------------------------------------------------
   Faixa de aviso
   --------------------------------------------------------- */
.tl-announcement{
  background:var(--surface-inverse);
  color:var(--gold-200);
  border-bottom:1px solid rgba(209,169,74,.28);
}
.tl-announcement__inner{
  display:flex; align-items:center; justify-content:center; gap:var(--space-3);
  min-height:40px; padding-block:var(--space-2); text-align:center;
  font-size:var(--text-sm); font-weight:var(--weight-semibold); letter-spacing:.02em;
}
.tl-announcement__inner svg{ flex:0 0 auto; color:var(--gold-400); }
.tl-announcement__inner span{ min-width:0; }

/* ---------------------------------------------------------
   Cabeçalho
   --------------------------------------------------------- */
.tl-header{
  position:sticky; top:0; z-index:40;
  background:rgba(252,250,245,.86);
  backdrop-filter:var(--blur-header); -webkit-backdrop-filter:var(--blur-header);
  box-shadow:0 1px 0 rgba(193,146,53,.22),0 6px 20px -14px rgba(28,23,18,.18);
}
.tl-header__inner{
  display:flex; align-items:center; gap:var(--space-4);
  min-height:128px;
}
.tl-logo{
  display:inline-flex; align-items:center; text-decoration:none; flex:0 0 auto;
  font-family:var(--font-display); font-size:22px; font-weight:var(--weight-bold); letter-spacing:-0.03em;
}
.tl-logo img{ display:block; width:112px; height:112px; object-fit:contain; flex:0 0 auto; }

.tl-nav{ display:none; gap:2px; flex:1 1 auto; justify-content:center; min-width:0; }
.tl-nav--static{ display:flex; flex-wrap:wrap; justify-content:flex-end; }
.tl-header-search{
  --search-width:min(360px, calc(100vw - 48px));
  position:relative; flex:0 0 44px; width:44px; height:44px; color:var(--text-heading);
}
.tl-header-search:focus-within{ z-index:5; }
.tl-header-search__trigger{
  position:absolute; inset:0; z-index:2; display:grid; place-items:center;
  width:44px; height:44px; border-radius:var(--radius-pill); cursor:text;
}
.tl-header-search__trigger:hover{ background:var(--surface-muted); }
.tl-header-search input{
  position:absolute; top:0; right:0; width:44px; height:44px; opacity:0;
  padding:0; border:1px solid var(--border-subtle); outline:0; pointer-events:none;
  border-radius:var(--radius-pill); background:var(--white); color:var(--text-heading);
  font:inherit; font-size:var(--text-sm); transition:width var(--dur-base) var(--ease-out),opacity var(--dur-fast) var(--ease-out);
}
.tl-header-search input::placeholder{ color:var(--text-muted); opacity:1; }
/* fechado, o campo não recebe clique (quem abre é a lupa) e fica com 44px de verdade, sem cobrir o ícone do WhatsApp */
.tl-header-search:focus-within input{ width:var(--search-width); padding:0 88px 0 48px; opacity:1; pointer-events:auto; border-color:var(--border-focus); box-shadow:var(--ring-focus); }
.tl-header-search:focus-within .tl-header-search__trigger{ right:calc(var(--search-width) - 44px); left:auto; }
.tl-header-search:focus-within .tl-header-search__trigger:hover{ background:transparent; }
.tl-header-search button{
  position:absolute; top:4px; right:4px; z-index:2; height:36px; opacity:0; pointer-events:none;
  padding-inline:var(--space-4); border:0; border-radius:var(--radius-pill);
  background:var(--gradient-brand); color:var(--text-on-accent); font:inherit;
  font-size:var(--text-sm); font-weight:var(--weight-bold); cursor:pointer;
}
.tl-header-search:focus-within button{ opacity:1; pointer-events:auto; }
.tl-header-search button:hover{ filter:brightness(1.06); }
.tl-nav__item{ position:relative; }
.tl-nav__link{
  position:relative; display:inline-flex; align-items:center; gap:4px; height:44px; padding:0 var(--space-3);
  font-size:var(--text-sm); font-weight:var(--weight-semibold);
  white-space:nowrap; text-decoration:none; color:var(--text-body);
  transition:var(--t-color);
}
.tl-nav__link svg{ transition:transform var(--dur-base) var(--ease-out); }
/* traço dourado sob o item: aparece fraco no hover e cheio na página atual */
.tl-nav__link::after{
  content:""; position:absolute; left:var(--space-3); right:var(--space-3); bottom:4px; height:2px;
  border-radius:2px; background:var(--gradient-brand);
  transform:scaleX(0); transform-origin:left center; opacity:.6;
  transition:transform var(--dur-base) var(--ease-out),opacity var(--dur-base) var(--ease-out);
}
.tl-nav__item--submenu .tl-nav__link::after{ right:calc(var(--space-3) + 18px); }
.tl-nav__link:hover,
.tl-nav__item--submenu:hover > .tl-nav__link,
.tl-nav__item--submenu:focus-within > .tl-nav__link{ color:var(--text-heading); }
.tl-nav__link:hover::after,
.tl-nav__item--submenu:hover > .tl-nav__link::after{ transform:scaleX(1); }
.tl-nav__link[aria-current="page"]{ color:var(--accent-primary); font-weight:var(--weight-bold); }
.tl-nav__link[aria-current="page"]::after{ transform:scaleX(1); opacity:1; }
.tl-nav__item--submenu:hover > .tl-nav__link svg,
.tl-nav__item--submenu:focus-within > .tl-nav__link svg{ transform:rotate(180deg); }

/* o padding-top faz a "ponte" entre o link e o painel, para o submenu não fechar no caminho */
.tl-nav__submenu{
  position:absolute; top:100%; left:50%; z-index:10; padding-top:10px;
  opacity:0; visibility:hidden; transform:translate(-50%,6px);
  transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),visibility 0s linear var(--dur-base);
  transition-delay:120ms,120ms,calc(var(--dur-base) + 120ms);
}
.tl-nav__item--submenu:hover > .tl-nav__submenu,
.tl-nav__item--submenu:focus-within > .tl-nav__submenu{
  opacity:1; visibility:visible; transform:translate(-50%,0);
  transition-delay:0s;
}
.tl-nav__submenu-panel{
  display:grid; gap:2px; width:300px; padding:var(--space-2);
  background:var(--surface-card); border:1px solid var(--border-subtle); border-top:2px solid var(--gold-400);
  border-radius:var(--radius-md); box-shadow:0 24px 48px -20px rgba(28,23,18,.35);
}
.tl-nav__submenu-panel a{
  display:grid; gap:2px; padding:var(--space-3); border-radius:var(--radius-sm);
  text-decoration:none; color:var(--text-heading); transition:var(--t-color);
}
.tl-nav__submenu-name{ font-size:var(--text-sm); font-weight:var(--weight-semibold); }
.tl-nav__submenu-desc{ font-size:var(--text-xs); color:var(--text-muted); line-height:1.35; }
.tl-nav__submenu-panel a:hover{ background:var(--accent-soft); }
.tl-nav__submenu-panel a:hover .tl-nav__submenu-name{ color:var(--accent-primary); }
.tl-nav__submenu-panel a[aria-current="page"]{ background:var(--accent-soft); box-shadow:inset 3px 0 0 var(--gold-500); }
.tl-nav__submenu-panel a[aria-current="page"] .tl-nav__submenu-name{ color:var(--accent-primary); font-weight:var(--weight-bold); }
.tl-nav__submenu-panel a.tl-nav__submenu-all{
  display:flex; align-items:center; justify-content:space-between; margin-top:var(--space-1);
  border-top:1px solid var(--border-subtle); border-radius:0 0 var(--radius-sm) var(--radius-sm);
  font-size:var(--text-sm); font-weight:var(--weight-bold); color:var(--accent-primary);
}
@media (prefers-reduced-motion:reduce){
  .tl-nav__submenu,.tl-nav__link::after,.tl-nav__link svg{ transition:none; }
}

.tl-header__actions{ display:flex; align-items:center; gap:var(--space-2); margin-left:auto; }
.tl-icon-btn{
  display:grid; place-items:center; width:40px; height:40px; border-radius:var(--radius-pill);
  border:0; background:transparent; color:var(--text-heading); cursor:pointer;
  transition:var(--t-color);
}
.tl-icon-btn:hover{ background:var(--surface-muted); }
.tl-menu-toggle{ display:grid; }

/* ---------------------------------------------------------
   Botões
   --------------------------------------------------------- */
.tl-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:var(--space-2);
  font-family:var(--font-ui); font-weight:var(--weight-bold); letter-spacing:.01em;
  border-radius:var(--radius-pill); border:1px solid transparent; cursor:pointer;
  text-decoration:none; white-space:nowrap;
  transition:var(--t-color),var(--t-shadow),transform var(--dur-fast) var(--ease-out);
  height:var(--control-h); padding:0 var(--space-6); font-size:var(--text-sm);
}
.tl-btn:active{ transform:scale(.97); }
.tl-btn--lg{ height:var(--control-h-lg); padding:0 var(--space-8); font-size:var(--text-body-size); }
.tl-btn--sm{ height:var(--control-h-sm); padding:0 var(--space-4); font-size:var(--text-sm); }
.tl-btn--block{ width:100%; }
.tl-btn--primary{
  background:var(--gradient-brand); background-size:160% 100%; background-position:0 0; color:var(--text-on-accent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 8px 20px -10px rgba(134,97,29,.7);
  transition:var(--t-color),var(--t-shadow),background-position var(--dur-slow) var(--ease-out),transform var(--dur-fast) var(--ease-out);
}
.tl-btn--primary:hover{ background-position:100% 0; box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 12px 26px -10px rgba(134,97,29,.8); }
.tl-btn--secondary{ background:var(--surface-card); color:var(--accent-primary); border-color:var(--border-strong); }
.tl-btn--secondary:hover{ background:var(--accent-soft); border-color:var(--gold-500); }
.tl-btn--ghost{ background:transparent; color:var(--text-heading); }
.tl-btn--ghost:hover{ background:var(--surface-muted); }
.tl-btn--on-photo{ background:var(--white); color:var(--ink-900); }
.tl-btn--on-photo:hover{ background:var(--ink-100); }
.tl-btn--whatsapp{ background:var(--brand-whatsapp); color:var(--white); }
.tl-btn--whatsapp:hover{ background:#178C46; }
.tl-btn--gradient{ background:var(--gradient-brand); color:var(--text-on-accent); box-shadow:inset 0 1px 0 rgba(255,255,255,.45); }
.tl-btn--gradient:hover{ filter:brightness(1.06); }
.tl-btn--ghost-on-dark{ color:var(--gold-100); border-color:rgba(221,191,116,.6); border-style:solid; background:transparent; }
.tl-btn--ghost-on-dark:hover{ background:rgba(221,191,116,.14); border-color:var(--gold-300); }

.tl-whatsapp-float{
  position:fixed; right:var(--gutter-mobile); bottom:var(--gutter-mobile); z-index:50;
  width:56px; height:56px; border-radius:var(--radius-pill);
  display:grid; place-items:center; background:var(--brand-whatsapp); color:var(--white);
  box-shadow:0 10px 28px -10px rgba(31,168,85,.66); text-decoration:none;
  transition:var(--t-shadow),transform var(--dur-fast) var(--ease-out);
}
.tl-whatsapp-float:hover{ transform:translateY(-2px); }

/* ---------------------------------------------------------
   Hero
   --------------------------------------------------------- */
.tl-hero{
  position:relative; min-height:min(80vh,660px); display:grid; align-items:end;
  overflow:hidden; background:var(--ink-900);
}
.tl-hero__media{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tl-hero__media--fallback{ background:radial-gradient(120% 90% at 85% 10%,rgba(209,169,74,.35),transparent 55%),var(--gradient-brand-dark); }
.tl-hero__scrim{ position:absolute; inset:0; background:var(--scrim-photo); }
.tl-hero__scrim-bottom{ position:absolute; inset:0; background:var(--scrim-photo-bottom); }
.tl-hero__content{ position:relative; padding-block:var(--section-y); }
.tl-hero__inner{ display:grid; gap:var(--space-5); max-width:min(100%,620px); }
.tl-hero__eyebrow{
  font-size:var(--text-eyebrow); font-weight:var(--weight-bold); letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase; color:var(--gold-300);
}
.tl-hero__title{ font-size:var(--text-hero); line-height:var(--leading-tight); color:var(--white); letter-spacing:-0.01em; }
.tl-hero__desc{ font-size:var(--text-lead); line-height:1.6; color:rgba(255,255,255,.92); max-width:46ch; }
.tl-hero__actions{ display:flex; gap:var(--space-3); flex-wrap:wrap; margin-top:var(--space-2); }
.tl-hero__seal{
  display:inline-flex; align-items:center; gap:var(--space-2); margin-top:var(--space-3);
  padding:var(--space-2) var(--space-4); border-radius:var(--radius-pill);
  background:rgba(18,14,10,.35); border:1px solid rgba(221,191,116,.45);
  backdrop-filter:blur(8px); color:var(--gold-100); font-size:var(--text-xs); font-weight:var(--weight-bold);
  letter-spacing:.06em; text-transform:uppercase; width:fit-content;
}

/* ---------------------------------------------------------
   Seções genéricas
   --------------------------------------------------------- */
.tl-section{ padding-block:var(--section-y); }
.tl-section--tight{ padding-block:var(--section-y-tight); }
.tl-section--muted{ background:var(--surface-muted); }
.tl-section-heading{
  display:flex; justify-content:space-between; align-items:flex-end; gap:var(--space-8);
  flex-wrap:wrap; margin-bottom:var(--space-10);
}
.tl-section-heading__text{ display:grid; gap:var(--space-3); max-width:46ch; }
.tl-section-heading__link{
  font-size:var(--text-sm); font-weight:var(--weight-bold); color:var(--accent-primary);
  text-decoration:none; white-space:nowrap; display:inline-flex; align-items:center; gap:6px;
}
.tl-section-heading__link:hover{ color:var(--accent-primary-hover); }

/* ---------------------------------------------------------
   Categorias
   --------------------------------------------------------- */
.tl-cat-grid{ display:grid; gap:var(--grid-gap); grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr)); }
.tl-cat-grid--secondary{ grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr)); margin-top:var(--grid-gap); }
.tl-category-card{
  position:relative; display:block; overflow:hidden; border-radius:var(--radius-xl);
  background:var(--surface-muted); aspect-ratio:4/3; text-decoration:none;
  box-shadow:var(--shadow-card); transition:var(--t-shadow);
}
.tl-category-card:hover{ box-shadow:var(--shadow-card-hover); }
.tl-category-card__media{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform var(--dur-slow) var(--ease-out);
}
.tl-category-card:hover .tl-category-card__media{ transform:scale(var(--media-zoom-hover)); }
.tl-category-card__scrim{ position:absolute; inset:0; background:var(--scrim-photo-bottom); }
.tl-category-card__body{
  position:absolute; inset:auto var(--space-4) var(--space-4); display:flex;
  align-items:flex-end; justify-content:space-between; gap:var(--space-3);
}
.tl-category-card__name{ font-family:var(--font-display); font-size:var(--text-h4); font-weight:var(--weight-display); color:var(--white); }
.tl-category-card__desc{ font-size:var(--text-sm); color:rgba(255,255,255,.88); line-height:1.4; display:block; margin-top:2px; }
.tl-category-card__arrow{
  flex:0 0 auto; width:38px; height:38px; display:grid; place-items:center; border-radius:var(--radius-pill);
  background:var(--gradient-brand); color:var(--text-on-accent); transition:transform var(--dur-base) var(--ease-out);
}
.tl-category-card:hover .tl-category-card__arrow{ transform:translateX(3px); }

/* placeholder de foto (sem foto real ainda) */
.tl-ph{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:var(--space-2); color:rgba(255,255,255,.92); text-align:center; padding:var(--space-4);
}
.tl-ph svg{ opacity:.9; }
.tl-ph__label{ font-size:var(--text-xs); font-weight:var(--weight-semibold); letter-spacing:.04em; text-transform:uppercase; }

/* ---------------------------------------------------------
   Produtos
   --------------------------------------------------------- */
.tl-product-grid{ display:grid; gap:var(--grid-gap); grid-template-columns:repeat(auto-fill,minmax(min(296px,100%),1fr)); }
.tl-product-card{
  position:relative; display:flex; flex-direction:column; background:var(--surface-card);
  border-radius:var(--radius-card); border:1px solid var(--border-subtle); overflow:hidden;
  box-shadow:var(--shadow-card); transition:var(--t-shadow),var(--t-transform); height:100%;
}
.tl-product-card:hover{ box-shadow:var(--shadow-card-hover); transform:translateY(-2px); border-color:var(--border-strong); }
.tl-product-card__media{ position:relative; display:block; aspect-ratio:4/5; background:var(--surface-muted); overflow:hidden; }
.tl-product-card__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tl-product-card__badge{
  position:absolute; top:var(--space-3); left:var(--space-3); display:inline-flex; align-items:center;
  height:24px; padding:0 var(--space-3); border-radius:var(--radius-pill); font-size:11px;
  font-weight:var(--weight-bold); letter-spacing:.02em;
}
.tl-badge-novo{ background:var(--ink-900); color:var(--gold-300); }
.tl-badge-vendido{ background:var(--gradient-brand); color:var(--text-on-accent); }
.tl-badge-personalizavel{ background:var(--white); color:var(--gold-800); box-shadow:inset 0 0 0 1px var(--gold-300); }
.tl-favorite-btn{
  position:absolute; top:var(--space-2); right:var(--space-2); width:34px; height:34px; border-radius:var(--radius-pill);
  display:grid; place-items:center; border:0; cursor:pointer; background:rgba(255,255,255,.92);
  backdrop-filter:blur(6px); color:var(--ink-700);
}
.tl-product-card__body{ display:grid; gap:var(--space-2); padding:var(--space-4) var(--space-4) var(--space-5); }
.tl-product-card__category{ font-size:var(--text-xs); font-weight:var(--weight-bold); letter-spacing:var(--tracking-eyebrow); text-transform:uppercase; color:var(--text-muted); }
.tl-product-card__name{ font-size:var(--text-h4); font-weight:var(--weight-display); line-height:1.25; }
.tl-product-card__name a{ color:inherit; text-decoration:none; }
.tl-price{ display:flex; align-items:baseline; gap:var(--space-2); flex-wrap:wrap; }
.tl-price__prefix{ font-size:var(--text-xs); color:var(--text-muted); font-weight:var(--weight-medium); }
.tl-price__value{ font-family:var(--font-ui); font-weight:var(--weight-bold); font-size:var(--text-h4); color:var(--text-heading); letter-spacing:var(--tracking-tight); font-variant-numeric:tabular-nums; }
.tl-price__value--consulta{ font-size:var(--text-body-size); font-weight:var(--weight-semibold); color:var(--accent-primary); letter-spacing:0; }
.tl-product-card__meta{ display:flex; align-items:center; gap:var(--space-3); flex-wrap:wrap; margin-top:2px; }
.tl-product-card__meta span{ display:inline-flex; align-items:center; gap:4px; font-size:var(--text-xs); color:var(--text-muted); }
.tl-product-card__link{ display:inline-flex; align-items:center; gap:6px; margin-top:var(--space-2); font-size:var(--text-sm); font-weight:var(--weight-bold); color:var(--accent-primary); text-decoration:none; opacity:.85; }
.tl-product-card:hover .tl-product-card__link{ opacity:1; }

/* ---------------------------------------------------------
   Resultados da busca
   --------------------------------------------------------- */
.tl-search-results{ padding-block:var(--section-y); min-height:50vh; }
.tl-search-results > .tl-container{ display:grid; gap:var(--space-5); }
.tl-search-results h1{ max-width:25ch; overflow-wrap:anywhere; }
.tl-search-results__count,.tl-search-results__path{ color:var(--text-muted); }
.tl-search-results__path a{ color:var(--accent-primary); }
.tl-search-results__section{ display:grid; gap:var(--space-5); padding-top:var(--space-6); }
.tl-search-results__links{ display:grid; grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr)); gap:var(--space-4); }
.tl-search-results__links a{
  display:grid; gap:4px; padding:var(--space-5); border:1px solid var(--border-subtle);
  border-radius:var(--radius-card); background:var(--surface-card); text-decoration:none;
  box-shadow:var(--shadow-card);
}
.tl-search-results__links a:hover{ border-color:var(--border-strong); box-shadow:var(--shadow-card-hover); }
.tl-search-results__links strong{ color:var(--text-heading); }
.tl-search-results__links span{ color:var(--text-muted); font-size:var(--text-sm); }

/* ---------------------------------------------------------
   Personalizados / CTA
   --------------------------------------------------------- */
.tl-custom{ display:grid; gap:var(--space-12); grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr)); align-items:center; }
.tl-custom__text{ display:grid; gap:var(--space-5); }
.tl-custom__text h2{ max-width:20ch; }
.tl-custom__text p{ font-size:var(--text-lead); line-height:1.75; max-width:46ch; }
.tl-custom__actions{ display:flex; gap:var(--space-3); flex-wrap:wrap; }
/* a foto pode vir embrulhada em <picture> (versões leves em WebP);
   display:contents mantém a imagem como item do grid, não o embrulho */
/* As fotos saem com width/height no HTML para o layout não pular enquanto
   carregam. Esses atributos valem como dica de tamanho, e a altura deles
   venceria o aspect-ratio do CSS — daí a altura voltar a ser calculada
   aqui. Regras que definem altura explícita (cards, galeria) continuam
   mandando, por serem mais específicas. */
img{ height:auto; }
.tl-custom picture, .tl-product-card__media picture, .tl-gallery__slide picture, .tl-gallery__thumbs picture{ display:contents; }
.tl-custom__media{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius-2xl); }

/* ---------------------------------------------------------
   Benefícios
   --------------------------------------------------------- */
.tl-benefits{ background:var(--surface-muted); }
.tl-benefits__list{ display:grid; gap:var(--space-8); grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr)); }
.tl-benefits__item{ display:flex; gap:var(--space-4); align-items:flex-start; }
.tl-benefits__icon{
  flex:0 0 auto; width:52px; height:52px; display:grid; place-items:center; border-radius:var(--radius-pill);
  background:var(--surface-inverse); border:1px solid var(--gold-500); color:var(--gold-300);
}
.tl-benefits__title{ font-family:var(--font-display); font-size:var(--text-h4); font-weight:var(--weight-display); color:var(--text-heading); }
.tl-benefits__desc{ font-size:var(--text-sm); color:var(--text-muted); line-height:1.5; }

/* ---------------------------------------------------------
   Newsletter
   --------------------------------------------------------- */
.tl-newsletter{ background:var(--gradient-brand-soft); }
.tl-newsletter__inner{ display:grid; gap:var(--space-8); align-items:center; grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr)); }
.tl-newsletter__text{ display:grid; gap:var(--space-3); }
.tl-newsletter__text h2{ max-width:24ch; }
.tl-newsletter__text p{ font-size:var(--text-lead); color:var(--text-body); max-width:44ch; line-height:1.6; }
.tl-newsletter__form{
  display:grid; gap:var(--space-4); padding:var(--space-6); background:var(--surface-card);
  border:1px solid var(--border-subtle); border-radius:var(--radius-card); box-shadow:var(--shadow-card);
}
.tl-field{ display:grid; gap:6px; }
.tl-field label{ font-size:var(--text-sm); font-weight:var(--weight-semibold); color:var(--text-heading); }
.tl-input-wrap{ position:relative; display:flex; align-items:center; }
.tl-input-wrap svg{ position:absolute; left:14px; color:var(--text-muted); pointer-events:none; }
.tl-input{
  width:100%; height:var(--control-h); border-radius:var(--radius-md); border:1px solid var(--border-subtle);
  background:var(--surface-page); padding:0 var(--space-4) 0 40px; font-size:var(--text-sm); font-family:inherit;
  color:var(--text-heading); transition:var(--t-color);
}
.tl-input:focus{ outline:none; border-color:var(--border-focus); box-shadow:var(--ring-focus); }
.tl-field__error{ font-size:var(--text-xs); color:var(--state-danger); min-height:1em; }
.tl-checkbox{ display:flex; align-items:flex-start; gap:var(--space-2); font-size:var(--text-sm); cursor:pointer; }
.tl-checkbox input{ margin-top:3px; accent-color:var(--accent-primary); width:16px; height:16px; flex:0 0 auto; }
.tl-checkbox__desc{ display:block; font-size:var(--text-xs); color:var(--text-muted); margin-top:2px; }
.tl-newsletter__success{
  display:flex; gap:var(--space-3); align-items:flex-start; padding:var(--space-6);
  background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-card);
}
.tl-newsletter__success strong{ font-family:var(--font-display); color:var(--text-heading); display:block; }
.tl-newsletter__success span{ font-size:var(--text-sm); color:var(--text-muted); }

/* ---------------------------------------------------------
   Rodapé
   --------------------------------------------------------- */
.tl-footer{ background:var(--surface-inverse); color:rgba(245,236,215,.72); border-top:1px solid rgba(209,169,74,.35); }
.tl-footer__grid{ display:grid; gap:var(--space-12); grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr)); }
@media (min-width:1280px){
  .tl-footer__grid{ grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr)); gap:clamp(20px,2vw,32px); }
  .tl-footer__grid--with-channels{ grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,1fr)); }
}
.tl-footer__brand{ display:grid; gap:var(--space-4); align-content:start; }
.tl-footer__logo{ display:inline-flex; align-items:center; gap:12px; font-family:var(--font-brand); font-size:24px; font-weight:var(--weight-semibold); color:var(--gold-300); letter-spacing:.04em; }
.tl-footer__logo img{ display:block; width:68px; height:68px; object-fit:contain; }
.tl-footer__tagline{ font-size:var(--text-xs); letter-spacing:var(--tracking-eyebrow); text-transform:uppercase; color:var(--gold-400); }
.tl-footer__col{ display:grid; gap:var(--space-3); align-content:start; }
.tl-footer__col h4{ font-size:var(--text-sm); color:var(--gold-300); letter-spacing:var(--tracking-eyebrow); text-transform:uppercase; font-family:var(--font-ui); font-weight:var(--weight-bold); }
.tl-footer__col ul{ display:grid; gap:var(--space-2); }
.tl-footer__col a{ font-size:var(--text-sm); color:rgba(245,236,215,.72); text-decoration:none; transition:var(--t-color); }
.tl-footer__col a:hover{ color:var(--gold-300); }
.tl-footer__col a.tl-channel{ display:inline-flex; align-items:center; gap:var(--space-2); }
.tl-channel .tl-brand-icon{ flex:none; color:var(--gold-300); }
.tl-footer__bottom{
  margin-top:var(--space-12); padding-top:var(--space-6); border-top:1px solid rgba(209,169,74,.2);
  display:flex; flex-wrap:wrap; gap:var(--space-4); justify-content:space-between;
  font-size:var(--text-xs); color:rgba(245,236,215,.55);
}
.tl-footer__bottom-grupo{ display:flex; flex-wrap:wrap; gap:var(--space-4); }
.tl-footer__bottom a{ color:var(--gold-300); text-decoration:none; }
.tl-footer__bottom a:hover{ text-decoration:underline; }

/* ---------------------------------------------------------
   Página de detalhes do produto
   --------------------------------------------------------- */
.tl-breadcrumb{ padding-block:var(--space-5) var(--space-2); }
.tl-breadcrumb ol{ display:flex; flex-wrap:wrap; gap:var(--space-2); list-style:none; margin:0; padding:0; font-size:var(--text-sm); color:var(--text-muted); }
.tl-breadcrumb li{ display:inline-flex; align-items:center; gap:var(--space-2); min-width:0; }
.tl-breadcrumb li + li::before{ content:"/"; color:var(--ink-300); }
.tl-breadcrumb a{ color:var(--text-muted); text-decoration:none; }
.tl-breadcrumb a:hover{ color:var(--accent-primary); }
.tl-breadcrumb [aria-current="page"]{ color:var(--text-heading); font-weight:var(--weight-semibold); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.tl-pdp{
  display:grid; gap:var(--space-10); align-items:start;
  padding-block:var(--space-4) var(--section-y);
}
@media (min-width:920px){
  .tl-pdp{ grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:clamp(40px,5vw,80px); }
  .tl-gallery{ position:sticky; top:96px; }
}

/* ---- galeria / carrossel ---- */
.tl-gallery{ display:grid; gap:var(--space-3); min-width:0; scroll-margin-top:96px; }
.tl-gallery__stage{
  position:relative; border-radius:var(--radius-xl); overflow:hidden;
  background:var(--surface-muted); box-shadow:var(--shadow-card);
}
.tl-gallery__track{
  display:flex; overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none;
  aspect-ratio:4/5; border-radius:inherit;
}
.tl-gallery__track::-webkit-scrollbar{ display:none; }
.tl-gallery__track:focus-visible{ box-shadow:inset 0 0 0 3px var(--border-focus); }
.tl-gallery__slide{
  position:relative; flex:0 0 100%; height:100%; scroll-snap-align:start; scroll-snap-stop:always;
}
.tl-gallery__slide--vazio{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--space-2);
  background:var(--gradient-brand-soft); color:var(--gold-600);
  font-size:var(--text-xs); font-weight:var(--weight-bold); letter-spacing:.06em; text-transform:uppercase;
}
.tl-gallery__zoom{
  position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; background:none; cursor:zoom-in;
}
.tl-gallery__zoom img{ width:100%; height:100%; object-fit:cover; }
.tl-gallery__zoom-hint{
  position:absolute; right:var(--space-3); bottom:var(--space-3); width:36px; height:36px;
  display:grid; place-items:center; border-radius:var(--radius-pill);
  background:rgba(255,255,255,.9); color:var(--ink-700); opacity:0;
  transition:opacity var(--dur-base) var(--ease-out);
}
.tl-gallery__zoom:hover .tl-gallery__zoom-hint,
.tl-gallery__zoom:focus-visible .tl-gallery__zoom-hint{ opacity:1; }
@media (hover:none){ .tl-gallery__zoom-hint{ opacity:1; } }

.tl-gallery__slide--video{ background:var(--ink-900); }
.tl-gallery__slide--video video,
.tl-gallery__slide--video iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; object-fit:contain; background:#000; }
.tl-gallery__play{
  position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--space-3);
  background:var(--gradient-brand-dark); color:var(--white);
  font-family:inherit;
}
.tl-gallery__play img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tl-gallery__play::after{ content:""; position:absolute; inset:0; background:rgba(28,23,18,.32); transition:background var(--dur-base) var(--ease-out); }
.tl-gallery__play:hover::after{ background:rgba(28,23,18,.18); }
.tl-gallery__play-icon{
  position:relative; z-index:1; width:76px; height:76px; display:grid; place-items:center;
  border-radius:var(--radius-pill); background:var(--gradient-brand); color:var(--text-on-accent);
  box-shadow:0 12px 32px -10px rgba(28,23,18,.5); transition:var(--t-transform);
}
.tl-gallery__play-icon svg{ fill:currentColor; margin-left:4px; }
.tl-gallery__play:hover .tl-gallery__play-icon{ transform:scale(1.06); }
.tl-gallery__play-label{
  position:relative; z-index:1; font-weight:var(--weight-bold); font-size:var(--text-sm);
  letter-spacing:.02em; text-shadow:0 1px 8px rgba(0,0,0,.4);
}

.tl-gallery__stage > .tl-product-card__badge{ z-index:2; top:var(--space-4); left:var(--space-4); }
.tl-gallery__nav{
  position:absolute; top:50%; z-index:2; width:44px; height:44px; margin-top:-22px;
  display:grid; place-items:center; border-radius:var(--radius-pill); border:0; cursor:pointer;
  background:rgba(255,255,255,.92); color:var(--ink-900); box-shadow:var(--shadow-card);
  backdrop-filter:blur(6px); transition:opacity var(--dur-base) var(--ease-out),var(--t-color);
}
.tl-gallery__nav:hover{ background:var(--white); color:var(--accent-primary); }
.tl-gallery__nav:disabled{ opacity:0; pointer-events:none; }
.tl-gallery__nav--prev{ left:var(--space-3); }
.tl-gallery__nav--next{ right:var(--space-3); }
.tl-gallery__counter{
  position:absolute; left:50%; bottom:var(--space-3); z-index:2; transform:translateX(-50%);
  padding:2px var(--space-3); border-radius:var(--radius-pill); background:rgba(28,23,18,.62);
  color:var(--white); font-size:var(--text-xs); font-weight:var(--weight-bold); font-variant-numeric:tabular-nums;
  pointer-events:none;
}
.tl-gallery.is-playing .tl-gallery__counter,
.tl-gallery.is-playing .tl-gallery__stage > .tl-product-card__badge{ display:none; }

.tl-gallery__thumbs{
  display:flex; gap:var(--space-2); overflow-x:auto; scrollbar-width:thin;
  padding:3px; margin:-3px; scroll-snap-type:x proximity;
}
.tl-gallery__thumb{
  position:relative; flex:0 0 auto; width:76px; aspect-ratio:1/1; padding:0; overflow:hidden; cursor:pointer;
  border-radius:var(--radius-sm); border:2px solid transparent; background:var(--surface-muted);
  opacity:.7; scroll-snap-align:start; transition:var(--t-color),opacity var(--dur-fast) var(--ease-out);
}
.tl-gallery__thumb img{ width:100%; height:100%; object-fit:cover; }
.tl-gallery__thumb:hover{ opacity:1; }
.tl-gallery__thumb[aria-current="true"]{ border-color:var(--gold-500); opacity:1; }
.tl-gallery__thumb--video{ background:var(--gradient-brand-dark); }
.tl-gallery__thumb-play{
  position:absolute; inset:0; margin:auto; width:30px; height:30px; display:grid; place-items:center;
  border-radius:var(--radius-pill); background:rgba(255,255,255,.92); color:var(--accent-primary);
}
.tl-gallery__thumb-play svg{ fill:currentColor; margin-left:2px; }

/* ---- informações ---- */
.tl-pdp__info{ display:grid; gap:var(--space-5); min-width:0; }
.tl-pdp__info > .tl-eyebrow{ margin-bottom:calc(var(--space-3) * -1); }
.tl-pdp__title{ font-size:var(--text-h1); line-height:var(--leading-tight); }
.tl-pdp__meta{ display:flex; flex-wrap:wrap; gap:var(--space-2) var(--space-5); color:var(--text-muted); font-size:var(--text-sm); }
.tl-pdp__meta span{ display:inline-flex; align-items:center; gap:6px; }
.tl-pdp__meta strong{ color:var(--text-heading); }
.tl-pdp__price .tl-price__prefix{ font-size:var(--text-sm); }
.tl-pdp__price .tl-price__value{ font-size:var(--text-h2); }
.tl-pdp__price .tl-price__value--consulta{ font-size:var(--text-h4); }

/* opções da variação, código e personalização na página do produto */
.tl-pdp__opcoes{ display:grid; gap:var(--space-3); grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr)); margin:var(--space-4) 0 var(--space-2); }
.tl-pdp__opcoes label{ display:block; font-size:var(--text-sm); font-weight:var(--weight-semibold); color:var(--text-body); margin-bottom:4px; }
.tl-pdp__sku{ color:var(--text-muted); font-size:var(--text-sm); margin:0 0 var(--space-4); }
.tl-pdp__sku code{ font-size:.9em; color:var(--text-body); }
.tl-pdp__personalizacao{ display:grid; gap:var(--space-2); padding-left:1.1em; }
.tl-pdp__personalizacao li{ font-size:var(--text-sm); }
.tl-pdp__personalizacao small{ display:block; color:var(--text-muted); }
.tl-pdp__actions{ display:grid; gap:var(--space-3); max-width:460px; }
.tl-pdp__actions [data-gallery-watch] svg{ fill:currentColor; }
.tl-pdp__marketplaces{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:var(--space-3); }
.tl-pdp__description{
  display:grid; gap:var(--space-3); padding-top:var(--space-5); border-top:1px solid var(--border-subtle);
}
.tl-pdp__description h2{ font-size:var(--text-h4); }
.tl-pdp__description p{ line-height:var(--leading-relaxed); max-width:62ch; }
.tl-pdp__perks{
  display:grid; gap:var(--space-3); padding:var(--space-5); border-radius:var(--radius-card);
  background:var(--surface-card); border:1px solid var(--border-subtle);
}
.tl-pdp__perks li{ display:flex; gap:var(--space-3); align-items:flex-start; font-size:var(--text-sm); line-height:1.5; }
.tl-pdp__perks svg{ flex:0 0 auto; margin-top:1px; }
.tl-pdp__perks strong{ color:var(--text-heading); }

/* ---- calcular frete ---- */
.tl-frete{
  display:grid; gap:var(--space-2); max-width:460px; padding:var(--space-4) var(--space-5);
  border-radius:var(--radius-card); background:var(--surface-card); border:1px solid var(--border-subtle);
}
.tl-frete__titulo{ display:flex; align-items:center; gap:var(--space-2); font-size:var(--text-sm); font-weight:var(--weight-semibold); color:var(--text-heading); }
.tl-frete__linha{ display:flex; gap:var(--space-2); }
.tl-frete__linha .tl-input{ flex:1 1 auto; min-width:0; }
.tl-frete__linha .tl-btn{ flex:0 0 auto; }
.tl-frete__ajuda{ justify-self:start; font-size:var(--text-xs); color:var(--text-muted); text-decoration:underline; }
.tl-frete__ajuda:hover{ color:var(--accent-primary); }
.tl-frete__resultado:empty{ display:none; }
.tl-frete__erro{ font-size:var(--text-sm); color:var(--state-danger); }
.tl-frete__opcoes{ display:grid; margin-top:var(--space-1); border-top:1px solid var(--border-subtle); }
.tl-frete__opcao{
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px var(--space-3); align-items:baseline;
  padding-block:var(--space-3); border-bottom:1px solid var(--border-subtle); font-size:var(--text-sm);
}
.tl-frete__opcao:last-child{ border-bottom:0; padding-bottom:0; }
.tl-frete__destaque{
  grid-column:1 / -1; justify-self:start; padding:2px var(--space-2); border-radius:var(--radius-pill);
  background:var(--accent-soft); color:var(--accent-primary); font-size:var(--text-xs); font-weight:var(--weight-bold);
}
.tl-frete__servico{ color:var(--text-heading); font-weight:var(--weight-semibold); overflow-wrap:anywhere; }
.tl-frete__preco{ color:var(--text-heading); font-weight:var(--weight-bold); white-space:nowrap; }
.tl-frete__prazo{ grid-column:1 / -1; font-size:var(--text-xs); color:var(--text-muted); }
.tl-frete__nota{ font-size:var(--text-xs); color:var(--text-muted); line-height:1.45; }
.tl-frete[aria-busy="true"] .tl-frete__linha{ opacity:.7; pointer-events:none; }

/* ---- foto ampliada (tela cheia) ---- */
.tl-lightbox{
  width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0;
  background:rgba(14,11,8,.95); color:var(--white);
}
.tl-lightbox[open]{ display:grid; place-items:center; }
.tl-lightbox::backdrop{ background:rgba(14,11,8,.95); }
.tl-lightbox__img{
  max-width:calc(100vw - 32px); max-height:calc(100dvh - 120px); object-fit:contain;
  border-radius:var(--radius-md); user-select:none;
}
@media (min-width:720px){ .tl-lightbox__img{ max-width:calc(100vw - 180px); max-height:calc(100dvh - 64px); } }
.tl-lightbox__close,
.tl-lightbox__nav{
  position:absolute; z-index:1; display:grid; place-items:center; border:0; cursor:pointer;
  border-radius:var(--radius-pill); background:rgba(255,255,255,.12); color:var(--white);
  transition:background var(--dur-fast) var(--ease-out);
}
.tl-lightbox__close:hover,
.tl-lightbox__nav:hover{ background:rgba(255,255,255,.24); }
.tl-lightbox__close{ top:var(--space-4); right:var(--space-4); width:44px; height:44px; }
.tl-lightbox__nav{ width:52px; height:52px; top:50%; margin-top:-26px; }
.tl-lightbox__nav--prev{ left:var(--space-4); }
.tl-lightbox__nav--next{ right:var(--space-4); }
.tl-lightbox__nav[hidden]{ display:none; }
@media (max-width:719px){
  .tl-lightbox__nav{ top:auto; bottom:var(--space-5); margin-top:0; }
  .tl-lightbox__nav--prev{ left:calc(50% - 64px); }
  .tl-lightbox__nav--next{ right:calc(50% - 64px); }
}

@media (prefers-reduced-motion:reduce){
  .tl-gallery__track{ scroll-behavior:auto; }
}

/* ---------------------------------------------------------
   Catálogo completo
   --------------------------------------------------------- */
.tl-catalog-hero{ background:var(--gradient-brand-soft); padding-bottom:var(--space-10); }
.tl-catalog-hero .tl-breadcrumb{ padding-bottom:var(--space-6); }
.tl-catalog-hero__text{ display:grid; gap:var(--space-3); max-width:62ch; }
.tl-catalog-hero__text h1{ font-size:var(--text-h1); line-height:var(--leading-tight); }
.tl-catalog-hero__text p{ font-size:var(--text-lead); color:var(--text-body); }

.tl-catalog-bar{
  background:var(--surface-page); border-bottom:1px solid var(--border-subtle);
  padding-block:var(--space-5); display:block;
}
.tl-catalog-bar .tl-container{ display:grid; gap:var(--space-4); }

.tl-chips{
  display:flex; gap:var(--space-2); overflow-x:auto; scrollbar-width:none;
  margin-inline:calc(var(--gutter) * -1); padding-inline:var(--gutter); padding-block:3px;
}
.tl-chips::-webkit-scrollbar{ display:none; }
@media (min-width:920px){ .tl-chips{ flex-wrap:wrap; overflow:visible; margin-inline:0; padding-inline:0; } }
.tl-chip{
  flex:0 0 auto; display:inline-flex; align-items:center; gap:var(--space-2);
  height:40px; padding:0 var(--space-4); border-radius:var(--radius-pill);
  border:1px solid var(--border-subtle); background:var(--surface-card);
  font-size:var(--text-sm); font-weight:var(--weight-semibold); color:var(--text-heading);
  text-decoration:none; white-space:nowrap; transition:var(--t-color);
}
.tl-chip:hover{ border-color:var(--border-strong); color:var(--accent-primary); }
.tl-chip[aria-current="page"]{ background:var(--ink-900); border-color:var(--ink-900); color:var(--gold-300); }
.tl-chip__count{
  min-width:22px; height:22px; padding:0 6px; display:inline-grid; place-items:center;
  border-radius:var(--radius-pill); background:var(--surface-muted); color:var(--text-muted);
  font-size:11px; font-weight:var(--weight-bold); font-variant-numeric:tabular-nums;
}
.tl-chip[aria-current="page"] .tl-chip__count{ background:rgba(221,191,116,.2); color:var(--gold-200); }
.tl-chip--sm{ height:32px; padding:0 var(--space-3); font-size:var(--text-xs); }
.tl-chip--sm .tl-chip__count{ min-width:18px; height:18px; font-size:10px; }
.tl-chips--sub .tl-chip[aria-current="page"]{ background:var(--accent-soft); border-color:var(--border-strong); color:var(--accent-primary); }
.tl-chips--sub .tl-chip[aria-current="page"] .tl-chip__count{ background:var(--surface-card); color:var(--accent-primary); }
.tl-chip--removable{ background:var(--accent-soft); border-color:transparent; color:var(--accent-primary); }
.tl-chip--removable:hover{ background:var(--gold-200); }

.tl-catalog-toolbar{
  display:grid; gap:var(--space-3); grid-template-columns:1fr 1fr; align-items:end;
}
.tl-catalog-toolbar__search{ grid-column:1 / -1; }
.tl-catalog-toolbar > .tl-btn{ grid-column:1 / -1; }
@media (min-width:720px){
  .tl-catalog-toolbar{ grid-template-columns:minmax(0,1fr) auto auto auto; }
  .tl-catalog-toolbar__search,
  .tl-catalog-toolbar > .tl-btn{ grid-column:auto; }
}
.tl-catalog-toolbar .tl-input{ background:var(--surface-card); }
.tl-select{ display:grid; gap:4px; min-width:0; }
.tl-select__label{ font-size:var(--text-xs); font-weight:var(--weight-bold); color:var(--text-muted); letter-spacing:.02em; }
.tl-select select{
  width:100%; height:var(--control-h); padding:0 36px 0 var(--space-4); border-radius:var(--radius-md);
  border:1px solid var(--border-subtle); background:var(--surface-card); color:var(--text-heading);
  font-family:inherit; font-size:var(--text-sm); font-weight:var(--weight-semibold); cursor:pointer;
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16' fill='none' stroke='%2375695A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center;
  transition:var(--t-color);
}
.tl-select select:focus{ outline:none; border-color:var(--border-focus); box-shadow:var(--ring-focus); }

.tl-catalog{ padding-top:var(--space-8); }
.tl-catalog__summary{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:var(--space-3); margin-bottom:var(--space-6);
}
.tl-catalog__count{ font-size:var(--text-sm); color:var(--text-muted); }
.tl-catalog__count strong{ color:var(--text-heading); font-size:var(--text-body-size); }
.tl-catalog__active{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2); }
.tl-catalog__clear{ font-size:var(--text-sm); font-weight:var(--weight-bold); color:var(--text-muted); margin-left:var(--space-2); }
.tl-catalog__clear:hover{ color:var(--accent-primary); }

.tl-catalog__empty{
  display:grid; justify-items:center; gap:var(--space-3); text-align:center;
  padding:var(--space-16) var(--space-6); border-radius:var(--radius-card);
  background:var(--surface-card); border:1px dashed var(--border-strong);
}
.tl-catalog__empty-icon{ width:64px; height:64px; display:grid; place-items:center; border-radius:var(--radius-pill); background:var(--accent-soft); margin-bottom:var(--space-2); }
.tl-catalog__empty h2{ font-size:var(--text-h3); }
.tl-catalog__empty p{ max-width:48ch; color:var(--text-muted); }
.tl-catalog__empty-actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:var(--space-3); margin-top:var(--space-3); }

.tl-pagination{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:var(--space-2); margin-top:var(--space-12); }
.tl-pagination__page,
.tl-pagination__step{
  display:inline-flex; align-items:center; justify-content:center; gap:4px; min-width:44px; height:44px;
  padding:0 var(--space-3); border-radius:var(--radius-pill); border:1px solid var(--border-subtle);
  background:var(--surface-card); color:var(--text-heading); text-decoration:none;
  font-size:var(--text-sm); font-weight:var(--weight-bold); font-variant-numeric:tabular-nums; transition:var(--t-color);
}
.tl-pagination__page:hover,
.tl-pagination__step:hover{ border-color:var(--accent-primary); color:var(--accent-primary); }
.tl-pagination__page[aria-current="page"]{ background:var(--gradient-brand); border-color:var(--gold-500); color:var(--text-on-accent); }
.tl-pagination__gap{ color:var(--text-muted); padding:0 4px; }
@media (max-width:480px){ .tl-pagination__step span{ display:none; } }

/* no celular o catálogo mostra 2 produtos por linha, com o card compacto */
@media (max-width:640px){
  .tl-catalog .tl-product-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-3); }
  .tl-catalog .tl-product-card__body{ padding:var(--space-3) var(--space-3) var(--space-4); gap:6px; }
  .tl-catalog .tl-product-card__category{ font-size:10px; letter-spacing:.08em; }
  .tl-catalog .tl-product-card__name{ font-size:var(--text-sm); }
  .tl-catalog .tl-price__value{ font-size:var(--text-body-size); }
  .tl-catalog .tl-price__prefix{ font-size:10px; }
  .tl-catalog .tl-product-card__badge{ top:var(--space-2); left:var(--space-2); height:20px; padding:0 var(--space-2); font-size:10px; }
  .tl-catalog .tl-favorite-btn{ width:30px; height:30px; }
  .tl-catalog .tl-product-card__link{ font-size:var(--text-xs); margin-top:4px; }
}

/* ---------------------------------------------------------
   Solicitação de orçamento
   --------------------------------------------------------- */
.tl-input--plain{ padding-left:var(--space-4); }
.tl-textarea{ height:auto; min-height:132px; padding-block:var(--space-3); resize:vertical; line-height:1.5; }
.tl-input[aria-invalid="true"],
.tl-select select[aria-invalid="true"]{ border-color:var(--state-danger); }
.tl-field__hint{ font-size:var(--text-xs); color:var(--text-muted); line-height:1.45; }
.tl-field__optional{ font-size:var(--text-xs); font-weight:var(--weight-medium); color:var(--text-muted); margin-left:4px; }
.tl-field__optional[hidden]{ display:none; }
.tl-field .tl-field__error:empty{ display:none; }

.tl-quote{ padding-top:var(--space-10); }
.tl-quote__grid{ display:grid; gap:var(--space-8); align-items:start; }
@media (min-width:980px){
  .tl-quote__grid{ grid-template-columns:minmax(0,1fr) 340px; gap:var(--space-12); }
  .tl-quote__aside{ position:sticky; top:104px; }
}
.tl-quote__form{ display:grid; gap:var(--space-5); min-width:0; }
.tl-quote__hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.tl-quote-card{
  display:grid; gap:var(--space-5); margin:0; min-width:0;
  padding:var(--space-6); border:1px solid var(--border-subtle); border-radius:var(--radius-card);
  background:var(--surface-card); box-shadow:var(--shadow-card);
}
@media (max-width:520px){ .tl-quote-card{ padding:var(--space-5) var(--space-4); } }
.tl-quote-card__title{
  display:flex; align-items:center; gap:var(--space-3); padding:0; float:left; width:100%;
  font-family:var(--font-display); font-size:var(--text-h4); font-weight:var(--weight-display); color:var(--text-heading);
}
.tl-quote-card__title + *{ clear:both; }
.tl-quote-card__step{
  flex:0 0 auto; width:30px; height:30px; display:grid; place-items:center; border-radius:var(--radius-pill);
  background:var(--accent-soft); color:var(--accent-primary); font-size:var(--text-sm); font-weight:var(--weight-bold);
}
.tl-quote-pers{ display:grid; gap:var(--space-4); padding:var(--space-5); border-radius:var(--radius-lg); background:var(--surface-muted); border:1px solid var(--border-subtle); }
.tl-quote-pers[hidden]{ display:none; }
.tl-quote-pers__title{ margin:0; font-size:var(--text-sm); font-weight:var(--weight-semibold); color:var(--accent-primary); letter-spacing:.04em; text-transform:uppercase; }
.tl-quote-card__row{ display:grid; gap:var(--space-5); grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr)); }
.tl-quote-card__row--city{ grid-template-columns:minmax(0,1fr) 96px; margin-bottom:calc(var(--space-3) * -1); }

.tl-quote-product{
  display:flex; align-items:center; gap:var(--space-4); padding:var(--space-3);
  border-radius:var(--radius-md); background:var(--surface-muted);
}
.tl-quote-product[hidden]{ display:none; }
.tl-quote-product img{ width:64px; height:64px; object-fit:cover; border-radius:var(--radius-sm); flex:0 0 auto; }
.tl-quote-product img[hidden]{ display:none; }
.tl-quote-product div{ display:grid; gap:2px; min-width:0; }
.tl-quote-product strong{ color:var(--text-heading); font-size:var(--text-sm); }
.tl-quote-product span{ color:var(--text-muted); font-size:var(--text-xs); }

.tl-contact-options{ display:grid; gap:var(--space-3); grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr)); }
.tl-contact-option{
  position:relative; display:flex; align-items:center; gap:var(--space-3); cursor:pointer;
  padding:var(--space-4); border:1.5px solid var(--border-subtle); border-radius:var(--radius-md);
  background:var(--surface-page); transition:var(--t-color);
}
.tl-contact-option:hover{ border-color:var(--border-strong); }
.tl-contact-option input{ position:absolute; opacity:0; pointer-events:none; }
.tl-contact-option__icon{
  flex:0 0 auto; width:40px; height:40px; display:grid; place-items:center; border-radius:var(--radius-pill);
  background:var(--surface-muted); color:var(--text-muted); transition:var(--t-color);
}
.tl-contact-option__text{ display:grid; gap:1px; min-width:0; }
.tl-contact-option__text strong{ font-size:var(--text-sm); color:var(--text-heading); }
.tl-contact-option__text span{ font-size:var(--text-xs); color:var(--text-muted); line-height:1.35; }
.tl-contact-option:has(input:checked){ border-color:var(--accent-primary); background:var(--accent-soft); }
.tl-contact-option:has(input:checked) .tl-contact-option__icon{ background:var(--gradient-brand); color:var(--text-on-accent); }
.tl-contact-option:has(input:focus-visible){ box-shadow:var(--ring-focus); }
.tl-checkbox a{ color:var(--text-link); }

.tl-quote__submit{ height:56px; }
.tl-quote__submit[aria-busy="true"]{ opacity:.7; pointer-events:none; }

.tl-alert{
  display:flex; gap:var(--space-3); align-items:flex-start; padding:var(--space-4) var(--space-5);
  border-radius:var(--radius-md); font-size:var(--text-sm);
}
.tl-alert svg{ flex:0 0 auto; margin-top:1px; }
.tl-alert ul{ list-style:disc; padding-left:1.1em; margin-top:var(--space-2); display:grid; gap:2px; }
.tl-alert a{ color:inherit; }
.tl-alert--error{ background:var(--state-danger-soft); color:var(--state-danger); border:1px solid rgba(192,57,43,.2); }
.tl-alert--error strong{ color:var(--red-600); }

.tl-quote-aside-card{
  display:grid; gap:var(--space-4); padding:var(--space-6); border-radius:var(--radius-card);
  background:var(--surface-card); border:1px solid var(--border-subtle);
}
.tl-quote-aside-card + .tl-quote-aside-card{ margin-top:var(--space-4); }
.tl-quote-aside-card h2{ font-size:var(--text-h4); }
.tl-quote-aside-card p{ font-size:var(--text-sm); color:var(--text-muted); }
.tl-quote-aside-card--soft{ background:var(--gradient-brand-soft); border-color:transparent; }

.tl-steps{ list-style:none; margin:0; padding:0; display:grid; gap:var(--space-4); counter-reset:passo; }
.tl-steps li{ position:relative; display:grid; gap:2px; padding-left:44px; counter-increment:passo; font-size:var(--text-sm); }
.tl-steps li::before{
  content:counter(passo); position:absolute; left:0; top:-2px; width:30px; height:30px;
  display:grid; place-items:center; border-radius:var(--radius-pill);
  background:var(--accent-soft); color:var(--accent-primary); font-weight:var(--weight-bold);
}
.tl-steps li:not(:last-child)::after{
  content:""; position:absolute; left:14.5px; top:32px; bottom:calc(var(--space-4) * -1 + 2px); width:1px; background:var(--border-strong);
}
.tl-steps strong{ color:var(--text-heading); }
.tl-steps span{ color:var(--text-muted); line-height:1.45; }

.tl-quote-aside-card--soft .tl-btn + .tl-btn{ margin-top:calc(var(--space-1) * -1); }
.tl-contact-done{ justify-items:center; text-align:center; padding-block:var(--space-12); }
.tl-contact-done p{ max-width:44ch; color:var(--text-muted); }

/* ---- confirmação ---- */
.tl-quote-done{ background:var(--gradient-brand-soft); }
.tl-quote-done__card{
  max-width:680px; margin-inline:auto; display:grid; gap:var(--space-5); justify-items:center; text-align:center;
  padding:clamp(28px,5vw,56px); border-radius:var(--radius-2xl); background:var(--surface-card); box-shadow:var(--shadow-card-hover);
}
.tl-quote-done__icon{
  width:80px; height:80px; display:grid; place-items:center; border-radius:var(--radius-pill);
  background:var(--state-success-soft); color:var(--state-success);
  animation:tl-pop var(--dur-slow) var(--ease-out) both;
}
@keyframes tl-pop{ from{ transform:scale(.6); opacity:0; } to{ transform:scale(1); opacity:1; } }
@media (prefers-reduced-motion:reduce){ .tl-quote-done__icon{ animation:none; } }
.tl-quote-done__card h1{ font-size:var(--text-h2); max-width:20ch; outline:none; }
.tl-quote-done__lead{ font-size:var(--text-lead); max-width:48ch; }
.tl-quote-done__lead strong{ color:var(--text-heading); }
.tl-quote-done__nowrap{ white-space:nowrap; }
.tl-quote-done__protocol{
  display:grid; gap:2px; padding:var(--space-3) var(--space-6); border-radius:var(--radius-md);
  border:1px dashed var(--border-strong); background:var(--surface-page);
}
.tl-quote-done__protocol span{ font-size:var(--text-xs); font-weight:var(--weight-bold); letter-spacing:var(--tracking-eyebrow); text-transform:uppercase; color:var(--text-muted); }
[data-autofocus]:focus{ outline:none; box-shadow:none; }
.tl-quote-done__protocol strong{ white-space:nowrap; font-family:var(--font-brand); font-size:clamp(1.125rem,4.6vw,1.75rem); color:var(--accent-primary); letter-spacing:.04em; font-variant-numeric:tabular-nums; }
.tl-quote-done__summary{
  width:100%; margin:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr)); gap:var(--space-4);
  padding:var(--space-5); border-radius:var(--radius-md); background:var(--surface-muted); text-align:left;
}
.tl-quote-done__summary div{ display:grid; gap:2px; min-width:0; }
.tl-quote-done__summary-full{ grid-column:1 / -1; }
.tl-quote-done__summary dt{ font-size:var(--text-xs); font-weight:var(--weight-bold); color:var(--text-muted); }
.tl-quote-done__summary dd{ margin:0; font-size:var(--text-sm); color:var(--text-heading); overflow-wrap:anywhere; }
.tl-quote-done__card .tl-steps{ width:100%; text-align:left; padding-top:var(--space-2); }
.tl-quote-done__actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:var(--space-3); margin-top:var(--space-2); }
.tl-quote-done__note{ font-size:var(--text-xs); color:var(--text-muted); }

/* ---------------------------------------------------------
   Página de personalizados
   --------------------------------------------------------- */
.tl-custom-hero{ padding-bottom:var(--section-y-tight); }
.tl-custom-hero__grid{ padding-top:var(--space-4); }
.tl-custom-hero h1{ font-size:var(--text-h1); line-height:var(--leading-tight); max-width:16ch; }
.tl-custom-hero .tl-custom__media{ box-shadow:0 30px 60px -30px rgba(28,23,18,.45); }

.tl-how{ list-style:none; margin:0; padding:0; display:grid; gap:var(--grid-gap); grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); counter-reset:none; }
.tl-how__step{
  position:relative; display:grid; gap:var(--space-3); align-content:start;
  padding:var(--space-6); border-radius:var(--radius-card);
  background:var(--surface-card); border:1px solid var(--border-subtle); box-shadow:var(--shadow-card);
}
.tl-how__number{
  position:absolute; top:var(--space-5); right:var(--space-6);
  font-family:var(--font-brand); font-size:var(--text-h3); color:var(--gold-300); line-height:1;
}
.tl-how__icon{
  width:48px; height:48px; display:grid; place-items:center; border-radius:var(--radius-pill);
  background:var(--surface-inverse); border:1px solid var(--gold-500); color:var(--gold-300);
}
.tl-how__title{ font-size:var(--text-h4); margin-top:var(--space-2); }
.tl-how__text{ font-size:var(--text-sm); color:var(--text-muted); line-height:1.55; }

.tl-custom-options{ display:grid; gap:var(--space-4); grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr)); }
.tl-custom-options li{
  display:flex; gap:var(--space-3); align-items:flex-start; padding:var(--space-5);
  border-top:1px solid var(--border-strong);
}
.tl-custom-options svg{ flex:0 0 auto; margin-top:2px; color:var(--gold-600); }
.tl-custom-options strong{ display:block; font-family:var(--font-display); font-weight:var(--weight-display); font-size:var(--text-h4); color:var(--text-heading); }
.tl-custom-options li > span > span{ display:block; margin-top:2px; font-size:var(--text-sm); color:var(--text-muted); line-height:1.5; }

.tl-cta-band{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--space-8);
  padding:clamp(28px,5vw,64px); border-radius:var(--radius-2xl); overflow:hidden;
  background:radial-gradient(90% 120% at 100% 0%,rgba(209,169,74,.3),transparent 60%),var(--gradient-brand-dark);
  border:1px solid rgba(209,169,74,.35); color:rgba(245,236,215,.8);
}
.tl-cta-band__text{ display:grid; gap:var(--space-3); max-width:52ch; }
.tl-cta-band h2{ color:var(--white); }
.tl-cta-band p{ font-size:var(--text-lead); }
.tl-cta-band__actions{ display:flex; flex-wrap:wrap; gap:var(--space-3); }

/* ---------------------------------------------------------
   Dúvidas frequentes e prazos
   --------------------------------------------------------- */
.tl-faq-atalhos{ margin-top:var(--space-6); }
#prazos,.tl-faq__grupo{ scroll-margin-top:150px; }

.tl-prazos{ display:grid; gap:var(--grid-gap); grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); }
.tl-prazo{
  display:grid; gap:var(--space-2); align-content:start; padding:var(--space-6);
  border-radius:var(--radius-card); background:var(--surface-card);
  border:1px solid var(--border-subtle); border-top:2px solid var(--gold-400); box-shadow:var(--shadow-card);
}
.tl-prazo__icon{
  width:44px; height:44px; display:grid; place-items:center; margin-bottom:var(--space-2); border-radius:var(--radius-pill);
  background:var(--surface-inverse); border:1px solid var(--gold-500); color:var(--gold-300);
}
.tl-prazo__titulo{ font-size:var(--text-h4); }
.tl-prazo__valor{ font-family:var(--font-ui); font-size:var(--text-lead); font-weight:var(--weight-bold); color:var(--accent-primary); }
.tl-prazo__desc{ font-size:var(--text-sm); color:var(--text-muted); line-height:1.55; }

.tl-faq{ display:grid; gap:var(--space-12); max-width:880px; }
.tl-faq__grupo{ display:grid; gap:var(--space-4); }
.tl-faq__tema{ font-size:var(--text-h3); }
.tl-faq__lista{ display:grid; gap:var(--space-3); }
.tl-faq__item{
  border-radius:var(--radius-md); background:var(--surface-card); border:1px solid var(--border-subtle);
  transition:var(--t-color),var(--t-shadow);
}
.tl-faq__item[open]{ border-color:var(--border-strong); box-shadow:var(--shadow-card); }
.tl-faq__item summary{
  display:flex; align-items:center; justify-content:space-between; gap:var(--space-4);
  padding:var(--space-5); cursor:pointer; list-style:none; border-radius:inherit;
  font-weight:var(--weight-semibold); color:var(--text-heading);
}
.tl-faq__item summary::-webkit-details-marker{ display:none; }
.tl-faq__item summary:hover{ color:var(--accent-primary); }
.tl-faq__sinal{ position:relative; flex:0 0 auto; width:28px; height:28px; border-radius:var(--radius-pill); background:var(--accent-soft); }
.tl-faq__sinal::before,.tl-faq__sinal::after{
  content:""; position:absolute; left:50%; top:50%; width:12px; height:2px; margin:-1px 0 0 -6px;
  border-radius:2px; background:var(--gold-700); transition:transform var(--dur-base) var(--ease-out);
}
.tl-faq__sinal::after{ transform:rotate(90deg); }
.tl-faq__item[open] .tl-faq__sinal::after{ transform:rotate(0deg); }
.tl-faq__resposta{ padding:0 var(--space-5) var(--space-5); color:var(--text-body); line-height:var(--leading-relaxed); max-width:70ch; }

/* ---------------------------------------------------------
   Políticas (privacidade, trocas, termos)
   --------------------------------------------------------- */
.tl-legal__data{ display:inline-flex; align-items:center; gap:6px; margin-top:var(--space-2); font-size:var(--text-sm); color:var(--text-muted); }
.tl-legal{ display:grid; gap:var(--space-10); align-items:start; }
@media (min-width:920px){
  .tl-legal{ grid-template-columns:240px minmax(0,1fr); gap:clamp(40px,6vw,96px); }
  .tl-legal__aside{ position:sticky; top:150px; }
}
.tl-legal__aside{ display:grid; gap:var(--space-8); min-width:0; }
.tl-legal__aside-titulo{ display:block; margin-bottom:var(--space-3); font-size:var(--text-xs); font-weight:var(--weight-bold); letter-spacing:var(--tracking-eyebrow); text-transform:uppercase; color:var(--accent-primary); }
.tl-legal__indice ol{ list-style:none; margin:0; padding:0; display:grid; gap:2px; border-left:1px solid var(--border-strong); }
.tl-legal__indice a{ display:block; padding:6px 0 6px var(--space-4); margin-left:-1px; border-left:2px solid transparent; font-size:var(--text-sm); color:var(--text-muted); text-decoration:none; transition:var(--t-color); }
.tl-legal__indice a:hover{ color:var(--text-heading); border-left-color:var(--gold-400); }
.tl-legal__outras{ display:grid; gap:var(--space-1); }
.tl-legal__outras a{ padding:var(--space-2) var(--space-3); border-radius:var(--radius-sm); font-size:var(--text-sm); font-weight:var(--weight-semibold); color:var(--text-heading); text-decoration:none; white-space:nowrap; }
.tl-legal__outras a:hover{ background:var(--surface-muted); }
.tl-legal__outras a[aria-current="page"]{ background:var(--accent-soft); color:var(--accent-primary); box-shadow:inset 3px 0 0 var(--gold-500); }
@media (max-width:919px){
  .tl-legal__indice{ display:none; }
  .tl-legal__outras{ display:flex; overflow-x:auto; }
  .tl-legal__outras .tl-legal__aside-titulo{ display:none; }
}

.tl-prose{ max-width:72ch; min-width:0; color:var(--text-body); line-height:var(--leading-relaxed); }
.tl-prose > * + *{ margin-top:var(--space-4); }
.tl-prose h2{ font-size:var(--text-h3); margin-top:var(--space-12); scroll-margin-top:150px; }
.tl-prose h2:first-child{ margin-top:0; }
.tl-prose h3{ font-size:var(--text-h4); margin-top:var(--space-8); }
.tl-prose ul{ list-style:none; padding:0; display:grid; gap:var(--space-2); }
.tl-prose li{ position:relative; padding-left:var(--space-6); }
.tl-prose li::before{ content:""; position:absolute; left:4px; top:.72em; width:7px; height:7px; border-radius:2px; transform:rotate(45deg); background:var(--gradient-brand); }
.tl-prose strong{ color:var(--text-heading); }
.tl-prose a{ color:var(--text-link); text-underline-offset:3px; overflow-wrap:anywhere; }
.tl-prose a:hover{ color:var(--text-link-hover); }
.tl-prose .tl-legal__ajuda{
  display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2) var(--space-4);
  margin-top:var(--space-12); padding:var(--space-6); border-radius:var(--radius-card);
  background:var(--gradient-brand-soft); border:1px solid var(--border-strong);
}
.tl-legal__ajuda strong{ flex-basis:100%; font-family:var(--font-display); font-weight:var(--weight-display); font-size:var(--text-h4); }
.tl-legal__ajuda > span{ flex:1 1 200px; color:var(--text-muted); font-size:var(--text-sm); }
.tl-prose .tl-legal__ajuda a{ color:var(--white); text-decoration:none; overflow-wrap:normal; }

/* ---------------------------------------------------------
   Página Sobre
   --------------------------------------------------------- */
.tl-sobre__local{ display:inline-flex; align-items:center; gap:var(--space-2); width:fit-content; padding:var(--space-2) var(--space-4); border-radius:var(--radius-pill); border:1px solid var(--border-strong); background:var(--surface-card); font-size:var(--text-sm); font-weight:var(--weight-semibold); color:var(--accent-primary); }
.tl-sobre__historia{ margin-inline:auto; }
.tl-sobre__historia h2:first-child::before{ content:""; display:block; width:48px; height:2px; margin-bottom:var(--space-5); background:var(--gradient-brand); }

/* ---------------------------------------------------------
   Menu mobile
   --------------------------------------------------------- */
.tl-mobile-menu{ position:fixed; inset:0; z-index:60; display:none; }
.tl-mobile-menu.is-open{ display:block; }
.tl-mobile-menu__scrim{ position:absolute; inset:0; background:var(--scrim); }
.tl-mobile-menu__panel{
  position:absolute; inset:0 0 0 auto; width:min(86vw,380px); background:var(--surface-page);
  box-shadow:var(--shadow-drawer); display:flex; flex-direction:column;
}
.tl-mobile-menu__header{ display:flex; align-items:center; justify-content:space-between; padding:var(--space-4) var(--space-5); border-bottom:1px solid var(--border-subtle); }
.tl-mobile-menu__header .tl-logo img{ width:84px; height:84px; }
.tl-mobile-menu__nav{ flex:1; overflow-y:auto; padding:var(--space-3) var(--space-3) var(--space-6); }
.tl-mobile-menu__nav a{
  display:flex; align-items:center; justify-content:space-between; min-height:var(--tap-min);
  padding:var(--space-3) var(--space-4); border-radius:var(--radius-md); font-family:var(--font-display);
  font-size:var(--text-h4); font-weight:var(--weight-display); color:var(--text-heading); text-decoration:none;
}
.tl-mobile-menu__nav a[aria-current="page"]{ background:var(--accent-soft); color:var(--accent-primary); box-shadow:inset 3px 0 0 var(--gold-500); }
.tl-mobile-menu__footer{ padding:var(--space-5); border-top:1px solid var(--border-subtle); display:grid; gap:var(--space-3); }

/* ---------------------------------------------------------
   Responsivo
   --------------------------------------------------------- */
@media (min-width:1180px){
  .tl-nav{ display:flex; }
  .tl-menu-toggle{ display:none; }
}
@media (max-width:640px){
  .tl-hero{ min-height:560px; }
  .tl-announcement__inner{ font-size:12.5px; }
  .tl-header__inner{ min-height:100px; flex-wrap:wrap; }
  .tl-header .tl-logo img{ width:84px; height:84px; }
  .tl-header__inner > .tl-header-search{ order:2; margin-left:auto; }
  .tl-nav--static{ display:flex; flex-basis:100%; order:3; justify-content:center; gap:0; }
  .tl-nav--static .tl-nav__link{ height:36px; padding-inline:var(--space-2); font-size:12px; }
}

/* ---- página 404 ---------------------------------------------------- */
.tl-404{ display:flex; align-items:center; min-height:52vh; }
.tl-404__caixa{ display:grid; gap:var(--space-4); max-width:60ch; }
.tl-404__texto{ font-size:var(--text-lead); color:var(--text-muted); }
.tl-404__busca{ display:flex; gap:var(--space-2); flex-wrap:wrap; }
.tl-404__busca .tl-input{ flex:1 1 220px; }
.tl-404__categorias{ display:flex; gap:var(--space-2); flex-wrap:wrap; }
.tl-404__acoes{ display:flex; gap:var(--space-3); flex-wrap:wrap; margin-top:var(--space-2); }

/* ---- celular: densidade, área de toque e o botão flutuante ----------
   Medidas do relatório do PageSpeed: cada card ocupava quase uma tela,
   os alvos de toque ficavam abaixo dos 44px recomendados e o botão do
   WhatsApp cobria o texto no fim da página. */
@media (max-width: 560px){
  /* dois produtos por linha: 10 peças deixam de ser 10 telas de rolagem */
  .tl-product-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-3); }
  .tl-product-card__name{ font-size:var(--text-sm); }
  .tl-product-card__meta{ font-size:11px; }
}

/* área de toque de 44px sem aumentar o desenho do botão */
.tl-favorite-btn::after{ content:""; position:absolute; inset:-5px; border-radius:inherit; }
.tl-product-card__link{ display:inline-flex; align-items:center; gap:6px; min-height:44px; }
.tl-mobile-menu__nav a{ min-height:44px; }
.tl-mobile-menu__sub{ padding-left:var(--space-5); font-size:var(--text-sm); color:var(--text-body); }

/* o botão flutuante não pode ficar por cima do conteúdo no fim da página */
@media (max-width: 720px){
  body{ padding-bottom:72px; }
}
