/* ============================================================
   Masterclass Personal Organizer — Fashion School
   Paleta fria e neutra: sálvia, ardósia, névoa, gelo
   Tipografia: Montserrat (títulos/botões) + Inter (texto)
   ============================================================ */

:root{
  /* neutros frios */
  --ice:        #FBFCFC;
  --mist:       #F1F4F3;
  --mist-2:     #E6EBE9;
  --line:       #DCE3E0;

  /* sálvia / verde frio */
  --sage-900:   #2B352E;
  --sage-800:   #3A483E;
  --sage-700:   #4A5B4F;
  --sage-600:   #5E7365;
  --sage-400:   #8CA294;
  --sage-100:   #DDE5E0;

  /* ardósia */
  --ink:        #1E2422;
  --slate:      #4F5C56;
  --slate-soft: #7C8983;

  /* escala de espaçamento */
  --s-1:  .5rem;
  --s-2:  .875rem;
  --s-3:  1.25rem;
  --s-4:  1.75rem;
  --s-5:  2.5rem;
  --s-6:  3.5rem;
  --s-7:  4.5rem;

  --radius:     14px;
  --radius-lg:  22px;
  --shadow:     0 18px 50px -24px rgba(30,36,34,.28);
  --shadow-sm:  0 8px 24px -14px rgba(30,36,34,.30);
  --shadow-lg:  0 40px 90px -30px rgba(30,36,34,.45);

  --head: "Montserrat", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:hidden; }

body{
  margin:0;
  font-family:var(--sans);
  font-size:17.5px;
  line-height:1.7;
  color:var(--slate);
  background:var(--ice);
  -webkit-font-smoothing:antialiased;
}
body.is-locked{ overflow:hidden; }

img{ max-width:100%; height:auto; display:block; }

.wrap{ width:min(1180px, 100% - 56px); margin-inline:auto; }
.wrap--narrow{ width:min(740px, 100% - 56px); }
.center{ text-align:center; }

/* ---------- tipografia ---------- */
h1,h2,h3{
  font-family:var(--head); color:var(--sage-900);
  font-weight:700; margin:0; letter-spacing:-.01em;
}
h1 em, .h2 em{ font-style:normal; font-weight:800; color:var(--sage-600); }

h1{
  font-size:clamp(2.1rem, 1.3rem + 2.6vw, 3.25rem);
  font-weight:800;
  line-height:1.14;
  margin-bottom:var(--s-3);
}

.h2{
  font-size:clamp(1.7rem, 1.15rem + 1.8vw, 2.5rem);
  line-height:1.2;
  margin:0;
}

/* cabeçalho de secção — ritmo e afastamento iguais em todas */
.sec__head{
  text-align:center;
  max-width:760px;
  margin:0 auto var(--s-6);
}
.sec__head .sub{ margin-top:var(--s-3); }

.lede{
  font-size:clamp(1.05rem, .98rem + .35vw, 1.2rem);
  line-height:1.65;
  color:var(--slate);
  margin:0 0 var(--s-5);
  max-width:56ch;
}
.center .lede{ margin-inline:auto; }

.sub{ color:var(--slate-soft); max-width:56ch; margin:0 auto; font-size:1.02rem; }

strong{ font-weight:700; color:var(--sage-900); }

