/* Bessa Machado website. Ink black, navy as guide, layout derived from the mark. */
*,*::before,*::after{box-sizing:border-box}
:root{
--ink:#24282D;--ink-dark:#24282D;--ink-2:#24282D;--ink-3:#24282D;
--navy:var(--bm-navy-600);--rule:#DCDFE3;--rule-2:#C3C7CD;
--gut:clamp(20px,3.2vw,56px);
}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--bm-font-ui)}
a{text-decoration:none;border-bottom:0;color:inherit}
.eb{font-family:var(--bm-font-display);text-transform:uppercase;letter-spacing:.2em;font-size:10.5px;color:var(--ink-dark)}
h1,h2,h3{font-family:var(--bm-font-display);text-transform:uppercase;font-weight:500;color:var(--ink);margin:0}

/* header: mark, section table, clock. Nothing else. */
.sheet{position:absolute;top:0;left:0;right:0;z-index:2;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:clamp(24px,4vw,72px);padding:18px var(--gut)}
.hm{display:block;flex:0 0 auto}
.mark{width:65px;height:65px;display:block}
.burger{display:none;flex-direction:column;justify-content:center;gap:6px;width:34px;height:34px;padding:0;background:transparent;border:0;cursor:pointer;z-index:21;position:relative}
.burger span{display:block;width:26px;height:2px;background:var(--ink);transition:transform 200ms var(--bm-ease),opacity 200ms var(--bm-ease)}
body.nav-open .burger span:first-child{transform:translateY(4px) rotate(45deg)}
body.nav-open .burger span:last-child{transform:translateY(-4px) rotate(-45deg)}
.sheet>nav{display:flex;align-items:center;gap:clamp(20px,3.2vw,54px);justify-content:flex-end}
.lk{font-family:var(--bm-font-display);text-transform:uppercase;letter-spacing:.19em;font-size:16.7px;color:var(--ink);padding:4px 0;border-bottom:1px solid transparent;transition:border-color var(--bm-duration) var(--bm-ease),color var(--bm-duration) var(--bm-ease)}
.lk:hover{color:var(--navy);border-bottom-color:var(--navy)}

.clock{font-family:var(--bm-font-display);text-transform:uppercase;letter-spacing:.19em;font-size:13px;color:var(--ink-2);white-space:nowrap}
.clock #clk{font-family:var(--bm-font-mono);letter-spacing:0;font-variant-numeric:tabular-nums;font-size:13px}
.lang{padding:4px 0;font-family:var(--bm-font-display);text-transform:uppercase;letter-spacing:.18em;font-size:10.5px;color:var(--ink-3);white-space:nowrap}
.lang a[aria-current]{color:var(--navy)}

/* opening block, over a video field. Type stays black, so the field is veiled flat white. */
.stage{position:relative;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:flex-end;isolation:isolate}
.vbg{position:absolute;inset:0;overflow:hidden;z-index:0;transform:translateZ(0);contain:paint}
.vbg .bgv{position:absolute;top:0;left:50%;transform:translate3d(-50%,0,0);width:115%;height:115%;object-fit:cover;object-position:top;opacity:0;backface-visibility:hidden}
.vbg::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.5);transform:translateZ(0)}
.open{position:relative;z-index:1}

/* opening block: the headline carries the screen */
.open{align-self:flex-start;padding:0;margin:0 var(--gut) clamp(52px,9vh,104px);max-width:min(1150px,74%)}
.open h1{font-size:clamp(36px,6.66vw,112px);line-height:.94;letter-spacing:.012em;margin:clamp(12px,1.8vh,20px) 0 0 -0.078em;color:var(--ink-dark);white-space:nowrap}
.open .eb{margin-left:-0.078em;color:var(--ink-dark);font-size:13px;white-space:nowrap}
.open .lede{margin:clamp(14px,2.25vh,25px) 0 0;font-size:clamp(15.3px,1.35vw,19px);line-height:1.58;color:var(--ink-2);max-width:36em}

/* strip, the mark's band used as structure */
.cv{font-size:15.5px;margin-top:7px;line-height:1.4}

