/* Flukobrite — folha de estilo comum */

:root{
  --bg:#f1f2f0;
  --bg-alt:#e3e5e2;
  --dark:#141614;
  --ink:#171917;
  --muted:#6a6e6a;
  --on-dark:#f1f2f0;
  --accent:#2a6b3c;
  --accent2:#8a6a20;
  --line:#c5c9c4;
  --line-dark:#3a3f3a;
  --rhythm:72px;
}

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

html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:system-ui,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  font-size:17px;
  line-height:1.8;
  overflow-x:hidden;
}

.wrap{max-width:1160px;margin:0 auto;padding:0 22px}

h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;margin:0}
h1{font-size:clamp(33px,6vw,64px);line-height:1.08;letter-spacing:-.01em}
h2{font-size:clamp(22px,2.7vw,31px);line-height:1.2}
h3{font-size:18px;line-height:1.3}

p{margin:0 0 18px}
p:last-child{margin-bottom:0}

a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}

:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

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

.lbl{
  font-size:12px;line-height:1.5;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent2);margin:0 0 12px;display:block;
}
.cap{font-size:12px;line-height:1.6;color:var(--muted);margin:10px 0 0}
.lead{font-size:19px;line-height:1.75}
.muted{color:var(--muted)}

/* ---------- tecido de células ---------- */
.cells{display:grid;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.cells>*{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px;min-width:0}

/* ---------- separador entrelaçado ---------- */
.weave{
  height:9px;border:0;margin:var(--rhythm) 0;
  background:
    linear-gradient(var(--accent),var(--accent)) top left/100% 2px no-repeat,
    linear-gradient(var(--accent2),var(--accent2)) bottom left/100% 1px no-repeat;
}
.weave--tight{margin:38px 0}

/* ---------- cabeçalho ---------- */
.site-head{border-bottom:1px solid var(--line);background:var(--bg)}
.site-head .wrap{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 28px;
  padding-top:20px;padding-bottom:20px;
}
.brand{
  font-family:Georgia,'Times New Roman',serif;font-size:22px;letter-spacing:.02em;
  color:var(--ink);text-decoration:none;
}
.brand:hover{text-decoration:underline;text-underline-offset:4px}
.site-nav{margin-left:auto}
.site-nav ul{display:flex;flex-wrap:wrap;gap:6px 24px;list-style:none;margin:0;padding:0}
.site-nav a{
  font-size:15px;color:var(--ink);text-decoration:none;
  padding-bottom:3px;border-bottom:1px solid transparent;
}
.site-nav a:hover,.site-nav a[aria-current="page"]{border-bottom-color:var(--accent);color:var(--accent)}

/* ---------- hero ---------- */
.hero{padding-top:60px}
.hero-line{height:1px;background:var(--ink);border:0;margin:0}
.hero h1{padding:26px 0;max-width:none}
.hero-title{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}
.hero-title h1{grid-column:1 / 10}
.hero-cells{grid-template-columns:minmax(0,5fr) minmax(0,4fr) minmax(0,3fr);margin-top:40px}
.hero-cells .void{background:
  repeating-linear-gradient(135deg,transparent 0 12px,rgba(138,106,32,.12) 12px 13px)}
.hero-topics{list-style:none;margin:0;padding:0;font-size:15px;line-height:1.75}
.hero-topics li{padding-left:18px;position:relative}
.hero-topics li::before{
  content:"";position:absolute;left:0;top:11px;width:7px;height:7px;background:var(--accent2);
}

/* ---------- blocos de conteúdo ---------- */
.section{margin:0}
.head-row{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:0 32px;align-items:start}
.head-row .num{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent2)}
.body-8{max-width:none}
.split-4-8{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:0 36px;align-items:start}
.split-6-6{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:0 36px;align-items:start}
.split-3-9{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:0 36px;align-items:start}
.stack>*+*{margin-top:22px}

/* ---------- imagem principal ---------- */
.fig-main{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end}
.fig-main .frame{grid-column:1 / 7;border:1px solid var(--ink);padding:10px;margin:0}
.fig-main .frame img{width:100%}
.fig-main .aside{grid-column:8 / 13;padding-bottom:6px}

/* ---------- faixa alternada ---------- */
.band{background:var(--bg-alt);padding:var(--rhythm) 0;margin:var(--rhythm) 0}