/* ---------- botões ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.65rem;
  font-family:var(--head); font-size:.86rem; font-weight:700;
  letter-spacing:.07em; text-transform:uppercase; line-height:1.2;
  padding:1.1rem 2.1rem; border-radius:999px;
  border:2px solid transparent; cursor:pointer;
  text-decoration:none; text-align:center;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}
.btn svg{ width:17px; height:17px; flex:none; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }

.btn--primary{ background:var(--sage-800); color:#fff; box-shadow:var(--shadow-sm); }
.btn--primary:hover{ background:var(--sage-900); transform:translateY(-2px); box-shadow:0 16px 34px -18px rgba(30,36,34,.55); }

.btn--outline{ background:transparent; color:var(--sage-800); border-color:var(--sage-800); }
.btn--outline:hover{ background:var(--sage-800); color:#fff; transform:translateY(-2px); }

.btn--light{ background:#fff; color:var(--sage-900); }
.btn--light:hover{ background:var(--ice); transform:translateY(-2px); }

.btn--lg{ padding:1.25rem 2.6rem; font-size:.92rem; }

.btn:focus-visible,
.reviews-more:focus-visible,
.team__more:focus-visible{ outline:2px solid var(--sage-600); outline-offset:3px; }

/* ---------- selo de data ---------- */
.stamp{
  display:flex; flex-wrap:wrap; align-items:center; gap:.55rem;
  font-size:.95rem; color:var(--sage-700);
  margin:var(--s-4) 0 0;
}
.stamp svg{ width:19px; height:19px; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.stamp strong{ color:var(--sage-900); font-weight:700; }
.stamp__sep{ color:var(--sage-400); }
.stamp--center{ justify-content:center; margin:0 auto var(--s-5); }

/* ============================================================
   1. HERO
   ============================================================ */
.hero{ position:relative; overflow:hidden; padding:0; }

.hero__bg{
  position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(120% 80% at 78% 12%, rgba(221,229,224,.9) 0%, rgba(251,252,252,0) 60%),
    linear-gradient(180deg, var(--mist) 0%, var(--ice) 78%);
}
.hero__bg::after{
  content:""; position:absolute; inset:0;
  background:url("assets/bg-textura.webp") center/cover no-repeat;
  opacity:.5; mix-blend-mode:multiply;
}

/* barra de topo com logo */
.topbar{
  position:relative; z-index:1;
  display:flex; align-items:center; justify-content:space-between; gap:var(--s-3);
  padding:1.4rem 0 0;
}
.topbar__logo{ height:34px; width:auto; }

.hero__grid{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr .92fr; gap:2.5rem;
  align-items:stretch;
  padding-top:0;
}
.hero__copy{ padding-bottom:2.5rem; }

.hero__tag{
  display:inline-block; margin:0 0 var(--s-3);
  font-family:var(--head); font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--sage-600);
}

/* logo Personal Organizer + info ao lado, como na referência */
.hero__brandrow{ position:relative; z-index:1; padding-top:clamp(2rem, 1.25rem + 2vw, 3.25rem); }
.hero__brand{
  display:inline-flex; align-items:center; gap:var(--s-3);
  padding-bottom:var(--s-3); margin-bottom:var(--s-4);
  border-bottom:1px solid var(--line);
  min-width:min(100%, 520px);
}
.hero__logo{ height:86px; width:auto; flex:none; }
.hero__info{
  margin:0; padding-left:var(--s-3); border-left:2px solid var(--sage-400);
  display:flex; flex-direction:column; gap:.15rem;
  font-size:.9rem; line-height:1.4; color:var(--sage-700);
}
.hero__info strong{ font-family:var(--head); font-size:1rem; color:var(--sage-900); }

/* a foto ocupa do topo do título até ao fundo do hero e sangra para a margem direita */
.hero__art{ position:relative; }
.hero__art img{
  position:absolute; left:0; top:0;
  height:100%; width:auto; max-width:none;   /* topo alinhado com o título; sangra à direita */
  filter:drop-shadow(0 30px 45px rgba(43,53,46,.18));
}
@media (max-width:1330px) and (min-width:861px){
  /* ecrãs mais estreitos: a foto encosta ao fundo e não sangra tanto, para não cortar rostos */
  .hero__art img{ top:auto; bottom:0; height:auto; width:calc(100% + 70px); }
}

/* ============================================================
   MARQUEE
   ============================================================ */