/* sections */
section{min-height:100vh;display:grid;grid-template-columns:minmax(220px,0.85fr) minmax(0,920px);column-gap:clamp(32px,5vw,96px);padding:clamp(56px,9vh,110px) var(--gut)}
.sec-h{grid-column:1;align-self:end;padding:0;margin:0}
h2{font-size:clamp(26px,3.4vw,48px);letter-spacing:.02em;line-height:1.03;margin-top:clamp(11px,1.8vh,18px);white-space:nowrap}
.lead{max-width:920px;font-size:clamp(16.5px,1.35vw,19.5px);line-height:1.6;color:var(--ink-2);margin:0 0 clamp(26px,4vh,44px);text-align:justify;text-wrap:pretty;hyphens:auto}
.rows{grid-column:2;align-self:start;padding:0;max-width:920px;margin-left:auto}
.row{display:grid;grid-template-columns:28px 132px 1fr;gap:clamp(10px,1.4vw,20px);align-items:start;padding:clamp(11px,1.3vh,15px) 0;border-top:1px solid var(--rule)}
.row:first-of-type{border-top:var(--bm-rule) solid var(--navy)}
.row:last-of-type{border-bottom:1px solid var(--rule)}
.row-n{font-family:var(--bm-font-mono);font-size:11px;color:var(--ink-dark)}
.row h3{font-size:clamp(15px,1.2vw,17px);letter-spacing:.05em;line-height:1.15}
.row p{font-size:clamp(13px,0.95vw,14.5px);line-height:1.5;color:var(--ink-2);margin:0;text-align:justify;hyphens:auto}
.row--plain{grid-template-columns:28px 1fr}
.arms{grid-column:2;align-self:start;display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(32px,4.5vw,80px);padding:0}
.arm{border-top:var(--bm-rule) solid var(--navy);padding:clamp(22px,3vh,34px) 0 0}
.arm+.arm{border-top-color:var(--rule-2)}
.arm h3{font-size:clamp(20px,2.1vw,28px);letter-spacing:.03em;margin-bottom:clamp(13px,2vh,20px)}
.arm p{font-size:clamp(15.5px,1.2vw,17.5px);line-height:1.65;color:var(--ink-2);margin:0 0 13px}
.arm .note{font-size:14.5px;line-height:1.6;color:var(--ink-3);padding-top:12px;border-top:1px solid var(--rule);margin:0}