/* ---------- secção contrastante ---------- */
.dark{background:var(--dark);color:var(--on-dark);padding:var(--rhythm) 0;margin:var(--rhythm) 0}
.dark h2,.dark h3{color:var(--on-dark)}
.dark .lbl{color:#c6a352}
.dark .cap{color:#9ba09b}
.dark a{color:#8fc39f}
.dark .inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 36px;align-items:start}
.dark figure{grid-column:1 / 6;margin:0}
.dark figure img{width:100%;border:1px solid var(--line-dark)}
.dark .txt{grid-column:7 / 13}
.dark .rule{height:9px;margin:0 0 34px;background:
  linear-gradient(#8a6a20,#8a6a20) top left/100% 2px no-repeat,
  linear-gradient(#3a3f3a,#3a3f3a) bottom left/100% 1px no-repeat}

/* ---------- listas / checklists ---------- */
.check{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;margin:0;padding:0;
  border-top:1px solid var(--line);border-left:1px solid var(--line)}
.check li{border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:18px 22px 18px 42px;position:relative;font-size:16px;line-height:1.7;min-width:0}
.check li::before{content:"";position:absolute;left:22px;top:26px;width:8px;height:8px;background:var(--accent)}
.dark .check{border-color:var(--line-dark)}
.dark .check li{border-color:var(--line-dark)}
.dark .check li::before{background:#8fc39f}

.plain{list-style:none;margin:0;padding:0}
.plain li{padding-left:20px;position:relative;margin-bottom:10px}
.plain li::before{content:"";position:absolute;left:0;top:12px;width:7px;height:7px;background:var(--accent)}

dl.terms{margin:0}
dl.terms dt{font-family:Georgia,'Times New Roman',serif;font-size:18px;margin-top:24px}
dl.terms dt:first-child{margin-top:0}
dl.terms dd{margin:6px 0 0}

/* ---------- página O projeto ---------- */
.about-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr)}
.about-grid .side{padding-right:30px}
.about-grid .main-col{border-left:1px solid var(--line);padding-left:34px}
.about-grid .side ul{list-style:none;margin:0;padding:0;font-size:13px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted);line-height:1.6}
.about-grid .side li{position:relative;padding-left:18px;margin-bottom:14px}
.about-grid .side li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;background:var(--accent2)}

/* ---------- páginas legais ---------- */
.page-head{padding-top:56px}
.page-head h1{max-width:20ch}
.legal{max-width:none}
.legal h2{margin:46px 0 14px}
.legal h3{margin:28px 0 8px}
.legal .first{margin-top:26px}

/* ---------- rodapé ---------- */
.site-foot{margin-top:var(--rhythm);padding-bottom:64px}
.foot-cells{grid-template-columns:repeat(4,minmax(0,1fr))}
.foot-cells h2{font-size:18px;margin-bottom:10px}
.foot-cells p{font-size:14px;line-height:1.7;margin-bottom:10px}
.foot-cells ul{list-style:none;margin:0;padding:0;font-size:14px;line-height:1.9}
.foot-cells a{color:var(--ink)}
.foot-cells a:hover{color:var(--accent)}
.foot-note{font-size:12px;color:var(--muted);margin-top:18px}

/* ---------- tablet ---------- */
@media (max-width:900px){
  :root{--rhythm:52px}
  .hero-cells{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .hero-cells .void{display:none}
  .hero-title h1{grid-column:1 / 13}
  .fig-main .frame{grid-column:1 / 9}
  .fig-main .aside{grid-column:1 / 13;padding-top:18px}
  .dark figure{grid-column:1 / 7}
  .dark .txt{grid-column:1 / 13;margin-top:30px}
  .split-4-8,.split-6-6,.split-3-9,.head-row{grid-template-columns:minmax(0,1fr);gap:16px 0}
  .foot-cells{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ---------- telemóvel ---------- */
@media (max-width:620px){
  :root{--rhythm:44px}
  body{font-size:16px}
  .site-head .wrap{padding-top:16px;padding-bottom:16px}
  .site-nav{margin-left:0;width:100%}
  .site-nav ul{gap:4px 18px}
  .hero{padding-top:36px}
  .hero h1{padding:20px 0}
  .hero-cells{grid-template-columns:minmax(0,1fr)}
  .cells>*{padding:20px}
  .fig-main .frame{grid-column:1 / 13;padding:8px}
  .dark figure{grid-column:1 / 13}
  .check{grid-template-columns:minmax(0,1fr)}
  .about-grid{grid-template-columns:minmax(0,1fr)}
  .about-grid .side{padding-right:0;margin-bottom:26px}
  .about-grid .main-col{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:26px}
  .foot-cells{grid-template-columns:minmax(0,1fr)}
  .legal h2{margin-top:34px}
}
