:root{
  --cream:#faf6f0;
  --paper:#fffdf9;
  --ink:#2c2620;
  --muted:#6f6357;
  --line:#e7ded1;
  --terra:#c65d3b;
  --terra-d:#a8472a;
  --olive:#5a6b4a;
  --azul:#2f6f9e;
  --gold:#c98a1f;
  --radius:12px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Helvetica Neue',system-ui,-apple-system,Arial,sans-serif;color:var(--ink);background:var(--cream);line-height:1.75;font-size:17px}
h1,h2,h3,h4,.serif{font-family:'Georgia','Times New Roman',serif}
h1{font-size:2.3rem;line-height:1.18;margin:.2em 0 .5em;color:var(--ink);font-weight:700}
h2{font-size:1.55rem;margin:1.9em 0 .5em;color:var(--terra-d);font-weight:700}
h3{font-size:1.2rem;margin:1.5em 0 .4em;color:var(--olive)}
a{color:var(--azul)}
a:hover{color:var(--terra)}
p{margin:.75em 0}
img{max-width:100%;height:auto;display:block;border-radius:var(--radius)}
figure{margin:1.6em 0}
figcaption{font-size:.85em;color:var(--muted);margin-top:.45em;text-align:center;font-style:italic}
strong{color:var(--ink)}

/* Azulejo top strip */
.azulejo{height:8px;background:
  repeating-linear-gradient(45deg,#2f6f9e 0 10px,#3f80af 10px 20px,#fff 20px 22px,#2f6f9e 22px 32px)}

/* Header */
header.site{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:60;box-shadow:0 2px 14px rgba(44,38,32,.06)}
.site-inner{max-width:1120px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:.4em 1.5em;padding:.6em 1.1em}
.site-name{font-family:Georgia,serif;font-weight:700;font-size:1.32em;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:.5em;white-space:nowrap}
.site-name img{width:30px;height:30px}
.site-name .t{color:var(--terra)}
header.site nav{display:flex;flex-wrap:wrap;gap:.05em;font-size:.9em}
header.site nav a{color:var(--ink);text-decoration:none;padding:.4em .6em;border-radius:8px;white-space:nowrap}
header.site nav a:hover,header.site nav a[aria-current]{background:var(--terra);color:#fff}

main{max-width:800px;margin:0 auto;padding:0 1.1em 3.5em}
.hero-fig{margin:1.3em 0 1.5em}
.hero-fig img{width:100%;max-height:440px;object-fit:cover;box-shadow:0 8px 30px rgba(44,38,32,.14)}

.crumbs{font-size:.83em;color:var(--muted);margin:1.1em 0 .3em}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--terra)}
.crumbs span[aria-current]{color:var(--olive)}

/* TL;DR */
.tldr{background:#fff;border:1px solid var(--line);border-left:5px solid var(--terra);border-radius:var(--radius);padding:1em 1.3em;margin:1.3em 0 1.6em;box-shadow:0 4px 18px rgba(44,38,32,.05)}
.tldr-label{display:inline-flex;align-items:center;gap:.4em;font-weight:800;color:var(--terra-d);text-transform:uppercase;letter-spacing:.08em;font-size:.78em;margin-bottom:.3em}
.tldr ul{margin:.4em 0 .2em;padding-left:1.2em}
.tldr li{margin:.28em 0}

/* TOC */
.toc{background:#fbf3ea;border:1px solid var(--line);border-radius:var(--radius);padding:1em 1.4em;margin:1.4em 0}
.toc strong{display:block;font-family:Georgia,serif;color:var(--terra-d);margin-bottom:.4em;font-size:1.05em}
.toc ol{margin:.2em 0;padding-left:1.3em}
.toc li{margin:.28em 0}
.toc a{color:var(--ink);text-decoration:none}
.toc a:hover{color:var(--terra);text-decoration:underline}

/* Tables */
.table-wrap{overflow-x:auto;margin:1.5em 0}
table{border-collapse:collapse;width:100%;font-size:.95em;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 3px 14px rgba(44,38,32,.06)}
th{background:var(--olive);color:#fff;text-align:left;padding:.62em .85em;font-family:Georgia,serif}
td{padding:.58em .85em;border-top:1px solid var(--line);vertical-align:top}
tr:nth-child(even) td{background:#fbf7f1}

ul{padding-left:1.25em}
.checklist{list-style:none;padding-left:0}
.checklist li{position:relative;padding-left:1.7em;margin:.35em 0}
.checklist li::before{content:"✦";position:absolute;left:0;top:0;color:var(--terra);font-weight:700}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2em;margin:1.8em 0;padding:0;list-style:none}
.cards li{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 4px 16px rgba(44,38,32,.06);transition:transform .12s}
.cards li:hover{transform:translateY(-3px)}
.cards li img{border-radius:0;height:160px;width:100%;object-fit:cover}
.cards .cbody{padding:.9em 1.1em}
.cards a.ctitle{font-family:Georgia,serif;font-weight:700;text-decoration:none;color:var(--ink);font-size:1.08em}
.cards a.ctitle:hover{color:var(--terra)}
.cards li p{margin:.4em 0 0;font-size:.9em;color:var(--muted)}

/* Gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8em;margin:1.6em 0}
.gallery img{height:160px;width:100%;object-fit:cover;box-shadow:0 3px 12px rgba(44,38,32,.1)}

/* FAQ */
.faq h3{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.65em .95em;margin:.85em 0 .35em;color:var(--terra-d)}
.faq h3+p{margin:.2em 0 1em;padding:0 .95em}

blockquote{border-left:4px solid var(--gold);margin:1.4em 0;padding:.5em 1.1em;background:#fff;border-radius:0 var(--radius) var(--radius) 0;color:var(--muted);font-style:italic}

/* Contact form */
.cform{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.3em;margin:1.4em 0}
.cform label{display:block;font-size:.9em;font-weight:600;margin:.7em 0 .25em}
.cform input,.cform textarea{width:100%;padding:.6em;border:1px solid var(--line);border-radius:9px;font:inherit;background:var(--cream)}
.cform button{margin-top:1em;background:var(--terra);color:#fff;border:0;padding:.7em 1.6em;border-radius:30px;font-weight:700;cursor:pointer;font-size:1em}
.cform button:hover{background:var(--terra-d)}

/* Footer */
footer.site{background:#2c2620;color:#d8ccbb;margin-top:3.2em;padding:2.4em 1.1em;font-size:.9em}
footer.site .fx{max-width:1120px;margin:0 auto}
footer.site a{color:#f0e6d6}
footer.site .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.4em;margin-bottom:1.3em}
footer.site h4{font-family:Georgia,serif;color:#e8a06f;margin:0 0 .5em;font-size:1.02em}
footer.site ul{list-style:none;padding:0;margin:0}
footer.site li{margin:.32em 0}
footer.site .fnote{border-top:1px solid #4a4237;padding-top:1em;color:#a9997f;font-size:.85em}

/* Scroll to top */
#toTop{position:fixed;right:18px;bottom:18px;width:48px;height:48px;border:0;border-radius:50%;background:var(--terra);color:#fff;font-size:1.4em;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s;z-index:70;box-shadow:0 4px 16px rgba(44,38,32,.3);line-height:1}
#toTop.show{opacity:.95;pointer-events:auto}
#toTop.show:hover{opacity:1;background:var(--terra-d)}

@media (max-width:640px){
  body{font-size:16px}
  h1{font-size:1.7rem}
  h2{font-size:1.3rem}
  header.site nav{width:100%;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:.15em}
  .hero-fig img{max-height:240px}
}
