/* Algarfun — algarfun.pt
   Palette: Pinhal Green #264624 · Algarve Sand #F2E8C6 · Ochre Cliff #D97925 */

@font-face{font-family:Lora;src:url(/fonts/Lora.woff)format("woff");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:Lora;src:url(/fonts/Lora-Italic.woff)format("woff");font-weight:400 700;font-style:italic;font-display:swap}
@font-face{font-family:Poppins;src:url(/fonts/Poppins-Regular.woff)format("woff");font-weight:400;font-display:swap}
@font-face{font-family:Poppins;src:url(/fonts/Poppins-Medium.woff)format("woff");font-weight:500;font-display:swap}
@font-face{font-family:Poppins;src:url(/fonts/Poppins-Bold.woff)format("woff");font-weight:700;font-display:swap}

:root{
  --green:#264624; --green-d:#172c16; --green-l:#3a6337;
  --sand:#F2E8C6; --sand-d:#e4d5a8; --paper:#FBF7EC;
  --ochre:#D97925; --ochre-d:#c66a18;
  --ochre-txt:#9c5205;   /* AA on paper/sand */
  --ochre-lt:#eb9a4f;    /* AA on green surfaces */
  --ink:#1b2a1a; --muted:#5c6b58; --line:rgba(38,70,36,.16);
  --serif:Lora,Georgia,"Times New Roman",serif;
  --sans:Poppins,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --r:14px; --shadow:0 4px 18px rgba(23,44,22,.09); --shadow-lg:0 16px 44px rgba(23,44,22,.16);
  --pad:clamp(1.15rem,5vw,2rem); --wrap:1180px;
  --sect:clamp(3.6rem,9vw,6.5rem);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:76px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
body{margin:0;background:var(--paper);color:var(--ink);
  font:400 clamp(1rem,.97rem + .18vw,1.075rem)/1.68 var(--sans);
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.14;margin:0;letter-spacing:-.012em}
h1{font-size:clamp(2.2rem,1.35rem + 4.1vw,4.15rem)}
h2{font-size:clamp(1.85rem,1.3rem + 2.5vw,3rem)}
h3{font-size:clamp(1.2rem,1.06rem + .58vw,1.5rem)}
p{margin:0 0 1rem}
:focus-visible{outline:3px solid var(--ochre);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--green);color:var(--sand);padding:.8rem 1.2rem;border-radius:0 0 var(--r) 0}
.skip:focus{left:0}
.wrap{width:min(100% - var(--pad)*2,var(--wrap));margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- shared bits ---------- */
.eyebrow{font:500 .72rem/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ochre-txt);margin:0 0 .85rem;display:flex;align-items:center;gap:.7rem}
.eyebrow::after{content:"";height:1px;flex:1;background:currentColor;opacity:.35;max-width:80px}
.lede{color:var(--muted);max-width:62ch;font-size:1.02rem}
.sect{padding-block:var(--sect)}
.sect-head{margin-bottom:clamp(2rem,4.5vw,3.2rem)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font:500 .95rem/1 var(--sans);padding:1.02em 1.7em;border-radius:100px;border:1.5px solid transparent;
  text-decoration:none;cursor:pointer;transition:transform .18s,background .18s,color .18s,border-color .18s,box-shadow .18s;
  text-align:center;min-height:48px}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-p{background:var(--ochre);color:var(--green-d);font-weight:600;box-shadow:0 5px 16px rgba(217,121,37,.3)}
