/* AC Advocacia — fontes hospedadas no próprio site */
/* latin-ext */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url(../fonts/eb-garamond-italic-400-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url(../fonts/eb-garamond-italic-400-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/eb-garamond-normal-400-800-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/eb-garamond-normal-400-800-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/ibm-plex-mono-normal-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/ibm-plex-mono-normal-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/ibm-plex-mono-normal-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/ibm-plex-mono-normal-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Instrument Sans';
  font-style: italic;
  font-weight: 400 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(../fonts/instrument-sans-italic-400-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Instrument Sans';
  font-style: italic;
  font-weight: 400 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(../fonts/instrument-sans-italic-400-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(../fonts/instrument-sans-normal-400-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(../fonts/instrument-sans-normal-400-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Webfonts.
   NOTE: the brand document specifies a customised transitional/modern serif
   (Tiempos, Canela, Caslon or Garamond). No licensed binaries were supplied,
   so the nearest Google Fonts equivalents are loaded here as a documented
   substitution. Replace with licensed files when available. */


:root{
  --font-serif:"EB Garamond",Garamond,"Times New Roman",serif;
  --font-sans:"Instrument Sans",-apple-system,"Segoe UI",sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",monospace;
}

/* Closed palette. Four brand colours, no optional colours.
   Forbidden: gold, champagne, metallics, gradients, pure white, pure black,
   saturated red, standard navy. */
:root{
  /* Petrol blue — structural brand colour.
     Conceito de Marca V3.1: azul-petróleo noturno #081F25 substitui #12343A.
     Escala reancorada no novo valor. */
  --petrol-900:#04141A;
  --petrol-800:#081F25; /* brand primary */
  --petrol-700:#123038;
  --petrol-600:#1F4C56;
  --petrol-400:#5E8188;
  --petrol-200:#B9C9CB;
  --petrol-100:#DDE5E5;

  /* Marfim — editorial paper base */
  --marfim-000:#FAF7F1;
  --marfim-100:#F3EFE7; /* brand base */
  --marfim-200:#EAE4D8;
  --marfim-300:#DED6C6;
  --marfim-400:#C9BFAB;

  /* Editorial graphite — running text */
  --graphite-900:#161616; /* brand text */
  --graphite-700:#3D3D3B;
  --graphite-500:#6B6A65;
  --graphite-300:#9C9A92;
  --graphite-200:#BDBAB1;

  /* Deep burgundy — restricted accent, editorial micro-detail only */
  --bordo-800:#431217;
  --bordo-700:#5B1A20; /* brand accent */
  --bordo-500:#7A2A31;
  /* Light step for inverse grounds only. The scale above is calibrated for
     marfim; none of it survives petrol (bordo-500 = 1.79:1, bordo-700 = 1.31:1).
     #B34D57 is the minimum lightening that clears 3:1 on #081F25 (3.34:1),
     held at 40% saturation so it stays burgundy and never reads as red. */
  --bordo-300:#B34D57;
  --bordo-100:#EFE2E1;

  /* Semantic surfaces */
  --surface-page:var(--marfim-100);
  --surface-raised:var(--marfim-000);
  --surface-sunken:var(--marfim-200);
  --surface-field:var(--marfim-000);
  --surface-inverse:var(--petrol-800);
  --surface-inverse-deep:var(--petrol-900);
  --surface-accent:var(--bordo-700);

  /* Semantic text */
  --text-body:var(--graphite-900);
  --text-muted:var(--graphite-500);
  --text-faint:var(--graphite-300);
  --text-institutional:var(--petrol-800);
  --text-accent:var(--bordo-700);
  --text-on-inverse:var(--marfim-100);
  --text-on-inverse-muted:var(--petrol-200);
  --text-link:var(--petrol-800);
  --text-link-hover:var(--bordo-700);

  /* Semantic lines */
  --line-hairline:var(--marfim-300);
  --line-strong:var(--petrol-800);
  --line-accent:var(--bordo-700);
  --line-accent-on-inverse:var(--bordo-300);
  --line-on-inverse:rgba(243,239,231,.22);

  /* Feedback. The palette is closed: no green, no amber, no saturated red.
     Attention and error both read burgundy; informational reads petrol. */
  --feedback-attention:var(--bordo-700);
  --feedback-attention-surface:var(--bordo-100);
  --feedback-info:var(--petrol-700);
  --feedback-info-surface:var(--petrol-100);
  --feedback-neutral:var(--graphite-500);
  --feedback-neutral-surface:var(--marfim-200);

  /* Focus ring must clear 3:1 (WCAG 2.2 SC 1.4.11) on BOTH grounds the system
     uses: marfim pages and petrol slabs. petrol-600 was invisible on petrol
     (1.81:1). petrol-400 gives 3.68:1 on marfim and 4.03:1 on petrol-800. */
  --focus-ring:var(--petrol-400);
  --focus-ring-on-inverse:var(--marfim-100);
  --overlay-scrim:rgba(8,31,37,.55);
}

/* Editorial type system. Serif reads and titles; sans labels and interface;
   mono for process numbers, dates and document metadata. */
:root{
  --text-display-xl:4rem;      /* 64 */
  --text-display:3rem;         /* 48 */
  --text-h1:2.25rem;           /* 36 */
  --text-h2:1.6875rem;         /* 27 */
  --text-h3:1.3125rem;         /* 21 */
  --text-h4:1.125rem;          /* 18 */
  --text-lead:1.25rem;         /* 20 */
  --text-body:1.125rem;        /* 18 */
  --text-body-sm:0.9375rem;    /* 15 */
  --text-label:0.8125rem;      /* 13 */
  --text-micro:0.6875rem;      /* 11 */

  --leading-display:1.06;
  --leading-title:1.16;
  --leading-subtitle:1.28;
  --leading-body:1.62;
  --leading-tight:1.4;

  --weight-regular:400;
  --weight-medium:500;
  --weight-semibold:600;

  --tracking-wordmark:0.2em;
  --tracking-label:0.1em;
  --tracking-micro:0.14em;
  --tracking-display:-0.012em;
  --tracking-body:0em;

  --measure-prose:64ch;
  --measure-lead:44ch;
  --measure-narrow:32ch;

  /* Composite roles */
  --role-display:var(--weight-regular) var(--text-display)/var(--leading-display) var(--font-serif);
  --role-h1:var(--weight-regular) var(--text-h1)/var(--leading-title) var(--font-serif);
  --role-h2:var(--weight-regular) var(--text-h2)/var(--leading-title) var(--font-serif);
  --role-h3:var(--weight-medium) var(--text-h3)/var(--leading-subtitle) var(--font-serif);
  --role-body:var(--weight-regular) var(--text-body)/var(--leading-body) var(--font-serif);
  --role-lead:var(--weight-regular) var(--text-lead)/var(--leading-body) var(--font-serif);
  --role-ui:var(--weight-medium) var(--text-body-sm)/var(--leading-tight) var(--font-sans);
  --role-label:var(--weight-medium) var(--text-label)/var(--leading-tight) var(--font-sans);
  --role-micro:var(--weight-medium) var(--text-micro)/var(--leading-tight) var(--font-sans);
  --role-mono:var(--weight-regular) var(--text-body-sm)/var(--leading-tight) var(--font-mono);
}

/* 4px base, with editorial jumps at the top of the scale. */
:root{
  --space-0:0px;
  --space-1:2px;
  --space-2:4px;
  --space-3:8px;
  --space-4:12px;
  --space-5:16px;
  --space-6:24px;
  --space-7:32px;
  --space-8:48px;
  --space-9:64px;
  --space-10:96px;
  --space-11:128px;
  --space-12:192px;

  --gutter-page:var(--space-7);
  --gutter-page-lg:var(--space-9);
  --section-y:var(--space-10);
  --section-y-lg:var(--space-12);
  --stack-tight:var(--space-3);
  --stack:var(--space-5);
  --stack-loose:var(--space-7);

  --container-text:720px;
  --container-content:960px;
  --container-wide:1200px;
  --container-full:1440px;

  --control-h-sm:32px;
  --control-h:40px;
  --control-h-lg:48px;
  --control-pad-x:var(--space-6);
}

/* Print logic: hairlines and right angles. Radius is near-absent by doctrine. */
:root{
  --radius-none:0px;
  --radius-subtle:2px;   /* fields, only to soften the click target */
  --radius-max:2px;      /* hard ceiling — no pills, no rounded cards */

  --hairline:1px;
  --rule-medium:2px;
  --rule-heavy:3px;

  --border-hairline:var(--hairline) solid var(--line-hairline);
  --border-strong:var(--hairline) solid var(--line-strong);
  --border-field:var(--hairline) solid var(--graphite-200);
  --border-inverse:var(--hairline) solid var(--line-on-inverse);

  /* The "strategic cut": one deliberate structural incision, never decoration.
     Used as a short accent rule that interrupts a hairline. */
  --cut-length:24px;
  --cut-weight:var(--rule-medium);
  --cut-color:var(--bordo-700);
  /* The cut on a petrol ground. <Rule> paints the incision from --cut-color,
     a single global token that cannot know its background, so any container
     with a petrol fill must re-declare --cut-color to this value:
         style="--cut-color:var(--cut-color-on-inverse)"
     Custom properties inherit, so every Rule inside picks it up. */
  --cut-color-on-inverse:var(--line-accent-on-inverse);
}

/* No shadows, no gradients, no metallic effects. Depth comes from hairlines
   and from the petrol/marfim tonal shift. The single exception is the modal
   layer, which needs physical separation from the page. */
:root{
  --shadow-none:none;
  --shadow-dialog:0 32px 64px -32px rgba(8,31,37,.42);
  --scrim-dialog:var(--overlay-scrim);
  --blur-scrim:2px; /* used only behind modals, never as decoration */
}

/* Restrained motion: opacity and small translations. No bounce, no scale-up,
   no spring. Movement should read as a page turning, not as an effect. */
:root{
  --dur-instant:90ms; /* @kind other */
  --dur-fast:140ms; /* @kind other */
  --dur-base:220ms; /* @kind other */
  --dur-slow:340ms; /* @kind other */
  --ease-editorial:cubic-bezier(.22,.61,.20,1); /* @kind other */
  --ease-exit:cubic-bezier(.4,0,.7,.3); /* @kind other */
  --motion-fade:opacity var(--dur-base) var(--ease-editorial);
  --motion-control:background-color var(--dur-fast) var(--ease-editorial),color var(--dur-fast) var(--ease-editorial),border-color var(--dur-fast) var(--ease-editorial);
  --translate-enter:4px;
}

/* Minimal element defaults so every surface inherits the editorial baseline. */
:root{color-scheme:light}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface-page);color:var(--text-body);font:var(--role-body);letter-spacing:var(--tracking-body);text-wrap:pretty;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;font-weight:var(--weight-regular);color:var(--text-institutional);letter-spacing:var(--tracking-display)}
h1{font:var(--role-h1)}h2{font:var(--role-h2)}h3{font:var(--role-h3)}
p{margin:0 0 var(--space-5)}
a{color:var(--text-link);text-decoration:none;border-bottom:1px solid var(--petrol-200);transition:var(--motion-control)}
a:hover{color:var(--text-link-hover);border-bottom-color:var(--bordo-700)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:1px solid var(--focus-ring);outline-offset:2px}
hr{height:0;margin:var(--space-7) 0;border:0;border-top:var(--border-hairline)}
small{font:var(--role-micro);letter-spacing:var(--tracking-micro);text-transform:uppercase;color:var(--text-muted)}
::selection{background:var(--petrol-100);color:var(--petrol-900)}
code,kbd{font:var(--role-mono)}
*,*::before,*::after{box-sizing:border-box}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}

[data-nav="desktop"],[data-nav="mobile"]{display:contents}
@media (max-width:1180px){[data-nav="desktop"]{display:none!important}}
@media (min-width:1181px){[data-nav="mobile"],#menu-principal{display:none!important}}
.btn-primary:hover{background:var(--petrol-900)!important;border-color:var(--petrol-900)!important}
.btn-secondary:hover{background:var(--petrol-800)!important;color:var(--marfim-100)!important}
.btn-inverse:hover{background:var(--marfim-100)!important;color:var(--petrol-800)!important;border-color:var(--marfim-100)!important}