.marquee{
  background:var(--sage-800); color:var(--sage-100);
  overflow:hidden; padding:.95rem 0;
  transform:rotate(-1.4deg) scale(1.04);
  margin:0;
  position:relative; z-index:2;
}
.marquee__track{
  display:flex; gap:1.8rem; align-items:center; white-space:nowrap;
  width:max-content;
  animation:slide 34s linear infinite;
  font-family:var(--head); font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; font-weight:700;
}
.marquee__track i{ color:var(--sage-400); font-style:normal; }
@keyframes slide{ to{ transform:translateX(-50%); } }

/* ============================================================
   SECÇÕES — base
   ============================================================ */
.sec{ padding:clamp(4rem, 3rem + 3.5vw, 7.5rem) 0; }

/* 2. IDENTIFICAÇÃO */
.paths{
  list-style:none; margin:0 auto var(--s-6); padding:0;
  display:flex; flex-direction:column; gap:var(--s-2);
  max-width:660px;
}
.paths li{
  background:var(--mist); border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.3rem 1.75rem;
  color:var(--sage-900); font-size:1.08rem; font-weight:500; line-height:1.55;
  text-align:center;
}
.paths li:nth-child(even){ background:#fff; }

.pull{
  font-family:var(--head); font-weight:600;
  font-size:clamp(1.08rem, 1rem + .45vw, 1.3rem);
  line-height:1.55; color:var(--sage-800);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:var(--s-5) 0; margin:0 auto;
  max-width:660px; text-align:center;
}
.pull strong{ font-weight:800; color:var(--sage-600); }

/* 3. A PROFISSÃO */
.sec--profissao{ background:var(--mist); }
.split{
  display:grid; grid-template-columns:.85fr 1fr; gap:clamp(2.5rem, 1.5rem + 3.5vw, 5rem);
  align-items:center;
}
.split__img{ position:relative; margin:0; }
.split__img img{
  width:100%; border-radius:var(--radius-lg); box-shadow:var(--shadow);
  aspect-ratio:3/4; object-fit:cover;
}
.split__badge{
  position:absolute; left:-14px; top:28px;
  background:var(--sage-800); color:#fff;
  font-family:var(--head); font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; font-weight:700;
  padding:.65rem 1.25rem; border-radius:999px;
  box-shadow:var(--shadow-sm);
}
.split__copy .h2{ margin-bottom:var(--s-4); }
.split__copy > p{ margin:0 0 var(--s-4); font-size:1.05rem; }

.checks{ list-style:none; margin:0 0 var(--s-5); padding:0; display:flex; flex-direction:column; gap:var(--s-2); }
.checks li{
  position:relative; padding-left:2.5rem; color:var(--sage-900); font-size:1.05rem; line-height:1.55;
}
.checks li::before{
  content:""; position:absolute; left:0; top:.2rem;
  width:24px; height:24px; border-radius:50%;
  background:var(--sage-700) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/13px no-repeat;
}

/* 4. PROVA SOCIAL */
.sec--prova{ background:var(--ice); }
.reviews{ columns:3; column-gap:1.25rem; margin:0 0 var(--s-5); }
.reviews img{
  width:100%; margin:0 0 1.25rem;
  break-inside:avoid;
  border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  background:#fff;
}
.reviews-more{
  display:none; align-items:center; gap:.45rem;
  margin:0 auto;
  background:none; border:none; cursor:pointer;
  font-family:var(--head); font-size:.85rem; font-weight:700; color:var(--sage-700);
  border-bottom:2px solid var(--sage-400); padding:0 0 3px;
}

/* 5. PARA QUEM É — checklist */
.sec--paraquem{ background:var(--mist); }
.paraquem__copy .h2{ text-align:center; margin-bottom:var(--s-5); }

.checklist{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--s-3); }
.checklist li{
  position:relative; padding:1.1rem 1.4rem 1.1rem 3.6rem;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  font-size:1.08rem; line-height:1.55; color:var(--slate);
}
.checklist li::before{
  content:""; position:absolute; left:1.2rem; top:1.2rem;
  width:26px; height:26px; border-radius:50%;
  background:var(--sage-700) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/14px no-repeat;
}