.btn-p:hover{background:#e78e3f;box-shadow:0 9px 24px rgba(217,121,37,.42)}
.btn-s{background:transparent;border-color:currentColor;color:var(--green)}
.btn-s:hover{background:var(--green);border-color:var(--green);color:var(--sand)}
.on-dark .btn-s,.btn-s.light{color:var(--sand)}
.on-dark .btn-s:hover,.btn-s.light:hover{background:var(--sand);border-color:var(--sand);color:var(--green)}
.btn-w{width:100%}

/* ---------- header ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:100;transition:background .3s,box-shadow .3s,padding .3s;padding-block:.85rem}
.hdr-in{display:flex;align-items:center;gap:1rem}
.hdr .logo img{height:38px;width:auto;transition:height .3s}
.hdr.stuck, .hdr-solid{background:rgba(251,247,236,.97);box-shadow:0 1px 0 var(--line),0 8px 26px rgba(23,44,22,.07);padding-block:.55rem}
.hdr-solid:not(.stuck){padding-block:.85rem;box-shadow:0 1px 0 var(--line)}
.hdr-solid:not(.stuck) .logo img{height:38px}
/* The frosted-glass header is desktop-only on purpose. An element with a
   backdrop-filter becomes the containing block for its position:fixed children,
   which would size the mobile menu drawer to the header instead of the screen. */
@media (min-width:1001px){
  .hdr.stuck, .hdr-solid{background:rgba(251,247,236,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
}
/* belt and braces: never filter the header while the drawer is open */
body.locked .hdr{backdrop-filter:none;-webkit-backdrop-filter:none}
.hdr.stuck .logo img, .hdr-solid .logo img{height:32px}
.logo{margin-right:auto;display:block;line-height:0}
.logo .l-light{display:block}.logo .l-dark{display:none}
.hdr.stuck .logo .l-light, .hdr-solid .logo .l-light{display:none}.hdr.stuck .logo .l-dark, .hdr-solid .logo .l-dark{display:block}
.nav{display:flex;align-items:center;gap:.35rem}
.nav a{font:500 .875rem/1 var(--sans);text-decoration:none;padding:.62rem .72rem;border-radius:8px;color:var(--sand);white-space:nowrap;transition:color .2s,background .2s}
.hdr.stuck .nav a, .hdr-solid .nav a{color:var(--green)}
.nav a:hover{background:rgba(242,232,198,.16)}
.hdr.stuck .nav a:hover, .hdr-solid .nav a:hover{background:rgba(38,70,36,.08);color:var(--ochre-txt)}
.nav .btn{margin-left:.5rem;padding:.78em 1.35em;font-size:.87rem;min-height:42px}
.burger{display:none;background:none;border:0;padding:.5rem;cursor:pointer;color:var(--sand);border-radius:8px}
.hdr.stuck .burger, .hdr-solid .burger{color:var(--green)}
.burger svg{display:block;width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}

/* language picker */
.lang{position:relative}
.lang-btn{display:flex;align-items:center;gap:.42rem;background:none;border:1.5px solid rgba(242,232,198,.42);color:var(--sand);
  padding:.5rem .78rem;border-radius:100px;cursor:pointer;font:500 .8rem/1 var(--sans);min-height:40px;transition:border-color .2s,color .2s,background .2s}
.hdr.stuck .lang-btn, .hdr-solid .lang-btn{border-color:var(--line);color:var(--green)}
.lang-btn:hover{border-color:var(--ochre-txt);color:var(--ochre-txt)}
.lang-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}
.lang-menu{position:absolute;right:0;top:calc(100% + .55rem);background:#fff;border:1px solid var(--line);border-radius:12px;
  box-shadow:var(--shadow-lg);padding:.35rem;min-width:172px;display:none;z-index:110}
.lang-menu[data-open]{display:block}
.lang-menu a{display:flex;align-items:center;justify-content:space-between;gap:.6rem;text-decoration:none;
  padding:.6rem .78rem;border-radius:8px;font-size:.9rem;color:var(--ink)}
.lang-menu a:hover{background:var(--sand)}
.lang-menu a[aria-current]{color:var(--ochre-txt);font-weight:500}
.lang-menu .code{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

@media (max-width:1000px){
  .burger{display:block;order:3}
  .nav{position:fixed;inset:0 0 0 auto;width:min(85vw,330px);background:var(--green-d);flex-direction:column;
    align-items:stretch;justify-content:center;gap:.2rem;padding:5rem 1.6rem 2rem;transform:translateX(100%);
    transition:transform .34s cubic-bezier(.4,0,.2,1);box-shadow:-14px 0 40px rgba(0,0,0,.24);overflow-y:auto}
  .nav[data-open]{transform:none}
  .nav a{color:var(--sand)!important;font-size:1.08rem;padding:.85rem .5rem}
  .nav .btn{margin:1rem 0 0;font-size:1rem;min-height:52px}
  .nav-x{position:absolute;top:1.1rem;right:1.2rem;background:none;border:0;color:var(--sand);cursor:pointer;padding:.5rem}
  .nav-x svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
  body.locked{overflow:hidden}
}
@media (min-width:1001px){.nav-x{display:none}}

/* ---------- hero ---------- */
.hero{position:relative;min-height:min(100svh,880px);display:flex;align-items:flex-end;
  background:var(--green-d);isolation:isolate;overflow:hidden;padding-bottom:clamp(3rem,7vw,5rem);padding-top:8rem}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img,.hero-bg .ph{width:100%;height:100%;object-fit:cover}
.hero-bg .ph{background:
  radial-gradient(ellipse 80% 55% at 72% 18%,rgba(242,232,198,.24),transparent 62%),
  radial-gradient(ellipse 65% 45% at 18% 88%,rgba(217,121,37,.3),transparent 68%),
  linear-gradient(168deg,#1c3a1b 0%,#264624 42%,#3a6337 100%)}
/* Two scrims: a directional one behind the left-aligned text so the photo stays bright
   on the right, plus a vertical one to seat the header and the trust strip. */
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:
  linear-gradient(96deg,rgba(20,38,19,.94) 0%,rgba(20,38,19,.88) 42%,rgba(20,38,19,.58) 64%,rgba(20,38,19,.16) 83%,transparent 100%),
  linear-gradient(180deg,rgba(20,38,19,.62) 0%,rgba(20,38,19,.16) 28%,rgba(20,38,19,.34) 66%,rgba(20,38,19,.84) 100%)}
@media (max-width:860px){
  /* text runs full width on small screens, so the scrim has to cover it all */
  .hero::after{background:
    linear-gradient(180deg,rgba(20,38,19,.76) 0%,rgba(20,38,19,.54) 24%,rgba(20,38,19,.72) 58%,rgba(20,38,19,.9) 100%)}
}
@media (max-width:600px){
  /* narrowest screens stack the headline tallest, pushing it into the bright sky */
  .hero::after{background:
    linear-gradient(180deg,rgba(20,38,19,.8) 0%,rgba(20,38,19,.68) 20%,rgba(20,38,19,.8) 54%,rgba(20,38,19,.93) 100%)}
}
.hero-in{max-width:60ch}
.hero .eyebrow{color:var(--sand);opacity:.9}
.hero .eyebrow::after{opacity:.4}
.hero h1{color:#fff;text-wrap:balance;text-shadow:0 2px 26px rgba(0,0,0,.34)}
.hero p{color:rgba(255,255,255,.93);font-size:clamp(1.03rem,.98rem + .32vw,1.22rem);max-width:56ch;margin:1.3rem 0 2.1rem;text-shadow:0 1px 14px rgba(0,0,0,.4)}
.hero-cta{display:flex;flex-wrap:wrap;gap:.85rem}
@media (max-width:520px){.hero-cta .btn{width:100%}}

/* trust strip */
.trust{background:var(--green);color:var(--sand)}
.trust ul{list-style:none;margin:0;padding:1.5rem 0;display:grid;gap:1.2rem 1.5rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.trust li{display:flex;flex-direction:column;gap:.2rem}
.trust .k{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;opacity:.72}
.trust .v{font-family:var(--serif);font-size:1.12rem;font-weight:600}

/* ---------- tours ---------- */
.tours{background:var(--paper)}
.tour{border-top:1px solid var(--line);padding-block:clamp(2.2rem,5vw,3.4rem)}
.tour:first-of-type{border-top:0;padding-top:0}
.tour-top{display:grid;gap:1rem 2.5rem;grid-template-columns:auto 1fr auto;align-items:start;margin-bottom:1.6rem}
.tour-num{font-family:var(--serif);font-size:clamp(2.4rem,5vw,3.6rem);line-height:.9;color:var(--sand-d);font-weight:700}
.tour-name{margin-bottom:.5rem}
.tour-tags{display:flex;flex-wrap:wrap;gap:.45rem}
.tag{font:500 .74rem/1 var(--sans);padding:.45em .8em;border-radius:100px;background:var(--sand);color:var(--green);white-space:nowrap}
.tag-o{background:rgba(217,121,37,.16);color:var(--ochre-txt)}
.tour-opts{display:grid;gap:1.15rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.opt{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.3rem,3vw,1.8rem);display:flex;flex-direction:column;transition:box-shadow .22s,transform .22s}
.opt:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.opt-full{background:var(--green);color:var(--sand);border-color:var(--green)}
.opt-hd{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:.2rem}
.opt h4{font-size:1.32rem}
.opt-meta{font-size:.79rem;color:var(--muted);margin-bottom:1rem}
.opt-full .opt-meta{color:rgba(242,232,198,.72)}
.price{text-align:right;line-height:1.15;white-space:nowrap}
.price .amt{font-family:var(--serif);font-size:1.65rem;font-weight:700;color:var(--ochre-txt)}
.opt-full .price .amt{color:var(--sand)}
.price .lbl{display:block;font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.opt-full .price .lbl{color:rgba(242,232,198,.65)}
.opt p.desc{font-size:.935rem;color:var(--muted);margin-bottom:1.1rem}
.opt-full p.desc{color:rgba(242,232,198,.88)}
.hl{list-style:none;margin:0 0 1.4rem;padding:0;display:grid;gap:.72rem;font-size:.9rem}
.hl li{display:grid;grid-template-columns:auto 1fr;gap:.62rem}
.hl li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ochre);margin-top:.52em}
.opt-full .hl li::before{background:var(--sand)}
.hl b{font-weight:500;color:var(--ink)}
.opt-full .hl b{color:#fff}
.hl span{color:var(--muted)}
.opt-full .hl span{color:rgba(242,232,198,.8)}
.opt .btn{margin-top:auto}
.lunch-note{display:flex;align-items:center;gap:.5rem;font-size:.82rem;margin:-.5rem 0 1.2rem;color:var(--ochre-txt);font-weight:500}
.opt-full .lunch-note{color:var(--sand)}
.note{font-size:.85rem;color:var(--muted);border-left:2px solid var(--ochre);padding-left:1rem;margin-top:2.2rem;max-width:70ch}
@media (max-width:720px){.tour-top{grid-template-columns:auto 1fr;gap:.8rem 1.2rem}.tour-tags{grid-column:1/-1}}

/* ---------- destinations ---------- */
.dest{background:var(--sand)}
.d-grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,262px),1fr))}
.card{background:#fff;border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;
  border:1px solid transparent;transition:transform .22s,box-shadow .22s,border-color .22s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.card.on{border-color:var(--ochre);box-shadow:0 0 0 2px rgba(217,121,37,.18)}
.card-img{aspect-ratio:4/3;background:var(--green-l);position:relative;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .card-img img{transform:scale(1.045)}
.card-img .ph{position:absolute;inset:0;display:grid;place-items:center;color:rgba(242,232,198,.5);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}
.card-img .ph::before{content:"";position:absolute;inset:0;background:linear-gradient(140deg,#2f5a2c,#264624 55%,#1c3a1b)}
.card-img .ph span{position:relative}
.card-reg{position:absolute;left:.7rem;top:.7rem;background:rgba(23,44,22,.82);color:var(--sand);
  font:500 .68rem/1 var(--sans);letter-spacing:.05em;padding:.42em .7em;border-radius:100px;backdrop-filter:blur(4px)}
.card-ai{position:absolute;right:.7rem;bottom:.7rem;background:rgba(23,44,22,.86);color:var(--sand);
  font:500 .66rem/1 var(--sans);letter-spacing:.03em;padding:.42em .65em;border-radius:100px;
  display:flex;align-items:center;gap:.3rem;backdrop-filter:blur(4px)}
.card-b{padding:1.05rem 1.15rem 1.15rem;display:flex;flex-direction:column;flex:1;gap:.45rem}
.card-b h3{font-size:1.08rem}
.card-b p{font-size:.87rem;color:var(--muted);margin:0}
.card-b .season{font-size:.75rem;color:var(--ochre-txt);font-weight:500}
.add{margin-top:auto;padding-top:.85rem;background:none;border:0;cursor:pointer;display:flex;align-items:center;gap:.5rem;
  font:500 .84rem/1 var(--sans);color:var(--green);text-align:left;min-height:40px}
.add:hover{color:var(--ochre-txt)}
.add .ic{width:19px;height:19px;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;font-size:.85rem;line-height:1;flex:none}
.card.on .add{color:var(--ochre-txt)}
.card.on .add .ic{background:var(--ochre);border-color:var(--ochre);color:var(--green-d)}

/* ---------- builder ---------- */
.builder{background:var(--green);color:var(--sand)}
.builder .eyebrow{color:var(--ochre-lt)}
.builder h2{color:#fff}
.builder .lede{color:rgba(242,232,198,.82)}
.b-grid{display:grid;gap:1.4rem;grid-template-columns:1.35fr 1fr;align-items:start}
@media (max-width:900px){.b-grid{grid-template-columns:1fr}}
.b-panel{background:rgba(255,255,255,.055);border:1px solid rgba(242,232,198,.16);border-radius:var(--r);padding:clamp(1.2rem,3vw,1.7rem)}
.b-step{font:500 .72rem/1 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--ochre-lt);margin-bottom:.9rem}
.b-hint{font-size:.82rem;color:rgba(242,232,198,.62);margin:.7rem 0 0}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{background:rgba(242,232,198,.09);border:1.5px solid rgba(242,232,198,.24);color:var(--sand);
  padding:.6em 1em;border-radius:100px;cursor:pointer;font:400 .855rem/1 var(--sans);transition:all .2s;min-height:40px}
.chip:hover{border-color:var(--sand)}
.chip[aria-pressed=true]{background:var(--ochre);border-color:var(--ochre);color:var(--green-d);font-weight:600}
.b-fields{display:grid;gap:1.05rem;margin-top:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}
.f{display:flex;flex-direction:column;gap:.42rem}
.f label{font:500 .78rem/1.3 var(--sans);letter-spacing:.02em}
.f select,.f input,.f textarea{background:rgba(255,255,255,.07);border:1.5px solid rgba(242,232,198,.24);color:var(--sand);
  border-radius:9px;padding:.72rem .85rem;min-height:46px;width:100%;transition:border-color .2s,background .2s}
.f select:focus,.f input:focus,.f textarea:focus{border-color:var(--ochre);background:rgba(255,255,255,.1);outline:none}
.f select option{background:var(--green-d);color:var(--sand)}
.seg{display:flex;gap:.4rem;background:rgba(255,255,255,.07);border-radius:100px;padding:.28rem}
.seg button{flex:1;background:none;border:0;color:var(--sand);padding:.62rem .5rem;border-radius:100px;cursor:pointer;
  font:400 .85rem/1 var(--sans);min-height:40px;transition:background .2s,color .2s}
.seg button[aria-pressed=true]{background:var(--sand);color:var(--green);font-weight:500}
.b-out{position:sticky;top:88px;background:var(--sand);color:var(--ink);border-radius:var(--r);padding:clamp(1.2rem,3vw,1.7rem);box-shadow:var(--shadow-lg)}
@media (max-width:900px){.b-out{position:static}}
.b-out h3{font-size:1.05rem;margin-bottom:.9rem}
.b-sel{list-style:none;margin:0 0 1.15rem;padding:0;display:grid;gap:.42rem;max-height:236px;overflow-y:auto}
.b-sel li{display:flex;align-items:center;justify-content:space-between;gap:.6rem;font-size:.88rem;
  background:#fff;border-radius:8px;padding:.5rem .6rem .5rem .75rem}
.b-sel button{background:none;border:0;cursor:pointer;color:var(--muted);font-size:1.15rem;line-height:1;padding:.15rem .3rem;border-radius:5px}
.b-sel button:hover{color:var(--ochre-txt)}
.b-empty{font-size:.88rem;color:var(--muted);margin:0 0 1.15rem}
.b-price{border-top:1px dashed var(--line);padding-top:1.1rem;margin-top:.2rem}
.b-price .lbl{font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.b-price .amt{font-family:var(--serif);font-size:clamp(2rem,5vw,2.5rem);font-weight:700;color:var(--green);line-height:1.1;margin:.15rem 0 .4rem}
.b-price small{display:block;font-size:.78rem;color:var(--muted);line-height:1.5}
.b-flags{display:grid;gap:.5rem;margin:.9rem 0 1.15rem}
.flag{display:flex;gap:.5rem;font-size:.81rem;color:var(--ochre-txt);font-weight:500;align-items:flex-start;line-height:1.45}
.b-out .btn{margin-top:.3rem}
.b-clear{background:none;border:0;color:var(--muted);font-size:.8rem;cursor:pointer;text-decoration:underline;padding:.4rem 0;margin-top:.55rem}

/* ---------- about ---------- */
.about{background:var(--paper)}
.a-grid{display:grid;gap:clamp(1.8rem,4vw,3.4rem);grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center}
@media (max-width:860px){.a-grid{grid-template-columns:1fr}}
.a-photo{position:relative;margin:0}
.a-credit{margin:.75rem 0 0;font-size:.76rem;line-height:1.5;color:var(--muted);display:flex;gap:.4rem;align-items:baseline}
.a-credit a{color:var(--ochre-txt)}
.legal h2{font-size:clamp(1.35rem,1.2rem + .6vw,1.7rem);margin:2.6rem 0 1rem;scroll-margin-top:90px}
.a-photo img{border-radius:var(--r);box-shadow:var(--shadow-lg);width:100%;object-fit:cover;aspect-ratio:4/5}
.a-photo::after{content:"";position:absolute;inset:auto -14px -14px auto;width:58%;height:38%;
  border:2px solid var(--ochre);border-radius:var(--r);z-index:-1}
.a-body p{color:var(--muted);font-size:.985rem}
.a-body p:first-of-type{font-size:1.06rem;color:var(--ink);font-family:var(--serif);line-height:1.6}
.a-facts{list-style:none;margin:1.9rem 0 0;padding:1.5rem 0 0;border-top:1px solid var(--line);
  display:grid;gap:1.1rem 1.6rem;grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}
.a-facts .k{font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ochre-txt);display:block;margin-bottom:.2rem}
.a-facts .v{font-family:var(--serif);font-size:1rem;font-weight:600}

/* ---------- testimonials ---------- */
.revs{background:var(--green-d);color:var(--sand)}
.revs h2{color:#fff}
.revs .lede{color:rgba(242,232,198,.72)}
.r-grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.rev{background:rgba(255,255,255,.055);border:1px solid rgba(242,232,198,.14);border-radius:var(--r);
  padding:1.5rem 1.4rem;display:flex;flex-direction:column;gap:.9rem}
.rev blockquote{margin:0;font-family:var(--serif);font-size:.985rem;line-height:1.66;font-style:italic;color:#fff;
  quotes:"\201C" "\201D"}
:lang(pt) .rev blockquote,:lang(es) .rev blockquote{quotes:"\00AB\2009" "\2009\00BB"}
:lang(fr) .rev blockquote{quotes:"\00AB\202F" "\202F\00BB"}
:lang(de) .rev blockquote{quotes:"\201E" "\201C"}
.rev blockquote p{margin:0 0 .85em}
.rev blockquote p:last-child{margin-bottom:0}
/* opening mark hangs into the left margin so the first line stays flush */
.rev blockquote p:first-child::before{content:open-quote;color:var(--ochre-lt);margin-left:-.42em}
.rev blockquote p:last-child::after{content:close-quote;color:var(--ochre-lt)}
.rev figcaption{margin-top:auto;font-size:.85rem}
.rev .n{font-weight:500;display:block}
.rev .c{color:rgba(242,232,198,.6);font-size:.79rem}
.rev .t{color:var(--ochre-lt);font-size:.76rem;margin-top:.35rem;display:block}
.revs .note{color:rgba(242,232,198,.72);border-color:var(--ochre-lt)}

/* ---------- faq ---------- */
.faq{background:var(--sand)}
.faq-list{display:grid;gap:.65rem;max-width:860px}
details{background:var(--paper);border-radius:var(--r);border:1px solid var(--line);overflow:hidden}
details[open]{box-shadow:var(--shadow)}
summary{cursor:pointer;list-style:none;padding:1.15rem 3rem 1.15rem 1.3rem;position:relative;
  font:500 1rem/1.45 var(--sans);min-height:56px;display:flex;align-items:center}
summary::-webkit-details-marker{display:none}
summary::after{content:"";position:absolute;right:1.3rem;top:50%;width:9px;height:9px;
  border-right:2px solid var(--ochre);border-bottom:2px solid var(--ochre);transform:translateY(-70%) rotate(45deg);transition:transform .25s}
details[open] summary::after{transform:translateY(-25%) rotate(-135deg)}
summary:hover{color:var(--ochre-txt)}
details p{margin:0;padding:0 1.3rem 1.3rem;color:var(--muted);font-size:.94rem;max-width:70ch}

/* ---------- contact ---------- */
.contact{background:var(--paper)}
.c-grid{display:grid;gap:clamp(1.6rem,4vw,3rem);grid-template-columns:minmax(0,1fr) minmax(0,1.45fr);align-items:start}
@media (max-width:880px){.c-grid{grid-template-columns:1fr}}
.c-side .lede{margin-bottom:1.8rem}
.c-direct{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.c-direct a{display:flex;align-items:center;gap:.85rem;text-decoration:none;font-size:.95rem;font-weight:500;
  padding:.85rem 1rem;background:#fff;border:1px solid var(--line);border-radius:11px;transition:border-color .2s,transform .2s,box-shadow .2s}
.c-direct a:hover{border-color:var(--ochre);transform:translateX(3px);box-shadow:var(--shadow)}
.c-direct svg{width:20px;height:20px;flex:none;fill:var(--ochre-txt)}
.c-direct .lbl{display:block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:400}
.form{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.3rem,3.4vw,2.1rem);box-shadow:var(--shadow)}
.form-grid{display:grid;gap:1.05rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,215px),1fr))}
.form .f label{color:var(--ink)}
.form .f input,.form .f select,.form .f textarea{background:var(--paper);border-color:var(--line);color:var(--ink)}
.form .f input:focus,.form .f select:focus,.form .f textarea:focus{border-color:var(--ochre);background:#fff}
.form .f textarea{min-height:118px;resize:vertical;line-height:1.6}
.form .f select option{background:#fff;color:var(--ink)}
.full{grid-column:1/-1}
.req{color:var(--ochre)}
.f.err input,.f.err select,.f.err textarea{border-color:#c0392b;background:#fdf3f2}
.f .msg{font-size:.78rem;color:#c0392b;display:none}
.f.err .msg{display:block}
.check{display:flex;gap:.7rem;align-items:flex-start;font-size:.85rem;color:var(--muted);cursor:pointer;line-height:1.55}
.check input{width:19px;height:19px;min-height:0;flex:none;margin-top:.15rem;accent-color:var(--ochre)}
.check a{color:var(--ochre-txt)}
.cf-turnstile{margin:.2rem 0 .1rem;min-height:65px;width:100%}
.cf-turnstile iframe{max-width:100%}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.c-attached{background:var(--sand);border-radius:11px;padding:.95rem 1.1rem;font-size:.86rem;display:none}
.c-attached[data-on]{display:block}
.c-attached b{display:block;margin-bottom:.3rem;font-weight:500;font-size:.8rem}
.form-note{font-size:.79rem;color:var(--muted);margin:.9rem 0 0;text-align:center}
.alert{padding:1.05rem 1.2rem;border-radius:11px;font-size:.92rem;margin-bottom:1.2rem;display:none;line-height:1.6}
.alert[data-on]{display:block}
.alert-ok{background:#eaf5e8;border:1px solid #b5d9ae;color:#22551d}
.alert-err{background:#fdf3f2;border:1px solid #e8b5ae;color:#a03024}

/* ---------- footer ---------- */
.ftr{background:var(--green-d);color:rgba(242,232,198,.78);padding-block:clamp(2.6rem,6vw,4rem) 1.6rem;font-size:.9rem}
.f-grid{display:grid;gap:2rem;grid-template-columns:1.7fr 1fr 1fr 1fr;margin-bottom:2.4rem}
@media (max-width:820px){.f-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.f-grid{grid-template-columns:1fr}}
.ftr img{height:40px;width:auto;margin-bottom:1rem}
.ftr h4{font-family:var(--sans);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ochre-lt);font-weight:500;margin-bottom:1rem}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.ftr li a{display:inline-flex;align-items:center;min-height:40px;padding:.25rem 0}
.ftr a{text-decoration:none;transition:color .2s}
.ftr a:hover{color:var(--ochre-lt)}
.f-tag{max-width:34ch;line-height:1.65}
.f-bot{border-top:1px solid rgba(242,232,198,.14);padding-top:1.5rem;display:flex;flex-wrap:wrap;gap:.9rem 1.6rem;
  align-items:center;justify-content:space-between;font-size:.81rem;color:rgba(242,232,198,.55)}
.f-bot a{color:inherit}

/* floating whatsapp */
.wa{position:fixed;right:clamp(.9rem,3vw,1.5rem);bottom:clamp(.9rem,3vw,1.5rem);z-index:90;width:56px;height:56px;border-radius:50%;
  background:#25D366;display:grid;place-items:center;box-shadow:0 6px 22px rgba(0,0,0,.26);transition:transform .22s}
.wa:hover{transform:scale(1.08)}
.wa svg{width:30px;height:30px;fill:#fff}

/* language suggestion banner */
.lang-tip{position:fixed;left:50%;bottom:1rem;transform:translateX(-50%) translateY(160%);z-index:95;
  background:#fff;border:1px solid var(--line);border-radius:100px;box-shadow:var(--shadow-lg);
  padding:.6rem .7rem .6rem 1.2rem;display:flex;align-items:center;gap:.75rem;font-size:.87rem;
  width:max-content;max-width:calc(100vw - 2rem);transition:transform .4s cubic-bezier(.4,0,.2,1)}
.lang-tip[data-on]{transform:translateX(-50%)}
.lang-tip a{background:var(--ochre);color:var(--green-d);font-weight:600;text-decoration:none;padding:.5em 1.05em;border-radius:100px;font-weight:500;font-size:.83rem;white-space:nowrap}
.lang-tip button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:.8rem;padding:.5rem .7rem;text-decoration:underline;white-space:nowrap}
@media (max-width:560px){.lang-tip{border-radius:14px;flex-wrap:wrap;justify-content:center;text-align:center;padding:.9rem 1rem}}

/* ---------- legal page ---------- */
.legal{padding-top:clamp(7rem,14vw,10rem);padding-bottom:var(--sect);background:var(--paper)}
.legal .wrap{max-width:74ch}
.legal h1{margin-bottom:.5rem}
.legal .upd{color:var(--muted);font-size:.85rem;margin-bottom:2.4rem}
.legal p{color:var(--muted);margin-bottom:1.35rem}
.legal a{color:var(--ochre-txt)}

/* reveal on scroll */
.rv{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.3,1)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}}