.rec{min-height:100vh;display:flex;flex-direction:column;justify-content:center;background:#FAFAFB;padding:clamp(56px,9vh,110px) 0}
.rec-in{padding:0 var(--gut)}
.figs{display:grid;grid-template-columns:repeat(3,1fr);gap:0 clamp(24px,3.4vw,64px);margin-top:clamp(30px,4.5vh,54px)}
.fig{border-top:1px solid var(--rule-2);padding-top:clamp(18px,2.6vh,28px)}
.fig-v{font-weight:600;font-size:clamp(40px,5.4vw,88px);line-height:.9;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.fig-l{font-family:var(--bm-font-display);text-transform:uppercase;font-size:10.5px;letter-spacing:.2em;color:var(--ink-dark);margin-top:clamp(13px,2vh,20px)}
.fig-s{font-size:14.5px;line-height:1.55;color:var(--ink-3);margin-top:7px}
.her{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3.4vw,64px);margin-top:clamp(34px,5vh,60px);padding-top:clamp(24px,3.4vh,38px);border-top:1px solid var(--rule-2)}
.her p{font-size:clamp(15.5px,1.2vw,17.5px);line-height:1.65;color:var(--ink-2);margin:0 0 13px}
.her .small{font-size:14px;line-height:1.6;color:var(--ink-3);margin:0}

.cta{min-height:72vh;display:grid;grid-template-columns:minmax(220px,0.85fr) minmax(0,920px);column-gap:clamp(32px,5vw,96px);align-content:center;padding:clamp(56px,9vh,110px) var(--gut)}
.cta-in{padding:0 var(--gut)}
.cta-mail{display:inline-block;margin-top:clamp(22px,3.4vh,42px);font-weight:500;font-size:clamp(21px,3vw,44px);letter-spacing:-.025em;border-bottom:2px solid var(--navy);padding-bottom:7px;transition:opacity var(--bm-duration) var(--bm-ease)}
.cta-mail:hover{opacity:.62}

footer{border-top:1px solid var(--rule)}
.ft{padding:clamp(38px,5.5vh,74px) var(--gut);display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:clamp(24px,3.4vw,56px)}
.ft-mark{width:97.5px;height:auto;display:block}
.ft-word{font-family:var(--bm-font-display);text-transform:uppercase;font-size:clamp(21px,2.2vw,30px);letter-spacing:.08em;line-height:1}
.ft h4{font-family:var(--bm-font-display);text-transform:uppercase;font-size:10.5px;letter-spacing:.2em;color:var(--ink-dark);margin:0 0 14px;font-weight:500}
.ft ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.ft li,.ft p{font-size:15px;line-height:1.6;color:var(--ink-2);margin:0}
.ft a{color:inherit;text-decoration:none;border-bottom:0}
.ft a:hover{color:var(--navy)}
.ft .li{display:inline-flex;color:#9AA0A8;transition:color var(--bm-duration) var(--bm-ease)}
.ft .li:hover{color:var(--navy)}
.ft .li svg{display:block}
.ft-base{border-top:1px solid var(--rule);padding:16px var(--gut);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-3)}

.todo{display:inline-block;font-family:var(--bm-font-mono);font-size:10px;letter-spacing:0;text-transform:none;color:var(--bm-danger);border:1px dashed var(--bm-danger);padding:1px 5px;margin-left:8px;vertical-align:middle}

/* contact form */
/* No max-width and no margin-left:auto here: column 2 is already minmax(0,920px), so the track
   caps the width. Adding margin-left:auto would override the grid's default stretch and shrink
   the form to the max-content width of its inputs, about half the track. */
.cf{grid-column:2;align-self:start;display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.6vw,20px);border-top:var(--bm-rule) solid var(--navy);padding-top:clamp(18px,2.6vh,28px)}
.fld{display:flex;flex-direction:column;gap:6px;min-width:0}
.fld--full{grid-column:1 / -1}
.cf label{font-family:var(--bm-font-display);text-transform:uppercase;letter-spacing:.19em;font-size:11px;color:var(--ink-3)}
.cf label i{font-style:normal;color:var(--navy)}
.cf input,.cf select,.cf textarea{width:100%;font-family:var(--bm-font-ui);font-size:15px;color:var(--ink-dark);background:#F4F5F6;border:0;border-bottom:1px solid var(--rule);border-radius:0;padding:8px 10px;transition:border-color var(--bm-duration) var(--bm-ease),background-color var(--bm-duration) var(--bm-ease)}
.cf textarea{resize:vertical;line-height:1.5}
.cf select{appearance:none;cursor:pointer}
.cf input:focus,.cf select:focus,.cf textarea:focus{outline:0;border-bottom-color:var(--navy);background:#EDEFF1}
.cf input:focus-visible,.cf select:focus-visible,.cf textarea:focus-visible{outline:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.cf-foot{flex-direction:row;align-items:center;gap:clamp(14px,2vw,28px);flex-wrap:wrap;margin-top:clamp(6px,1vh,12px)}
.btn{font-family:var(--bm-font-display);text-transform:uppercase;letter-spacing:.19em;font-size:12px;color:#fff;background:var(--navy);border:0;border-radius:0;padding:12px 34px;cursor:pointer;transition:opacity var(--bm-duration) var(--bm-ease)}
.btn:hover{opacity:.82}
.btn:disabled{opacity:.5;cursor:default}
.cf-msg{margin:0;font-size:13.5px;line-height:1.5;color:var(--ink-3)}
.cf-msg.is-ok{color:var(--navy)}
.cf-msg.is-err{color:var(--bm-danger)}

/* Privacy notice and any other plain document page. Same register as the site: white field,
   ink type, navy as accent. No video, one column, no full-viewport panels. */
.doc{max-width:1240px;margin:0 auto;padding:clamp(132px,14vh,150px) var(--gut) clamp(56px,8vh,96px);display:grid;grid-template-columns:minmax(220px,0.85fr) minmax(0,760px);column-gap:clamp(32px,5vw,96px)}
.doc-h{grid-column:1;align-self:start}
.doc-h h1{font-size:clamp(30px,3.6vw,52px);line-height:1.02;letter-spacing:.02em;margin-top:clamp(11px,1.8vh,18px)}
.doc-b{grid-column:2}
.doc .lead{max-width:none;margin:0 0 clamp(30px,4.5vh,52px);padding-bottom:clamp(24px,3.4vh,40px);border-bottom:var(--bm-rule) solid var(--navy)}
.doc-s{min-height:0;display:grid;grid-template-columns:28px 1fr;gap:clamp(10px,1.4vw,18px);align-content:start;align-items:start;padding:clamp(18px,2.6vh,28px) 0;border-top:1px solid var(--rule)}
.doc-s:first-of-type{border-top:0;padding-top:0}
.doc-n{font-family:var(--bm-font-mono);font-size:12.5px;color:var(--navy)}
.doc-s h2{grid-column:2;font-size:clamp(15px,1.3vw,18px);letter-spacing:.04em;line-height:1.15;margin:0 0 9px;white-space:normal}
.doc-s p{grid-column:2;margin:0;font-size:clamp(14.5px,1.1vw,16px);line-height:1.65;color:var(--ink);text-align:justify;hyphens:auto}
.doc-rev{margin:clamp(26px,4vh,42px) 0 0;padding-top:clamp(14px,2vh,20px);border-top:1px solid var(--rule);font-family:var(--bm-font-mono);font-size:12px;color:var(--ink)}
.cf-privacy{margin:0;font-size:13px;line-height:1.5;color:var(--ink)}
.cf-privacy a{color:var(--ink);border-bottom:1px solid var(--navy)}
.cf-privacy a:hover{color:var(--navy)}

/* ===========================================================================
   RESPONSIVE. Must stay last in the file, in descending width order.
   Media queries carry no extra specificity: between two single-class rules the
   later one wins. A collapse rule placed above its base rule is dead code.
   =========================================================================== */

/* 1180px is THE panel breakpoint: every two-column region collapses here, together, and every
   row reflows with them. Giving a region its own value puts the page in a state where one
   section is still side by side while the rest are stacked. */
@media(max-width:1180px){
section{grid-template-columns:1fr;row-gap:clamp(24px,4vh,40px)}
.sec-h{grid-column:1;align-self:start;order:-1}
.rows,.arms{grid-column:1}
.open{max-width:none}
.cta{grid-template-columns:1fr;row-gap:clamp(22px,3.4vh,34px)}
.cf{grid-column:1;grid-template-columns:1fr}
.doc{grid-template-columns:1fr;row-gap:clamp(24px,4vh,40px);padding-top:clamp(124px,12vh,140px)}
.doc-h,.doc-b{grid-column:1}
.doc-s{grid-template-columns:24px 1fr;gap:8px 12px}
.row{grid-template-columns:28px 1fr;gap:7px 14px}
.row p{grid-column:2;margin-top:10px}
.arms,.her{grid-template-columns:1fr;gap:0}
.arm+.arm{margin-top:clamp(22px,3vh,34px)}
.her>div+div{margin-top:22px}
.ft{grid-template-columns:1fr 1fr}
}

/* Phone. The nav becomes a full-screen panel behind the toggle. */
@media(max-width:700px){
.sheet{grid-template-columns:auto auto;align-items:center}
.burger{display:flex;grid-area:1 / 2;justify-self:end}
.sheet>nav{position:fixed;top:0;left:0;right:0;bottom:0;z-index:20;flex-direction:column;align-items:flex-start;justify-content:center;gap:clamp(18px,3.4vh,30px);background:#fff;padding:0 var(--gut);margin:0;border-top:0;transform:translateY(-100%);visibility:hidden;transition:transform 220ms var(--bm-ease),visibility 0s linear 220ms}
body.nav-open .sheet>nav{transform:translateY(0);visibility:visible;transition:transform 220ms var(--bm-ease)}
body.nav-open{overflow:hidden}
.sheet .lk{font-size:26px;letter-spacing:.1em;padding:2px 0}
.sheet .lang{margin:clamp(14px,2.6vh,24px) 0 0;font-size:13px}
.figs{grid-template-columns:1fr;gap:0}
.fig+.fig{margin-top:26px}
.ft{grid-template-columns:1fr}
}