/* 6. FORMADORAS */
.sec--formadoras{ background:var(--ice); }
.team{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.5rem; align-items:start; }
.team__card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:1.25rem; box-shadow:var(--shadow-sm);
}
.team__photo img{
  width:100%; aspect-ratio:1/1; object-fit:cover; object-position:center top;
  border-radius:var(--radius);
}
.team__body{ padding:var(--s-4) .65rem .65rem; }
.team__body h3{ font-size:1.3rem; line-height:1.25; }
.team__role{
  margin:.5rem 0 var(--s-3);
  font-family:var(--head); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--sage-600);
  line-height:1.5;
}
.team__body p:not(.team__role){ margin:0; font-size:.98rem; line-height:1.65; }

.team__more{
  margin:var(--s-3) 0 0;
  background:none; border:none; cursor:pointer;
  font-family:var(--head); font-size:.82rem; font-weight:700; color:var(--sage-700);
  border-bottom:2px solid var(--sage-400); padding:0 0 3px;
}
.team__more:hover{ color:var(--sage-900); border-color:var(--sage-900); }
.team__bio{ margin-top:var(--s-3); }
.team__bio p{ font-size:.94rem; margin:0 0 var(--s-2) !important; }
.team__bio p:last-child{ margin-bottom:0 !important; }
[hidden]{ display:none !important; }

