*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html, body { background:#fff; color:#111; font-family:'Barlow',sans-serif; overflow-x:hidden; scroll-behavior:smooth; }
img { max-width:none; display:block; }

/* ── NAV ── */
#nav { position:fixed; top:0; left:0; right:0; z-index:9999; display:flex; align-items:center; justify-content:space-between; padding:20px 60px; transition:background .4s,padding .4s; }
#nav.s { background:rgba(255,255,255,.97); backdrop-filter:blur(12px); padding:13px 60px; border-bottom:1px solid rgba(201,146,10,.2); }
.nav-links { display:flex; gap:36px; list-style:none; }
.nav-links a { font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:rgba(245,242,238,.7); text-decoration:none; transition:color .2s; }
.nav-links a:hover { color:#fcb913; }
#nav.s .nav-links a { color:#333; }
#nav.s .nav-links a:hover { color:#c9920a; }
.nav-cta { font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#0e0e0e; background:#fcb913; padding:12px 26px; text-decoration:none; transition:background .2s; white-space:nowrap; }
.nav-cta:hover { background:#c9920a; color:#0e0e0e; }

/* ── HERO ── */
.hero { position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.hero-bg { position:absolute; inset:0; background-image:url('/images/bg.jpeg'); background-size:cover; background-position:center; }
.hero-ov { position:absolute; inset:0; background:linear-gradient(180deg,rgba(14,14,14,.25) 0%,rgba(14,14,14,.5) 45%,rgba(14,14,14,.96) 85%,#0e0e0e 100%); }
.hero-c { position:relative; z-index:2; max-width:860px; padding:80px 32px 0; }
.eyebrow { font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:600; letter-spacing:5px; text-transform:uppercase; color:#fcb913; display:flex; align-items:center; justify-content:center; gap:14px; margin-bottom:28px; }
.eyebrow::before, .eyebrow::after { content:''; display:inline-block; width:40px; height:1px; background:#c9920a; }
.hero h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(52px,7vw,90px); font-weight:300; line-height:1.05; color:#f5f2ee; margin-bottom:28px; }
.hero h1 em { font-style:italic; color:#fcb913; }
.hero-sub { font-size:16px; font-weight:300; line-height:1.8; color:rgba(245,242,238,.65); max-width:580px; margin:0 auto 44px; }
.btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.btn { font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#0e0e0e; background:#fcb913; padding:15px 36px; text-decoration:none; transition:background .2s; white-space:nowrap; border:none; cursor:pointer; }
.btn:hover { background:#c9920a; color:#0e0e0e; }
.btn-o { font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#f5f2ee; background:transparent; border:1px solid rgba(245,242,238,.5); padding:15px 36px; text-decoration:none; transition:all .2s; white-space:nowrap; }
.btn-o:hover { border-color:#fcb913; color:#fcb913; }
.scroll-hint { position:absolute; bottom:32px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px; font-family:'Barlow Condensed',sans-serif; font-size:9px; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:rgba(245,242,238,.35); animation:bounce 2.5s ease-in-out infinite; z-index:2; }
.scroll-hint::after { content:''; width:1px; height:36px; background:linear-gradient(to bottom,#c9920a,transparent); }
@keyframes bounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(6px)} }

/* ── STRIP (4 pilares) ── */
.strip { display:grid; grid-template-columns:repeat(4,1fr); background:#fff; border-top:1px solid rgba(201,146,10,.15); border-bottom:1px solid rgba(201,146,10,.15); }
.strip-item { padding:36px 40px; border-right:1px solid rgba(201,146,10,.08); display:flex; align-items:center; gap:18px; }
.strip-item:last-child { border-right:none; }
.strip-num { font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:600; letter-spacing:3px; color:rgba(201,146,10,.6); line-height:1; flex-shrink:0; width:28px; }
.strip-text { border-left:1px solid rgba(201,146,10,.2); padding-left:18px; }
.strip-label { font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#111; display:block; margin-bottom:6px; }
.strip-desc { font-size:13px; font-weight:300; line-height:1.65; color:#666; }

/* ── COMMON ── */
.sec { padding:100px 60px; }
.inner { max-width:1140px; margin:0 auto; }
.sec-label { font-family:'Barlow Condensed',sans-serif; font-size:10px; font-weight:700; letter-spacing:4px; text-transform:uppercase; color:#c9920a; display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.sec-label::after { content:''; flex:1; height:1px; background:rgba(201,146,10,.2); max-width:60px; }
h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(36px,4.5vw,56px); font-weight:300; line-height:1.1; color:#111; margin-bottom:20px; }
h2 em { font-style:italic; color:#fcb913; }
.body-text { font-size:15px; font-weight:300; line-height:1.85; color:#555; margin-bottom:16px; }

/* ── SERVICES (4 pilares) ── */
.cards { display:grid; grid-template-columns:repeat(4,1fr); gap:32px; margin-top:64px; }
.card { background:transparent; padding:0; position:relative; border-top:2px solid rgba(201,146,10,.2); padding-top:32px; transition:border-color .3s; }
.card:hover { border-top-color:#c9920a; }
.card-num { display:none; }
.card-title { font-family:'Barlow Condensed',sans-serif; font-size:16px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:#111; margin-bottom:16px; }
.card-desc { font-size:14px; font-weight:300; line-height:1.85; color:#555; margin-bottom:24px; }
.card ul { list-style:none; }
.card ul li { font-size:13px; color:#666; padding:7px 0; border-bottom:1px solid rgba(0,0,0,.06); display:flex; align-items:center; gap:10px; }
.card ul li::before { content:'›'; color:#c9920a; font-size:14px; flex-shrink:0; }

/* ── STEPS ── */
.steps { display:grid; grid-template-columns:repeat(4,1fr); gap:32px; margin-top:64px; }
.step { background:transparent; padding:0; border-top:2px solid rgba(0,0,0,.08); padding-top:28px; }
.step-n { font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:600; letter-spacing:3px; color:rgba(201,146,10,.6); display:block; margin-bottom:20px; }
.step-title { font-family:'Barlow Condensed',sans-serif; font-size:14px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#111; margin-bottom:12px; }
.step-desc { font-size:13px; font-weight:300; line-height:1.75; color:#666; }

/* ── QUOTE ── */
.quote-sec { position:relative; padding:110px 60px; text-align:center; overflow:hidden; background-image:url('/images/bg.jpeg'); background-size:cover; background-position:center; }
.quote-ov { position:absolute; inset:0; background:rgba(10,10,10,.85); }
.quote-c { position:relative; z-index:1; max-width:720px; margin:0 auto; }
.q-line { width:1px; height:48px; background:rgba(201,146,10,.4); margin:0 auto 36px; }
.q-text { font-family:'Cormorant Garamond',serif; font-size:clamp(22px,3vw,36px); font-weight:300; font-style:italic; line-height:1.55; color:#f5f2ee; margin-bottom:32px; }
.q-author { font-family:'Barlow Condensed',sans-serif; font-size:10px; font-weight:600; letter-spacing:4px; text-transform:uppercase; color:rgba(201,146,10,.7); }

/* ── ABOUT ── */
.about-inner { max-width:760px; }
.about-inner p { font-size:16px; font-weight:300; line-height:1.9; color:#555; margin-bottom:20px; }

/* ── CONTACT ── */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.contact-info { padding-top:8px; }
.contact-info p { font-size:15px; font-weight:300; line-height:1.85; color:#555; margin-bottom:32px; }
.contact-detail { display:flex; flex-direction:column; gap:10px; }
.contact-detail a { font-size:14px; font-weight:400; color:#666; text-decoration:none; transition:color .2s; display:flex; align-items:center; gap:10px; }
.contact-detail a::before { content:''; width:20px; height:1px; background:rgba(201,146,10,.5); flex-shrink:0; }
.contact-detail a:hover { color:#fcb913; }

/* ── FORM ── */
.form { display:flex; flex-direction:column; gap:0; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1px; }
.form-field { position:relative; background:#f8f8f8; border-bottom:1px solid rgba(0,0,0,.08); transition:background .2s; }
.form-field:focus-within { background:#f3f3f3; border-bottom-color:rgba(201,146,10,.6); }
.form-field input,
.form-field textarea { width:100%; background:transparent; border:none; outline:none; font-family:'Barlow',sans-serif; font-size:14px; font-weight:300; color:#111; padding:22px 24px; resize:none; }
.form-field input::placeholder,
.form-field textarea::placeholder { color:#aaa; }
.form-field textarea { min-height:140px; }
.form-sep { height:1px; background:rgba(0,0,0,.06); }
.form-submit { margin-top:1px; background:transparent; padding:0; border:none; }
.form-submit button { width:100%; font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#0e0e0e; background:#fcb913; border:none; padding:18px 36px; cursor:pointer; transition:background .2s; }
.form-submit button:hover { background:#c9920a; }
.form-msg { font-size:13px; font-weight:300; padding:16px 24px; display:none; }
.form-msg.ok { color:#15803d; background:rgba(74,222,128,.12); display:block; }
.form-msg.err { color:#b91c1c; background:rgba(248,113,113,.12); display:block; }

/* Consentimento do formulario de contacto. Fora de .form-field de proposito:
   as regras dos campos de texto dao width:100% a qualquer input, o que
   esticaria a caixa de selecao pela largura toda. */
.form-consent { background:#f8f8f8; padding:20px 24px; }
.form-consent label { display:flex; align-items:flex-start; gap:12px; cursor:pointer; }
.form-consent input[type="checkbox"] { flex:0 0 auto; width:16px; height:16px; margin:2px 0 0; padding:0; accent-color:#c9920a; cursor:pointer; }
.form-consent span { font-family:'Barlow',sans-serif; font-size:13px; font-weight:300; line-height:1.6; color:#555; }
.form-consent:focus-within { background:#f3f3f3; }


/* ── FOOTER ── */
.ft { background:#0e0e0e; border-top:1px solid rgba(201,146,10,.15); }
.ft-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:40px; padding:60px; max-width:1200px; margin:0 auto; }
.ft-col h4 { font-family:'Barlow Condensed',sans-serif; font-size:10px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#c9920a; margin-bottom:20px; }
.ft-col a, .ft-col p { display:block; font-size:13px; font-weight:300; color:rgba(245,242,238,.6); text-decoration:none; margin-bottom:10px; line-height:1.7; }
.ft-col a:hover { color:#fcb913; }
.ft-btm { border-top:1px solid rgba(255,255,255,.05); padding:20px 60px; display:flex; justify-content:space-between; align-items:center; max-width:1200px; margin:0 auto; }

/* Utilitario: visivel so para leitores de ecra. */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Newsletter no rodape. Envia para a plataforma da codenumber. */
.ft-news { border-top:1px solid rgba(255,255,255,.05); }
.ft-news-in { display:grid; grid-template-columns:1fr 1.2fr; gap:40px; align-items:start; padding:44px 60px; max-width:1200px; margin:0 auto; }
.ft-news-t h4 { font-family:'Barlow Condensed',sans-serif; font-size:10px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#c9920a; margin-bottom:10px; }
.ft-news-t p { font-size:13px; font-weight:300; color:rgba(245,242,238,.55); line-height:1.7; }
.ft-news-row { display:flex; gap:12px; align-items:stretch; }
.ft-news-row input[type="email"] { flex:1 1 auto; min-width:0; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:0; outline:none; font-family:'Barlow',sans-serif; font-size:14px; font-weight:300; color:#f5f2ee; padding:13px 16px; transition:border-color .2s, background .2s; }
.ft-news-row input[type="email"]::placeholder { color:rgba(245,242,238,.35); }
.ft-news-row input[type="email"]:focus { background:rgba(255,255,255,.06); border-color:rgba(201,146,10,.6); }
.ft-news-row button { flex:0 0 auto; font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#0e0e0e; background:#fcb913; border:none; padding:13px 26px; cursor:pointer; transition:background .2s; }
.ft-news-row button:hover { background:#c9920a; }
.ft-news-row button:disabled { opacity:.6; cursor:default; }
.ft-news-c { display:flex; align-items:flex-start; gap:10px; margin-top:14px; cursor:pointer; }
.ft-news-c input[type="checkbox"] { flex:0 0 auto; width:15px; height:15px; margin:2px 0 0; accent-color:#c9920a; cursor:pointer; }
.ft-news-c span { font-size:12px; font-weight:300; line-height:1.6; color:rgba(245,242,238,.5); }
.ft-news-m { font-size:12px; font-weight:300; margin-top:12px; display:none; }
.ft-news-m.ok { color:#7ee2a8; display:block; }
.ft-news-m.err { color:#f38b8b; display:block; }

/* ── BLOG ── */
.page-head { background:#0e0e0e; padding:170px 60px 80px; text-align:center; }
.page-head h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(40px,5vw,64px); font-weight:300; line-height:1.1; color:#f5f2ee; }
.page-head h1 em { font-style:italic; color:#fcb913; }
.page-head .eyebrow { margin-bottom:22px; }
.post-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:0; }
.post-card { display:block; text-decoration:none; border-top:2px solid rgba(201,146,10,.2); padding-top:28px; transition:border-color .3s; }
.post-card:hover { border-top-color:#c9920a; }
.post-card img { width:100%; height:200px; object-fit:cover; margin-bottom:20px; }
.post-date { font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:rgba(201,146,10,.7); display:block; margin-bottom:12px; }
.post-title { font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:400; line-height:1.25; color:#111; margin-bottom:12px; }
.post-card:hover .post-title { color:#c9920a; }
.post-excerpt { font-size:14px; font-weight:300; line-height:1.75; color:#666; }
.article { max-width:760px; margin:0 auto; }
.article-body { font-size:16px; font-weight:300; line-height:1.9; color:#444; }
.article-body h2 { font-size:clamp(28px,3.5vw,38px); margin:48px 0 18px; }
.article-body h3 { font-family:'Barlow Condensed',sans-serif; font-size:17px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#111; margin:36px 0 14px; }
.article-body p { margin-bottom:18px; }
.article-body ul, .article-body ol { margin:0 0 18px 22px; }
.article-body li { margin-bottom:8px; }
.article-body a { color:#c9920a; }
.article-body img { max-width:100%; height:auto; margin:28px 0; }
.article-cover { width:100%; height:auto; max-height:440px; object-fit:cover; margin-bottom:44px; }

/* ── REVEAL ── */
.r { opacity:0; transform:translateY(18px); transition:opacity .75s ease,transform .75s ease; }
.r.v { opacity:1; transform:translateY(0); }

@media(max-width:1100px){
  .strip { grid-template-columns:1fr 1fr; }
  .strip-item:nth-child(2) { border-right:none; }
  .strip-item:nth-child(-n+2) { border-bottom:1px solid rgba(201,146,10,.12); }
  .cards { grid-template-columns:1fr 1fr; }
}
@media(max-width:960px){
  #nav { padding:16px 24px; }
  #nav.s { padding:12px 24px; }
  .nav-links { display:none; }
  .sec { padding:70px 24px; }
  .steps { grid-template-columns:1fr 1fr; }
  .contact-grid { grid-template-columns:1fr; gap:48px; }
  .form-row { grid-template-columns:1fr; }
  .ft-grid { grid-template-columns:1fr; padding:40px 24px; }
  .ft-news-in { grid-template-columns:1fr; gap:24px; padding:36px 24px; }
  .ft-news-row { flex-direction:column; }
  .ft-btm { padding:18px 24px; flex-direction:column; gap:8px; text-align:center; }
  .quote-sec { padding:80px 24px; }
  .page-head { padding:140px 24px 60px; }
  .post-grid { grid-template-columns:1fr; }
}
@media(max-width:700px){
  .strip { grid-template-columns:1fr; }
  .strip-item { border-right:none; border-bottom:1px solid rgba(201,146,10,.12); padding:32px 28px; }
  .strip-item:last-child { border-bottom:none; }
  .cards { grid-template-columns:1fr; }
}