/* 7. O QUE VAI DESCOBRIR — cartões sólidos com ícone */
.sec--descobrir{ background:#fff; }
.program{
  list-style:none; margin:0; padding:0;
  display:flex; flex-wrap:wrap; justify-content:center; gap:1.1rem;
}
.program li{
  flex:0 0 calc(25% - .825rem);
  background:var(--sage-800); color:#fff;
  border-radius:var(--radius);
  padding:1.9rem 1.7rem 2.1rem;
  min-height:230px;
  display:flex; flex-direction:column; gap:1.1rem;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.program li:hover{ transform:translateY(-4px); box-shadow:var(--shadow); background:var(--sage-900); }
.program svg{
  width:38px; height:38px; flex:none;
  fill:none; stroke:var(--sage-100); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;
}
.program p{ margin:0; font-size:1.02rem; line-height:1.55; font-weight:500; color:#fff; }

.program__cta{ text-align:center; margin-top:var(--s-6); }
.program__cta p{
  margin:0 0 var(--s-3);
  font-family:var(--head); font-weight:700; font-size:1.15rem; color:var(--sage-900);
}

/* 8. FECHO */
.sec--fecho{ background:linear-gradient(180deg, var(--mist) 0%, var(--ice) 100%); }
.sec--fecho .h2{ margin-bottom:var(--s-4); }

/* FOOTER */
.foot{ background:var(--sage-900); color:var(--sage-400); padding:var(--s-5) 0; font-size:.85rem; }
.foot__row{ display:flex; align-items:center; justify-content:space-between; gap:var(--s-3); flex-wrap:wrap; }
.foot__logo{ height:30px; width:auto; opacity:.9; }
.foot p{ margin:0; }


/* ============================================================
   MODAL DE INSCRIÇÃO
   ============================================================ */
.modal{
  position:fixed; inset:0; z-index:100;
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  overflow-y:auto;
}
.modal__backdrop{
  position:fixed; inset:0;
  background:rgba(30,36,34,.55);
  backdrop-filter:blur(4px);
  animation:fade .22s ease;
}
.modal__dialog{
  position:relative;
  width:min(470px, 100%);
  margin:auto;
  background:var(--ice);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  padding:clamp(1.9rem, 1.4rem + 1.4vw, 2.75rem);
  animation:rise .26s cubic-bezier(.2,.7,.3,1);
}
@keyframes fade{ from{ opacity:0; } }
@keyframes rise{ from{ opacity:0; transform:translateY(16px); } }

.modal__close{
  position:absolute; top:14px; right:14px;
  width:38px; height:38px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--mist); border:1px solid var(--line);
  color:var(--sage-700); cursor:pointer;
  transition:background .18s ease, color .18s ease;
}
.modal__close svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.modal__close:hover{ background:var(--sage-800); color:#fff; border-color:var(--sage-800); }

.modal__logo{ height:26px; width:auto; margin-bottom:var(--s-3); }
.modal__title{
  font-size:clamp(1.4rem, 1.2rem + .7vw, 1.75rem);
  line-height:1.22;
  margin:0;
  padding-right:2.5rem;
}
.stamp--modal{
  margin:var(--s-3) 0 var(--s-5);
  padding-bottom:var(--s-4);
  border-bottom:1px solid var(--line);
  font-size:.88rem;
}

/* ---------- formulário ---------- */
.field{ position:relative; margin-bottom:var(--s-2); }
.field input{
  width:100%; font-family:var(--sans); font-size:1rem; color:var(--ink);
  padding:1.5rem 1.1rem .65rem;
  border:1px solid var(--line); border-radius:12px;
  background:#fff; outline:none;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.field label{
  position:absolute; left:1.1rem; top:1.1rem;
  font-size:1rem; color:var(--slate-soft); pointer-events:none;
  transition:all .16s ease;
}
.field input:focus{ border-color:var(--sage-600); box-shadow:0 0 0 3px rgba(94,115,101,.14); }
.field input:focus + label,
.field input:not(:placeholder-shown) + label{
  top:.5rem; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--sage-600);
}
.field input.is-error{ border-color:#C0453F; }

.consent{
  display:flex; gap:.7rem; align-items:flex-start;
  font-size:.86rem; line-height:1.5; color:var(--slate-soft);
  margin:var(--s-3) 0 var(--s-4); cursor:pointer;
}
.consent input{ margin-top:.28rem; accent-color:var(--sage-700); width:16px; height:16px; flex:none; }

.form .btn{ width:100%; }
.form__note{ font-size:.86rem; margin:var(--s-2) 0 0; text-align:center; color:var(--sage-700); }
.form__note.is-error{ color:#C0453F; }
.form__note:empty{ display:none; margin:0; }

/* ============================================================
   RESPONSIVO
   ============================================================ */
@media (max-width:1040px){
  .reviews{ columns:2; }
  .team{ grid-template-columns:repeat(2, 1fr); }
  .program li{ flex-basis:calc(50% - .55rem); min-height:0; }
}

@media (max-width:860px){
  body{ font-size:16.5px; }
  .wrap, .wrap--narrow{ width:calc(100% - 40px); }

  .topbar{ padding-top:1.1rem; }
  .topbar__logo{ height:28px; }

  .hero__grid{ grid-template-columns:1fr; gap:var(--s-4); padding-top:2.25rem; }
  .hero__copy{ padding-bottom:0; order:1; }
  .hero__art{ order:2; max-width:460px; margin:0 auto; }
  .hero__art img{ position:static; height:auto; width:100%; max-width:100%; }
  .hero__brandrow{ padding-top:1.75rem; }
  .hero__brand{ display:flex; flex-direction:column; align-items:flex-start; gap:var(--s-2); min-width:0; width:100%; }
  .hero__logo{ height:72px; }
  .hero__info{ padding-left:0; border-left:0; }
  .lede{ max-width:none; }

  .split{ grid-template-columns:1fr; gap:var(--s-5); }
  .split__img{ max-width:420px; margin-inline:auto; }
  .split__badge{ left:12px; }

  .sec__head{ margin-bottom:var(--s-5); }
}

@media (max-width:680px){
  /* ---- hero: primeiro ecrã = logo, título, botão ---- */
  .hero__brandrow{ padding-top:1.25rem; }
  .hero__brand{
    flex-direction:row; align-items:center; gap:var(--s-2);
    padding-bottom:var(--s-2); margin-bottom:var(--s-3);
  }
  .hero__logo{ height:54px; }
  .hero__info{ padding-left:var(--s-2); border-left:2px solid var(--sage-400); font-size:.8rem; line-height:1.3; }
  .hero__info strong{ font-size:.92rem; }
  h1{ font-size:2rem; line-height:1.15; margin-bottom:var(--s-2); }
  .hero .lede{ font-size:1rem; line-height:1.55; margin-bottom:var(--s-3); }
  .hero__grid{ gap:var(--s-3); }
  .hero__copy{ padding-bottom:0; }
  .hero__art{ max-width:100%; }
  .hero__art img{ max-height:300px; width:auto; max-width:100%; margin-inline:auto; object-fit:contain; }

  /* ---- profissão: imagem paisagem, menos scroll ---- */
  .split__img{ max-width:none; }
  .split__img img{ aspect-ratio:4/3; }

  /* ---- formadoras: cartão horizontal compacto ---- */
  .team{ max-width:none; gap:.9rem; }
  .team__card{ display:grid; grid-template-columns:96px 1fr; gap:1rem; align-items:start; padding:1rem; }
  .team__photo img{ border-radius:50%; }
  .team__body{ padding:0; }
  .team__body h3{ font-size:1.12rem; }
  .team__role{ margin:.3rem 0 .6rem; font-size:.66rem; }
  .team__body p:not(.team__role){ font-size:.92rem; line-height:1.55; }
  .team__more{ margin-top:.75rem; }
  .team__bio{ grid-column:1 / -1; }

  /* ---- programa: linhas compactas com ícone à esquerda ---- */
  .program{ gap:.7rem; }
  .program li{ flex-direction:row; align-items:flex-start; gap:.9rem; padding:1.05rem 1.15rem; min-height:0; border-radius:12px; }
  .program svg{ width:28px; height:28px; margin-top:.05rem; }
  .program p{ font-size:.98rem; line-height:1.5; }
  .program__cta{ margin-top:var(--s-4); }
  .program__cta p{ font-size:1.05rem; }

  /* ---- secções mais curtas ---- */
  .sec{ padding:3.25rem 0; }
  .sec__head{ margin-bottom:var(--s-4); }
  .paths li{ padding:1.05rem 1.2rem; font-size:1rem; }
  .paths{ margin-bottom:var(--s-4); }
  .pull{ padding:var(--s-4) 0; }
  .checklist li{ padding:.95rem 1.1rem .95rem 3.2rem; font-size:1rem; }
  .checklist li::before{ left:1rem; top:1rem; width:24px; height:24px; }

  .reviews{ columns:1; }
  .reviews:not(.is-open) img:nth-of-type(n+4){ display:none; }
  .reviews-more{ display:inline-flex; }

  .team{ grid-template-columns:1fr; max-width:420px; margin-inline:auto; }
  .program li{ flex-basis:100%; }

  .btn{ width:100%; padding-inline:1.25rem; font-size:.8rem; letter-spacing:.05em; }
  .btn svg{ display:none; }
  .btn--lg{ padding:1.15rem 1.25rem; font-size:.8rem; }
  .btn--outline{ width:auto; }


  .stamp__sep{ display:none; }
  .stamp strong{ flex-basis:100%; padding-left:1.8rem; }
  .stamp--center{ justify-content:flex-start; text-align:left; }

  .foot__row{ flex-direction:column; text-align:center; }

  .modal{ padding:0; align-items:flex-end; }
  .modal__dialog{ width:100%; border-radius:22px 22px 0 0; padding:1.5rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom)); max-height:94vh; overflow-y:auto; }
  .modal__logo{ height:22px; margin-bottom:var(--s-2); }
  .modal__title{ font-size:1.35rem; }
  .stamp--modal{ margin:var(--s-2) 0 var(--s-3); padding-bottom:var(--s-3); }
  .field input{ font-size:16px; padding:1.35rem 1rem .6rem; }
  .consent{ margin:var(--s-2) 0 var(--s-3); }
}

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
  html{ scroll-behavior:auto; }
}

/* ============================================================
   PÁGINA DE OBRIGADO (/obrigado)
   ============================================================ */
.ty{ background:var(--mist); }
.ty__top{ padding:1.4rem 0; }
.ty__main{ padding:0 0 clamp(3rem, 2rem + 3vw, 5rem); }

.ty__badge{
  width:66px; height:66px; margin:0 auto var(--s-4);
  border-radius:50%; background:var(--sage-700);
  display:grid; place-items:center;
  box-shadow:0 14px 30px -14px rgba(43,53,46,.6);
}
.ty__badge svg{ width:30px; height:30px; fill:none; stroke:#fff; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }

.ty__title{
  font-size:clamp(1.7rem, 1.2rem + 1.7vw, 2.4rem);
  line-height:1.18; text-align:center;
  margin:var(--s-1) 0 var(--s-3);
}
.ty .lede{ margin-bottom:var(--s-5); }

/* cartão da data */
.ty__card{
  display:grid; grid-template-columns:auto 1fr; gap:var(--s-5);
  align-items:center;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(1.4rem, 1rem + 1.2vw, 2.1rem);
  box-shadow:var(--shadow);
  margin-bottom:clamp(3rem, 2rem + 3vw, 5rem);
}
.ty__when{
  text-align:center; background:var(--sage-900); color:#fff;
  border-radius:var(--radius); padding:1.1rem 1.4rem; min-width:112px;
}
.ty__day{ display:block; font-family:var(--head); font-weight:800; font-size:2.7rem; line-height:1; }
.ty__month{ display:block; font-family:var(--head); font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; margin-top:.3rem; color:var(--sage-400); }

.ty__label{
  margin:0; font-family:var(--head); font-size:.74rem; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--sage-600);
}
.ty__time{
  display:flex; align-items:center; gap:.5rem;
  margin:.4rem 0 var(--s-3); font-size:1.05rem; font-weight:600; color:var(--sage-900);
}
.ty__time svg{ width:19px; height:19px; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.ty__cal{ display:flex; flex-wrap:wrap; gap:.7rem; }
.ty__cal .btn{ font-size:.78rem; padding:.9rem 1.3rem; }

/* próximos passos */
.ty__next{ margin-bottom:clamp(3rem, 2rem + 3vw, 5rem); }
.ty__next .h2{ margin-bottom:var(--s-5); }
.steps{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--s-2); counter-reset:s; }
.steps li{
  display:grid; grid-template-columns:auto 1fr; gap:1.1rem; align-items:start;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:1.4rem 1.6rem;
}
.steps__n{
  width:32px; height:32px; border-radius:50%; flex:none;
  background:var(--sage-100); color:var(--sage-800);
  display:grid; place-items:center;
  font-family:var(--head); font-weight:700; font-size:.95rem;
}
.steps h3{ font-size:1.08rem; margin:.25rem 0 .35rem; }
.steps p{ margin:0; font-size:.98rem; line-height:1.6; }

/* bloco extra (WhatsApp) */
.ty__extra{
  background:var(--sage-900); color:var(--sage-100);
  border-radius:var(--radius-lg); padding:clamp(1.8rem, 1.4rem + 1.4vw, 2.75rem);
  text-align:center;
}
.ty__extra .h2{ color:var(--ice); margin-bottom:var(--s-2); }
.ty__extra p{ margin:0 auto var(--s-4); max-width:46ch; color:var(--sage-100); }

.ty__meta{ text-align:center; font-size:.9rem; margin:var(--s-5) 0 0; }
.ty__meta a{ color:var(--sage-700); font-weight:600; }

@media (max-width:680px){
  .ty__card{ grid-template-columns:1fr; gap:var(--s-3); text-align:center; }
  .ty__when{ min-width:0; padding:.9rem; }
  .ty__day{ font-size:2.2rem; }
  .ty__time{ justify-content:center; }
  .ty__cal{ flex-direction:column; }
  .ty__cal .btn{ width:100%; }
  .steps li{ padding:1.15rem 1.2rem; gap:.9rem; }
}
