/*
Theme Name: Hello Elementor Child — Accident Lawyer of California
Template: hello-elementor
Version: 0.5.0
Description: Owns every line of CSS for alca4u.com. Session 2D register: light, spacious, chrome invisible; type and content objects carry the page. 2K: banner, progress, video popup, one attorney section, map + form, two weights.
Text Domain: alca
*/

/* ===== 1. Fonts — two files: Instrument Serif (display) + Instrument Sans (everything else) ===== */
@font-face{font-family:"Instrument Serif";src:url("assets/fonts/instrument-serif.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("assets/fonts/instrument-var.woff2") format("woff2");font-weight:400 600;font-style:normal;font-display:swap}
/* fallbacks sized so lines wrap the same before and after the swap (measured: Georgia is 30% wider than Instrument Serif; Helvetica/Arial 1.3% narrower than Instrument Sans) */
@font-face{font-family:"Serif Fallback";src:local("Georgia");size-adjust:76.5%;ascent-override:129%;descent-override:40.5%;line-gap-override:0%}
@font-face{font-family:"Sans Fallback";src:local("Helvetica Neue"),local("Arial");size-adjust:101.3%;ascent-override:97%;descent-override:25%;line-gap-override:0%}

/* ===== 2. Tokens ===== */
:root{
  --bg:#FBFAF7; --bg-2:#F3F0EA; --white:#FFFFFF;
  --ink:#16130F; --text:#2B2823; --muted:#6B665E;
  --dark:#121110; --dark-2:#1B1917; --t-dark:#ECE7DF; --m-dark:#A8A199;
  --bronze:#8A5A2B; --bronze-text:#7A4F24; --amber:#D9A441;
  /* from the logo file, sampled: wordmark #343435, CALIFORNIA #F59527, state shape #E1DEEF. Lavender is the signature; used as accent, never as a surface except one tint */
  --lav:#E1DEEF; --lav-2:#F2F0F6; --lav-ink:#6F6590;
  --hair:rgba(22,19,15,.08); --hair-2:rgba(22,19,15,.14); --hair-d:rgba(236,231,223,.10); --hair-d2:rgba(236,231,223,.2);
  --btn-a:#F3E6CB; --btn-b:#DCBA7A; --btn-line:rgba(122,79,36,.32);
  --serif:"Instrument Serif","Serif Fallback",Georgia,serif;
  --sans:"Instrument Sans","Sans Fallback","Helvetica Neue",Arial,sans-serif;
  --t-hero:clamp(2.625rem,1.05rem + 6.6vw,6rem);      /* 42 → 96 */
  --t-display:clamp(2.25rem,1.1rem + 4.8vw,4.5rem);   /* 36 → 72 */
  --t-h2:clamp(2rem,1.15rem + 3.6vw,3.5rem);          /* 32 → 56 */
  --t-h3:clamp(1.5rem,1.25rem + 1vw,1.875rem);        /* 24 → 30 */
  --t-h4:clamp(1.125rem,1.05rem + .3vw,1.25rem);      /* 18 → 20 */
  --t-lede:clamp(1.125rem,1rem + .5vw,1.375rem);      /* 18 → 22 */
  --t-body:clamp(1.0625rem,1rem + .25vw,1.1875rem);   /* 17 → 19 */
  --t-small:.9375rem; --t-label:.875rem; --t-ui:1rem;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;--s10:128px;--s11:160px;
  --gutter:clamp(20px,5vw,72px); --content:1200px; --prose:60ch; --pill:12px; --radius:8px; --radius-s:6px; /* corporate pass: tight corners; buttons keep their approved 12 px */
  --callbar:80px;--callbar-d:84px;
  --shadow-soft:0 30px 80px -24px rgba(22,19,15,.16),0 8px 24px -12px rgba(22,19,15,.08);
  --shadow-lift:0 40px 90px -28px rgba(22,19,15,.22),0 12px 28px -14px rgba(22,19,15,.10);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* ===== 3. Base ===== */
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:var(--t-body);line-height:1.62;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"kern","liga";font-variant-numeric:tabular-nums lining-nums}
blockquote,.alca-lede,h1,h2{hanging-punctuation:first}
body.alca-has-callbar{padding-bottom:calc(var(--callbar) + env(safe-area-inset-bottom,0px))}
@media (min-width:768px){body.alca-has-callbar{padding-bottom:var(--callbar-d)}}
h1,h2,h3,h4{margin:0;color:var(--ink);text-wrap:balance;overflow-wrap:anywhere}
h1,.elementor-kit-4 h1{font-family:var(--serif);font-weight:400;font-size:var(--t-hero);line-height:.96;letter-spacing:-.035em}
h2,.elementor-kit-4 h2{font-family:var(--serif);font-weight:400;font-size:var(--t-h2);line-height:1;letter-spacing:-.03em}
h3,.elementor-kit-4 h3{font-family:var(--serif);font-weight:400;font-size:var(--t-h3);line-height:1.1;letter-spacing:-.02em}
h4,.elementor-kit-4 h4{font-family:var(--sans);font-weight:500;font-size:var(--t-h4);line-height:1.3;letter-spacing:-.01em}
p{margin:0 0 var(--s4);max-width:var(--prose)}
p:last-child{margin-bottom:0}
a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:var(--hair-2);transition:text-decoration-color .15s var(--ease),text-underline-offset .15s var(--ease),color .15s var(--ease)}
a:hover{text-decoration-color:var(--ink);text-underline-offset:.3em}
img{max-width:100%;height:auto;display:block}
.alca-num{font-variant-numeric:tabular-nums lining-nums}
.alca-label{font-family:var(--sans);font-size:.75rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);line-height:1.4}
.alca-eyebrow .elementor-heading-title,.alca-eyebrow{font-family:var(--sans);font-size:.75rem;font-weight:500;color:var(--muted);line-height:1.4;letter-spacing:.12em;text-transform:uppercase}
.alca-lede{font-family:var(--serif);font-size:clamp(1.3125rem,1.1rem + .9vw,1.75rem);line-height:1.35;color:var(--text);font-weight:400;letter-spacing:-.01em}
.alca-muted{color:var(--muted)}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--lav-ink);outline-offset:4px;border-radius:6px}
.alca-dark :where(a,button):focus-visible,.alca-callbar :where(a):focus-visible{outline-color:var(--amber)}
.alca-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.alca-skip{position:absolute;left:var(--s4);top:-100px;z-index:1000;background:var(--ink);color:#fff;padding:var(--s3) var(--s5);border-radius:var(--pill);font-weight:500;text-decoration:none}
.alca-skip:focus{top:var(--s4)}
/* top banner: black, in flow, scrolls away; the whole strip dials. White on #16130F = 18.5:1 */
.alca-banner{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px var(--gutter);background:var(--ink);color:#fff;font-family:var(--sans);font-size:var(--t-small);font-weight:500;letter-spacing:-.005em;text-align:center;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:rgba(255,255,255,.55);transition:background-color .15s var(--ease),text-decoration-color .15s var(--ease)}
.alca-banner:hover{background:#2B2823;color:#fff;text-decoration-color:#fff}
.alca-banner:active{background:var(--ink)}
.alca-banner:focus-visible{outline:2px solid var(--amber);outline-offset:-4px;border-radius:0}
/* reading progress: 3px, amber, pinned above the header; fills once the header is stuck; hidden under reduced motion */
.alca-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:70;pointer-events:none;opacity:0;transition:opacity .2s var(--ease)}
.alca-progress.is-on{opacity:1}
.alca-progress span{display:block;height:100%;width:100%;background:var(--lav-ink);transform-origin:0 50%;transform:scaleX(0);will-change:transform}

/* ===== 4. Surfaces & Elementor containers — space defines containers, not edges ===== */
.e-con.alca-section{--padding-left:var(--gutter);--padding-right:var(--gutter);--padding-top:var(--s10);--padding-bottom:var(--s10);--container-max-width:var(--content);--gap:0;position:relative}
@media (min-width:1025px){.e-con.alca-section{--padding-top:var(--s11);--padding-bottom:var(--s11)}}
.e-con.alca-section > .e-con-inner{--gap:0}
.elementor-widget:not(:last-child){margin-block-end:0}
.e-con > .e-con-inner > .elementor-widget,.e-con > .elementor-widget{max-width:100%}
.elementor-widget-heading .elementor-heading-title{margin:0;color:inherit;font:inherit;line-height:inherit;letter-spacing:inherit}
.elementor-widget-heading h1.elementor-heading-title{font-family:var(--serif);font-weight:400;font-size:var(--t-hero);line-height:.96;letter-spacing:-.035em;color:var(--ink)}
.elementor-widget-heading h2.elementor-heading-title{font-family:var(--serif);font-weight:400;font-size:var(--t-h2);line-height:1;letter-spacing:-.03em;color:var(--ink)}
.elementor-widget-heading h3.elementor-heading-title{font-family:var(--serif);font-weight:400;font-size:var(--t-h3);line-height:1.1;color:var(--ink)}
.elementor-widget-text-editor{font:inherit;color:inherit}
.alca-bg-2{background:var(--bg-2)}
.alca-lav{background:var(--lav-2)}
.alca-white{background:var(--white)} /* text #2B2823 on #F2F0F6 = 13.0:1, muted 5.0:1 */
.alca-dark{background:var(--dark);color:var(--t-dark)}
.alca-dark :is(h1,h2,h3,h4){color:#fff}
.alca-dark p{color:var(--t-dark)}
.alca-dark .alca-muted,.alca-dark .alca-label,.alca-dark .alca-eyebrow,.alca-dark .alca-eyebrow .elementor-heading-title{color:var(--m-dark)}
.alca-dark a{color:#fff;text-decoration-color:var(--hair-d2)}
.alca-dark a:hover{text-decoration-color:#fff}
.alca-grain{position:relative;isolation:isolate}
.alca-grain::after{content:"";position:absolute;inset:0;background-image:var(--grain);background-size:180px;opacity:.05;mix-blend-mode:screen;pointer-events:none;z-index:0}
.alca-grain > *{position:relative;z-index:1}
.elementor-kit-4 button.alca-menu-btn,.elementor-kit-4 button.alca-panel__close,.elementor-kit-4 .alca-nav__list button,.elementor-kit-4 .alca-router__opts button,.elementor-kit-4 button.alca-router__back,.elementor-kit-4 .alca-router__path button,.elementor-kit-4 .alca-reviews__nav button,.elementor-kit-4 .alca-reviews__dots button{background:none;border:0;border-radius:0;color:inherit;padding:0;font:inherit;text-transform:none;letter-spacing:0;box-shadow:none}

/* ===== 5. Buttons — the pill: soft amber gradient, hairline, inner light, ink text, arrow inside ===== */
.alca-btn,.alca-btn-w .elementor-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--s3);min-height:56px;padding:0 var(--s7) 0 var(--s6);border-radius:12px;border:1px solid var(--ink);font-family:var(--sans);font-size:var(--t-ui);font-weight:500;letter-spacing:-.005em;line-height:1;color:#fff;text-decoration:none;cursor:pointer;white-space:nowrap;background:var(--ink);box-shadow:0 10px 30px -14px rgba(22,19,15,.5);transition:background-color .2s var(--ease),transform .18s var(--ease),box-shadow .25s var(--ease),border-color .2s var(--ease)}
.alca-btn::after,.alca-btn-w .elementor-button .elementor-button-text::after{content:"→";font-family:var(--sans);font-weight:400;font-size:.92em;color:#fff;opacity:.85;transition:transform .2s var(--ease)}
@media (hover:hover){
.alca-btn:hover,.alca-btn-w .elementor-button:hover{background:#2B2823;border-color:#2B2823;transform:translateY(-1px);box-shadow:0 16px 34px -14px rgba(22,19,15,.55);color:#fff}
.alca-btn:hover::after,.alca-btn-w .elementor-button:hover .elementor-button-text::after{transform:translateX(3px)}
}
.alca-btn:active,.alca-btn-w .elementor-button:active{transform:translateY(0);background:var(--ink);box-shadow:inset 0 2px 6px rgba(0,0,0,.35)}
.alca-dark .alca-btn:not(.alca-btn--secondary){background:#fff;color:var(--ink);border-color:#fff}
.alca-dark .alca-btn:not(.alca-btn--secondary)::after{color:var(--ink)}
.alca-dark .alca-btn:not(.alca-btn--secondary):hover{background:var(--bg);border-color:var(--bg);color:var(--ink)}
.alca-dark .alca-btn:not(.alca-btn--secondary):active{background:var(--bg-2);border-color:var(--bg-2);color:var(--ink);box-shadow:inset 0 2px 6px rgba(22,19,15,.18);transform:translateY(0)}
.alca-dark .alca-btn:not(.alca-btn--secondary):active::after{color:var(--ink)}
.alca-btn--secondary,.alca-btn-w--secondary .elementor-button{background:var(--bg);color:var(--ink);border-color:var(--hair-2);box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 1px 0 rgba(22,19,15,.04);border-radius:12px}
@media (hover:hover){.alca-btn--secondary:hover,.alca-btn-w--secondary .elementor-button:hover{border-color:var(--ink);background:var(--white);color:var(--ink);box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 10px 30px -18px rgba(22,19,15,.25)}}
.alca-btn--secondary:active,.alca-btn-w--secondary .elementor-button:active{background:var(--bg-2);border-color:var(--ink);color:var(--ink);box-shadow:inset 0 2px 6px rgba(22,19,15,.08)}
.alca-dark .alca-btn--secondary{color:#fff;border-color:var(--hair-d2);background:var(--dark);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
@media (hover:hover){.alca-dark .alca-btn--secondary:hover{background:var(--dark-2);border-color:#fff;color:#fff}}
.alca-dark .alca-btn--secondary:active{background:var(--dark-2);border-color:#fff;color:#fff}
.alca-btn--secondary::after,.alca-btn-w--secondary .elementor-button .elementor-button-text::after{color:var(--ink)}
.alca-dark .alca-btn--secondary::after{color:var(--m-dark)}
.alca-link{display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;font-family:var(--sans);font-weight:500;color:var(--ink);text-decoration:none}
.alca-link::after{content:"→";font-weight:400;color:currentColor;opacity:.7;transition:transform .2s var(--ease)}
.alca-link:hover::after{transform:translateX(3px)}
.alca-link:hover{text-decoration:underline;text-underline-offset:.25em;text-decoration-color:var(--hair-2)}
.alca-btn-w .elementor-button-content-wrapper{display:contents}
.alca-btn-w .elementor-button-text{font:inherit;display:inline-flex;align-items:center;gap:var(--s3)}
.alca-btn-w .elementor-button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.alca-actions{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s4);align-items:center}
/* the hero call to action, one component on every hero (the homepage widget and alca_hero_actions()): two buttons in a row, 24 px apart, each its own width; on phones stacked full width 12 px apart */
.alca-hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s4) var(--s5)}
.alca-hero-cta .alca-btn{min-width:0}
@media (max-width:767px){.alca-hero-cta{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s3);width:100%}.alca-hero-cta .alca-btn{width:100%}}
.alca-actions .alca-btn-w{width:auto}
@media (max-width:767px){.alca-actions .alca-btn-w--primary,.alca-actions .alca-btn-w--primary .elementor-button,.alca-hero .alca-actions > .elementor-widget-html,.alca-hero .alca-actions .alca-btn,.alca-close__aside .alca-btn,.alca-card .alca-btn,.alca-ty .alca-btn{width:100%}.alca-close__aside .alca-actions,.alca-ty .alca-actions{display:grid;width:100%}}

/* ===== 6. Header — chrome that disappears ===== */
.elementor-location-header{position:sticky;top:0;z-index:50;background:var(--bg)}
.e-con.alca-header{position:relative;z-index:50;background:var(--bg);--padding-top:0;--padding-bottom:0;--padding-left:var(--gutter);--padding-right:var(--gutter);border-bottom:1px solid var(--hair);transition:box-shadow .2s var(--ease)}
.e-con.alca-header.is-stuck{box-shadow:0 10px 30px -22px rgba(22,19,15,.25)}
.e-con.alca-header > .e-con-inner{min-height:76px;--gap:var(--s5);align-items:center;flex-wrap:nowrap}
@media (min-width:1025px){.e-con.alca-header > .e-con-inner{min-height:104px}}
/* logo slot: fixed box, nothing shifts when the supplied file lands */
.alca-logo{display:flex;align-items:center;height:60px;width:auto;min-width:64px;margin:0}
.alca-logo a{display:block;height:100%;text-decoration:none;padding:4px 0}
.alca-logo img{height:100%;width:auto;display:block}
@media (min-width:1025px){.alca-logo{height:84px}}
.alca-header-nav{margin-left:auto;display:flex;align-items:center;gap:var(--s4)}
.alca-nav{display:none}
.alca-nav__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:nowrap;gap:var(--s2);align-items:center}
.alca-nav__item{position:relative}
.alca-nav__list a,.elementor-kit-4 .alca-nav__list button{position:relative;white-space:nowrap;font-family:var(--sans);font-size:var(--t-ui);font-weight:500;letter-spacing:-.005em;color:var(--text);text-decoration:none;background:none;border:0;padding:10px 14px;border-radius:var(--pill);cursor:pointer;transition:background-color .15s var(--ease),color .15s var(--ease)}
.alca-nav__list a:hover,.elementor-kit-4 .alca-nav__list button:hover,.elementor-kit-4 .alca-nav__list button[aria-expanded="true"],.alca-nav__list a[aria-current="page"]{background:var(--bg-2);color:var(--ink)}
.alca-nav__sub{list-style:none;margin:0;padding:var(--s4);position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);width:760px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-lift);animation:alca-pop .18s var(--ease)}
@keyframes alca-pop{from{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%,0)}}
.alca-nav__sub[hidden]{display:none}
.alca-nav__sub--plain{width:520px;grid-template-columns:repeat(3,1fr)}
.alca-nav__sub a{display:grid;gap:3px;padding:var(--s3) var(--s4);border-radius:12px;font-weight:500}
.alca-nav__sub a:hover,.alca-nav__sub a:focus-visible{background:var(--bg-2)}
.alca-nav__sub-title{font-size:var(--t-ui);color:var(--ink)}
.alca-nav__sub-desc{font-size:.8125rem;font-weight:400;color:var(--muted);line-height:1.35}
.alca-nav__sub-all{grid-column:1/-1;border-top:1px solid var(--hair);margin-top:var(--s2);padding-top:var(--s2)}
.alca-nav__sub-all a{color:var(--bronze-text)}
.alca-header-phone{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;color:var(--ink);border-radius:var(--pill)}
.alca-header-phone svg{width:28px;height:28px}
.alca-header-phone span{display:none}
.alca-header-call{display:none;min-height:44px;padding:0 var(--s5) 0 var(--s5)}
.alca-header-text{display:none}
.elementor-kit-4 button.alca-menu-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-width:48px;min-height:48px;padding:0 var(--s3);color:var(--ink);font-size:1.0625rem;font-weight:500;border-radius:var(--pill)}
.alca-menu-btn svg{width:28px;height:28px}
@media (min-width:768px){.alca-header-phone span{display:inline;margin-left:var(--s2);font-weight:500;font-size:var(--t-ui)}}
/* six items fit from 1280 only with the tighter spacing; from 1360 the regular spacing */
/* the desktop header: logo 89 + nav 718 + Text 107 + Call 219 + three 16 px gaps = 1,181 px, plus two 64 px gutters = 1,309; it switches on at 1320 with the tighter nav spacing (662) to 1399, which leaves 72 px for a scrollbar and font metrics, and the normal spacing from 1400. Nothing in the nav may wrap. */
@media (min-width:1320px) and (max-width:1399px){.alca-nav__list{gap:4px}.alca-nav__list a,.elementor-kit-4 .alca-nav__list button{padding:10px 11px}.alca-header-text{padding:0 var(--s4) 0 var(--s3)}}
@media (min-width:1320px){.alca-nav{display:block}.elementor-kit-4 button.alca-menu-btn{display:none}.alca-header-phone{display:none}.alca-header-call{display:inline-flex}.alca-header-text{display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;padding:0 var(--s5) 0 var(--s4);border-radius:12px;border:1px solid var(--hair-2);background:var(--bg);box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 1px 0 rgba(22,19,15,.04);font-weight:500;color:var(--ink);text-decoration:none;transition:border-color .15s var(--ease),background-color .15s var(--ease)}.alca-header-text{transition:border-color .15s var(--ease),background-color .15s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}.alca-header-text svg{width:18px;height:18px;transition:transform .2s var(--ease)}.alca-header-text:hover{background:var(--white);border-color:var(--ink);color:var(--ink);transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 16px 34px -14px rgba(22,19,15,.3)}.alca-header-text:hover svg{transform:translateX(2px) translateY(-1px)}.alca-header-text:active{transform:translateY(0);background:var(--bg-2);box-shadow:inset 0 2px 6px rgba(22,19,15,.08)}.alca-header-text:focus-visible{outline:2px solid var(--ink);outline-offset:2px}}
/* panel */
.alca-panel{position:fixed;inset:0;z-index:100;background:rgba(22,19,15,.28);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.alca-panel[hidden]{display:none}
.alca-panel__inner{position:absolute;top:0;right:0;bottom:0;width:min(88vw,400px);background:var(--bg);display:flex;flex-direction:column;padding:var(--s3) var(--gutter) calc(var(--s6) + env(safe-area-inset-bottom,0px));overflow:auto;transform:translateX(0);transition:transform .24s var(--ease);box-shadow:var(--shadow-lift)}
.alca-panel.is-opening .alca-panel__inner{transform:translateX(100%)}
.alca-panel__top{display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:var(--s2) 0 var(--s3)}
.alca-panel__top .alca-logo{height:64px;min-width:80px}
.alca-panel__top .alca-logo a{padding:2px 0}
.elementor-kit-4 button.alca-panel__close{min-width:44px;min-height:44px;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;margin-right:calc(var(--s3) * -1);border-radius:var(--pill)}
.alca-panel__close svg{width:22px;height:22px}
.alca-panel nav{margin-top:var(--s5)}
.alca-panel__group{list-style:none;margin:0;padding:0}
.alca-panel__group + .alca-panel__group{margin-top:var(--s6)}
.alca-panel__label{font-family:var(--sans);font-size:var(--t-label);font-weight:500;color:var(--muted);margin:0 0 var(--s2)}
.alca-panel__group a{display:flex;align-items:center;min-height:52px;font-family:var(--serif);font-size:1.75rem;letter-spacing:-.02em;color:var(--ink);text-decoration:none}
.alca-panel__group--sub a{font-family:var(--sans);font-size:var(--t-ui);font-weight:500;min-height:44px;color:var(--text)}
.alca-panel__cta{margin-top:auto;padding-top:var(--s6);display:grid;gap:var(--s3)}
body.alca-menu-open{overflow:hidden}

/* ===== 7. Hero — type, space, one action. No image: the H1 is the first thing painted and the LCP ===== */
.e-con.alca-hero{--padding-top:var(--s10);--padding-bottom:var(--s9)}
.alca-hero .alca-eyebrow{margin-bottom:var(--s6);color:var(--text)}
.alca-hero .alca-eyebrow .elementor-heading-title{font-size:.8125rem;letter-spacing:.14em;color:var(--text)}
.alca-hero h1{max-width:14ch}
.alca-hero .alca-lede{max-width:44ch;margin-top:var(--s6)}
.alca-hero .alca-actions{margin-top:var(--s7)}
.alca-hero .alca-link{min-height:44px}
.alca-hero .alca-lede strong{font-weight:400;color:var(--ink);font-style:italic}
.alca-hero__proof{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);margin-top:var(--s4);font-size:var(--t-small);color:var(--muted);max-width:none}
.alca-hero__proof b{font-weight:500;color:var(--ink)}
.alca-hero__proof i{font-style:normal;color:var(--hair-2)}
.alca-hero__rate{display:inline-flex;align-items:center;gap:var(--s2) var(--s3);flex-wrap:wrap}
.alca-hero__stars{display:inline-flex;gap:2px;color:var(--amber)}
.alca-hero__stars svg{width:15px;height:15px}
.alca-only-desk{display:none}
@media (min-width:768px){.alca-only-desk{display:inline-flex}.alca-only-phone{display:none}}
img.alca-circle{border-radius:50%!important;display:block;box-shadow:0 0 0 1px var(--hair-2),0 20px 50px -20px rgba(22,19,15,.28);background:var(--bg-2)}
.alca-circle-wrap{display:block}
/* the framed portrait: the full 4:5 frame, tight corners, hairline, inner light — the button object language at portrait size */
.alca-frame{display:block;max-width:100%;border-radius:var(--radius);overflow:hidden;border:1px solid var(--hair-2);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 24px 60px -30px rgba(22,19,15,.35);background:var(--bg-2)}
.alca-frame__img{width:100%;height:auto;display:block}
.alca-dark .alca-frame{border-color:rgba(255,255,255,.14);box-shadow:0 30px 70px -30px rgba(0,0,0,.7)}
@media (max-width:767px){.e-con.alca-hero{--padding-top:var(--s9)}}
@media (min-width:1280px){
  .e-con.alca-hero{--padding-top:var(--s11);--padding-bottom:var(--s11)}
  /* editorial: the headline holds the left, the lede and the one action sit in the right column on the headline's last line */
  .e-con.alca-hero > .e-con-inner > .alca-hero__text{display:grid;grid-template-columns:minmax(0,13fr) minmax(0,11fr);grid-template-rows:auto auto auto auto;column-gap:var(--s7);align-items:start}
  .alca-hero__text > :nth-child(1){grid-column:1/-1;grid-row:1;margin-bottom:var(--s7)}
  .alca-hero__text > :nth-child(2){grid-column:1;grid-row:2/5;margin-top:-.08em}
  .alca-hero__text > :nth-child(3){grid-column:2;grid-row:2;margin-top:.3em}
  .alca-hero__text > :nth-child(4){grid-column:2;grid-row:3}
  .alca-hero__text > :nth-child(5){grid-column:2;grid-row:4}
  .alca-hero .alca-actions .elementor-widget-container{display:flex;flex-wrap:wrap;gap:var(--s4) var(--s5)}
  .alca-hero h1{max-width:20ch}
  .alca-hero .alca-lede{max-width:38ch;margin-top:0}
  .alca-hero .alca-actions{margin-top:var(--s6)}
}
.js .alca-hero__text > .elementor-widget:not(.elementor-widget-heading:has(h1)),.js .alca-hero__text > .e-con{animation:alca-rise .5s var(--ease) both;animation-delay:calc(var(--i,0) * 60ms)}
/* the H1 is the LCP element: it paints in the first frame, the rest rises around it */
.alca-hero__text > :nth-child(1){--i:0}.alca-hero__text > :nth-child(2){--i:1}.alca-hero__text > :nth-child(3){--i:2}.alca-hero__text > :nth-child(4){--i:3}.alca-hero__text > :nth-child(5){--i:4}
@keyframes alca-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ===== 8. Router — effortless: a floating white surface, list not boxes ===== */
.e-con.alca-router-sec{--padding-top:0;--padding-bottom:var(--s10)}
/* ===== 8. The router — one instrument, not a panel on paper. A dark surface across the content width,
      one question at a time, and the options as real pressable objects of equal size. ===== */
.alca-router{position:relative;display:block;background:var(--dark);color:var(--t-dark);border-radius:var(--radius);border:1px solid rgba(236,231,223,.14);box-shadow:0 40px 90px -50px rgba(22,19,15,.55);overflow:hidden}
.alca-router::before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,rgba(236,231,223,0),rgba(236,231,223,.34),rgba(236,231,223,0));pointer-events:none}
.alca-router__intro{padding:var(--s8) var(--s6) var(--s6);background:none;display:grid;justify-items:start;gap:0}
.alca-router__intro .alca-eyebrow{color:var(--m-dark);margin:0}
.alca-router__intro .alca-router__q{font-family:var(--serif);font-weight:400;font-size:clamp(2.125rem,1.2rem + 3.6vw,3.5rem);line-height:1;letter-spacing:-.03em;color:#fff;margin:var(--s3) 0 var(--s3);max-width:16ch}
.alca-router__intro .alca-small{color:var(--m-dark);font-size:var(--t-small);margin:0;max-width:40ch}
/* the progress stays, quietly: three hairlines and a word each */
.alca-router__progress{margin:var(--s6) 0 0;list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3);width:100%;max-width:420px}
.alca-router__progress li{display:grid;gap:var(--s2);font-family:var(--sans);font-size:var(--t-label);color:var(--m-dark);white-space:nowrap}
.alca-router__progress li::before{content:"";height:2px;border-radius:2px;background:rgba(236,231,223,.16);transition:background-color .3s var(--ease)}
.alca-router__progress li.is-done::before{background:rgba(236,231,223,.34)}
.alca-router__progress li[aria-current="step"]{color:#fff;font-weight:500}
.alca-router__progress li[aria-current="step"]::before{background:var(--amber)}
.alca-router__path{margin:var(--s4) 0 0;font-size:var(--t-small);color:var(--m-dark)}
.elementor-kit-4 .alca-router__path button{color:#fff;text-decoration:underline;text-underline-offset:.25em;text-decoration-color:rgba(236,231,223,.34);cursor:pointer}
.alca-router__path .sep{margin:0 var(--s2);color:rgba(236,231,223,.34)}
.alca-router__stage{padding:0 var(--s6) var(--s8)}
.alca-router__q{font-family:var(--serif);font-weight:400;font-size:var(--t-h3);line-height:1.1;letter-spacing:-.02em;color:#fff;margin:0 0 var(--s5)}

/* the options: one object per choice, the same object whatever the label's length */
.alca-router__opts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s3);align-items:stretch;grid-auto-rows:1fr}
.alca-router__opts li{display:grid}
.alca-router__opts a,.elementor-kit-4 .alca-router__opts button{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:var(--s5);width:100%;height:100%;min-height:104px;padding:var(--s5);background:var(--dark-2);border:1px solid rgba(236,231,223,.18);border-radius:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.05);color:#fff;font-family:var(--sans);font-size:1.0625rem;font-weight:500;line-height:1.25;text-align:left;text-decoration:none;cursor:pointer;transition:transform .16s var(--ease),border-color .16s var(--ease),background-color .16s var(--ease),box-shadow .16s var(--ease)}
.alca-router__label{display:block;min-height:0;line-height:1.25;max-width:20ch}
.alca-router__arrow{position:static;align-self:flex-end;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:rgba(236,231,223,.10);color:#fff;flex:0 0 auto;transition:transform .16s var(--ease),background-color .16s var(--ease),color .16s var(--ease)}
.alca-router__arrow svg{width:18px;height:18px}
@media (hover:hover){
  .alca-router__opts a:hover,.elementor-kit-4 .alca-router__opts button:hover{transform:translateY(-2px);background:#252220;border-color:rgba(236,231,223,.55);box-shadow:0 18px 34px -20px rgba(0,0,0,.8)}
  .alca-router__opts a:hover .alca-router__arrow,.elementor-kit-4 .alca-router__opts button:hover .alca-router__arrow{background:#fff;color:var(--ink);transform:translateX(3px)}
}
.alca-router__opts a:active,.elementor-kit-4 .alca-router__opts button:active{transform:translateY(0);background:#1F1C1A;box-shadow:inset 0 2px 8px rgba(0,0,0,.55)}
.alca-router__opts a:focus-visible,.elementor-kit-4 .alca-router__opts button:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.alca-router__opts .is-selected{border-color:#fff;background:#252220}
.alca-router__step[hidden]{display:none}

/* the readout: the answer and the intake are light cards inside the dark chassis, so the reading and the typing stay easy */
.alca-router__answer,.alca-router__intake{background:var(--bg);border:1px solid var(--hair-2);border-radius:var(--radius);color:var(--ink)}
.alca-router__answer{margin:0;padding:var(--s6);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s4)}
.alca-router__answer > *,.alca-router__answer .alca-actions > *{min-width:0;max-width:100%}
.alca-router__answer p{overflow-wrap:anywhere;font-size:var(--t-body);max-width:48ch;color:var(--muted)}
.alca-router__answer h3,.alca-router__intake .alca-router__q{color:var(--ink)}
.alca-router__answer h3{font-size:var(--t-h3)}
.alca-router__answer .alca-btn{white-space:normal;text-align:center}
.alca-router__answer .alca-actions{margin-top:var(--s2);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s3);max-width:360px}
.alca-router__answer .alca-actions .alca-btn{width:100%}
.alca-router__answer .alca-link{font-size:var(--t-small);display:inline;line-height:1.5}
.alca-router__answer .alca-link::after{margin-left:var(--s2)}
.alca-router__answer:focus-visible{outline:none}
.alca-router__more{margin-top:var(--s5);padding-top:var(--s5);border-top:1px solid var(--hair);display:grid;gap:var(--s2);justify-items:start}
.alca-router__more-q{margin:0;font-family:var(--serif);font-size:1.25rem;line-height:1.2;letter-spacing:-.01em;color:var(--ink);max-width:28ch}
.alca-router__more-note{margin:0;font-size:var(--t-small);color:var(--muted)}
.alca-router__more .alca-btn{margin-top:var(--s2)}
.alca-router__intake[hidden]{display:none}
.alca-router__intake{padding:var(--s6)}
.alca-router__intake .alca-router__q{margin:0 0 var(--s3);font-size:var(--t-h3)}
.alca-router__hint{margin:0 0 var(--s4);font-size:var(--t-small);color:var(--muted)}
.alca-router__intake .alca-form__row{margin:0}
.alca-router__intake label{font-family:var(--sans);font-size:var(--t-small);font-weight:500;color:var(--ink)}
.alca-router__intake :is(input:not([type=hidden]):not(.alca-form__hp),textarea){width:100%;min-height:56px;padding:0 var(--s4);border:1px solid var(--hair-2);border-radius:var(--radius-s,12px);background:var(--white);color:var(--ink);font-family:var(--sans);font-size:1rem}
.alca-router__intake textarea{padding:var(--s3) var(--s4);min-height:132px;resize:vertical}
.alca-router__intake :is(input,textarea):focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-color:var(--ink)}
.alca-router__intake [aria-invalid="true"]{border-color:#B3261E}
.alca-router__intake .alca-form__err{color:#B3261E;font-size:var(--t-small);margin:0}
.alca-router__intake .alca-form__status{color:var(--ink);margin:var(--s4) 0 0;font-size:var(--t-small)}
.alca-router__intake textarea,.alca-router__intake input:not([type=hidden]):not(.alca-form__hp){width:100%;max-width:560px}
.alca-router__nav{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin:var(--s5) 0 0;flex-wrap:wrap}
.elementor-kit-4 .alca-router__nav .alca-router__back{margin:0}
.alca-router__send{display:flex;gap:var(--s3)}
.alca-router__send .alca-btn{min-width:0}
@media (max-width:359px){.alca-router__send{flex-direction:column-reverse}}
.alca-router__intake .alca-form__note{margin:var(--s4) 0 0;font-size:var(--t-label);color:var(--muted);max-width:56ch}
.alca-router__intake .alca-form__note a{color:var(--ink);text-decoration:underline}
.alca-router__intake.is-sending .alca-btn{opacity:.6;pointer-events:none}
.alca-router.is-more .alca-router__progress{grid-template-columns:repeat(7,1fr);max-width:none}
.alca-router__progress li[hidden]{display:none}
@media (max-width:479px){.alca-router.is-more .alca-router__progress li:not([aria-current]) span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
@media (max-width:767px){.alca-router__nav{flex-direction:column-reverse;align-items:stretch}.alca-router__nav .alca-btn,.alca-router__send{width:100%}.alca-router__send .alca-btn{flex:1}}
.alca-router__step.is-entering{animation:alca-in .22s var(--ease)}
/* the back link, on the dark chassis and on the light readout alike */
.elementor-kit-4 button.alca-router__back{margin:var(--s5) 0 0;font-size:var(--t-small);color:var(--m-dark);text-decoration:underline;text-underline-offset:.25em;text-decoration-color:rgba(236,231,223,.34);cursor:pointer}
.elementor-kit-4 .alca-router__intake button.alca-router__back{color:var(--muted);text-decoration-color:var(--hair-2)}

@media (min-width:600px){
  .alca-router__opts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .alca-router__intro{padding:var(--s8) var(--s7) var(--s6)}
  .alca-router__stage{padding:0 var(--s7) var(--s8)}
}
@media (min-width:1025px){
  .alca-router__opts{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
  .alca-router__step[data-step="2"] .alca-router__opts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .alca-router__intro{padding:var(--s9) var(--s8) var(--s7)}
  .alca-router__stage{padding:0 var(--s8) var(--s9)}
  .alca-router__opts a,.elementor-kit-4 .alca-router__opts button{min-height:132px;padding:var(--s6)}
  .alca-router__label{font-size:1.1875rem}
  .alca-router__answer,.alca-router__intake{padding:var(--s7)}
}

/* ===== 9. Proof — the first dark moment: a rating you can't miss, a strip, cards you scroll ===== */
.e-con.alca-proof{--padding-top:var(--s10);--padding-bottom:var(--s10)}
.alca-proof__top{display:grid;gap:var(--s8);align-items:end}
.alca-stats{display:none}
.alca-rating{display:grid;gap:var(--s3)}
.alca-rating__num{font-family:var(--serif);font-weight:400;font-size:clamp(6rem,4rem + 10vw,12rem);line-height:.82;letter-spacing:-.05em;color:#fff;font-variant-numeric:tabular-nums;margin-left:-.04em}
.alca-rating__stars{display:inline-flex;gap:3px;color:var(--amber)}
.alca-rating__stars svg{width:20px;height:20px}
.alca-rating__label{font-size:var(--t-small);color:var(--m-dark)}
.alca-rating__label b{color:var(--t-dark);font-weight:500}
.alca-stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s5);border-top:1px solid var(--hair-d2);padding-top:var(--s5)}
.alca-stats li{display:grid;gap:var(--s1)}
.alca-stats b{font-family:var(--serif);font-weight:400;font-size:var(--t-h2);line-height:1;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.alca-stats li.is-text b{font-size:var(--t-h3);letter-spacing:-.02em;padding-top:.15em}
.alca-stats span{font-size:var(--t-small);color:var(--m-dark)}
.alca-reviews{margin-top:var(--s9);position:relative}
.alca-reviews__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s5)}
.alca-reviews__head h2{font-size:var(--t-h3);color:#fff}
.alca-reviews__nav{display:none;gap:var(--s2)}
.elementor-kit-4 .alca-reviews__nav button{width:44px;height:44px;flex:none;border:1px solid var(--hair-d2);border-radius:50%;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s var(--ease),background-color .15s var(--ease),transform .15s var(--ease)}
.elementor-kit-4 .alca-reviews__nav button:hover{border-color:#fff;background:var(--dark-2)}
.elementor-kit-4 .alca-reviews__nav button:active{transform:scale(.96)}
.alca-reviews__row{list-style:none;margin:0 calc(var(--gutter) * -1);padding:var(--s2) var(--gutter) var(--s5);display:flex;gap:var(--s4);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-padding:0 var(--gutter)}
.alca-reviews__row::-webkit-scrollbar{display:none}
.alca-reviews__row li{flex:0 0 min(84vw,360px);scroll-snap-align:start;display:grid}
.alca-review{height:100%;display:grid;grid-template-rows:auto 1fr auto;gap:var(--s5);padding:var(--s6);background:var(--dark-2);border-radius:var(--radius);border:1px solid var(--hair-d);box-shadow:none;transition:transform .25s var(--ease),background-color .25s var(--ease)}
.alca-review:hover{transform:translateY(-3px);background:#221F1C}
.alca-review__mark{font-family:var(--serif);font-size:4rem;line-height:.5;color:var(--amber);height:1.4rem;margin-left:-.05em}
.alca-review blockquote{margin:0;font-family:var(--serif);font-weight:400;font-size:var(--t-h3);line-height:1.15;letter-spacing:-.02em;color:#fff;hanging-punctuation:first}
.alca-review blockquote p{max-width:none}
.alca-review footer{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding-top:var(--s4);border-top:1px solid var(--hair-d);font-size:var(--t-small);color:var(--m-dark)}
.alca-review footer b{color:var(--t-dark);font-weight:500;display:block}
.alca-review__stars{display:inline-flex;gap:2px;color:var(--amber)}
.alca-review__stars svg{width:13px;height:13px}
/* pagination dots: amber, the accent this dark view already carries (stars); 44 px targets around 8 px dots */
.alca-reviews__dots{display:flex;justify-content:center;gap:2px;margin-top:var(--s2)}
@media (max-width:359px){.alca-reviews__dots{gap:0;margin-inline:calc(var(--s3) * -1)}.elementor-kit-4 .alca-reviews__dots button{flex:none}}
.elementor-kit-4 .alca-reviews__dots button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%}
.alca-reviews__dots span{display:block;width:8px;height:8px;border-radius:50%;background:transparent;border:1px solid var(--hair-d2);transition:background-color .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}
.alca-reviews__dots button[aria-current="true"] span{background:var(--amber);border-color:var(--amber);transform:scale(1.25)}
@media (hover:hover){.alca-reviews__dots button:hover span{border-color:var(--t-dark)}}
.alca-proof__more{margin-top:var(--s3)}
/* the disclaimer line: never smaller than the attributions (0.9375rem); muted but legible — #6B665E on paper 4.6:1, #A8A199 on #121110 6.1:1 */
.alca-disclaimer{font-size:var(--t-small);line-height:1.5;color:var(--muted);max-width:64ch;margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--hair)}
.alca-disclaimer a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.alca-disclaimer--dark{color:var(--m-dark);border-top-color:var(--hair-d2)}
.alca-disclaimer--dark a{color:#fff}
/* the experience claim: a supporting line, its attribution above it, the results disclaimer immediately beneath — one unit, one view */
.alca-claim{margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--hair-2);max-width:60ch}
.alca-claim__who{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:0 0 var(--s1)}
.alca-claim__line{font-family:var(--serif);font-size:1.25rem;line-height:1.3;letter-spacing:-.01em;color:var(--ink);margin:0}
.alca-claim .alca-disclaimer{margin-top:var(--s3);padding-top:0;border-top:0}
.alca-claim--dark{border-top-color:var(--hair-d2)}
.alca-claim--dark .alca-claim__who{color:var(--m-dark)}
.alca-claim--dark .alca-claim__line{color:#fff}
.alca-phero .alca-claim{margin-top:var(--s5)}
.alca-meet__text .alca-claim{margin-top:var(--s6)}
.alca-review__q p{display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.alca-review__more{font-size:var(--t-small);color:var(--t-dark);text-decoration-color:var(--hair-d2);align-self:start}
.alca-review{grid-template-rows:auto 1fr auto auto}
.alca-rv__meta{display:block;font-size:var(--t-small);letter-spacing:0;text-transform:none;color:var(--muted);font-weight:400;margin-top:2px}
@media (min-width:768px){
  .alca-proof__top{grid-template-columns:1fr}
  .alca-stats{border-top:0;border-left:1px solid var(--hair-d2);padding:var(--s2) 0 var(--s2) var(--s6)}
  .alca-reviews__nav{display:inline-flex}
  .alca-reviews__row li{flex-basis:calc((100% - var(--s4) * 2) / 2.35)}
}
@media (min-width:1025px){.alca-reviews__row{margin:0;padding:var(--s2) 0 var(--s5);scroll-padding:0}.alca-reviews__row li{flex-basis:calc((100% - var(--s4) * 2) / 3)}}

/* ===== 10. Practice areas — white tiles on off-white, the surface responds ===== */
.e-con.alca-practice{background:var(--lav-2)} /* the one tinted ground: text #2B2823 on #F2F0F6 = 13.0:1, muted #6B665E = 5.0:1 */
.alca-practice__head{display:grid;gap:var(--s5);margin-bottom:var(--s7)}
.alca-practice__head h2{max-width:16ch}
.alca-practice__head .alca-eyebrow::after,.alca-meet__text .alca-eyebrow::after,.alca-how__head .alca-eyebrow::after{content:"";display:block;width:28px;height:2px;border-radius:1px;background:var(--lav-ink);margin-top:10px}
.alca-practice__lede{margin-top:var(--s4);color:var(--muted);max-width:44ch}
.alca-areas{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);counter-reset:area}
.alca-areas li{counter-increment:area;min-width:0;display:grid}
.alca-areas a{height:100%}
.alca-areas a{position:relative;display:grid;grid-template-rows:auto 1fr;gap:var(--s3);min-height:0;padding:var(--s5);align-content:start;background:var(--white);border-radius:var(--radius);border:1px solid var(--hair);text-decoration:none;color:var(--ink);box-shadow:none;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.alca-areas a:active{transform:scale(.99)}
.alca-areas__head{display:flex;align-items:start;justify-content:space-between;gap:var(--s2)}
.alca-areas__title{font-family:var(--serif);font-weight:400;font-size:1.375rem;line-height:1.05;letter-spacing:-.02em}
.alca-areas__desc{display:block;font-size:var(--t-small);line-height:1.45;color:var(--muted);transition:color .2s var(--ease)}
/* the card arrow (one object on every card): at rest it points to the top right; on hover or focus anywhere on the card it turns to the right and moves with the turn, one movement; still under reduced motion */
.alca-go{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--lav);color:var(--ink);font-size:.9rem;line-height:1;flex:none;transform:rotate(-45deg) translate(0,0);transition:transform .2s cubic-bezier(.2,.7,.2,1),background-color .2s var(--ease),color .2s var(--ease)}
a:focus-visible .alca-go{transform:rotate(0deg) translate(3px,0);background:var(--ink);color:#fff}
@media (hover:hover){a:hover .alca-go{transform:rotate(0deg) translate(3px,0);background:var(--ink);color:#fff}}
@media (prefers-reduced-motion:reduce){.alca-go{transition:none}a:hover .alca-go,a:focus-visible .alca-go{transform:rotate(-45deg) translate(0,0)}}
.alca-dark .alca-go{background:var(--dark-2);color:var(--t-dark)}
.alca-dark a:hover .alca-go,.alca-dark a:focus-visible .alca-go{background:#fff;color:var(--ink)}
@media (hover:hover) and (min-width:768px){
  .alca-areas a:hover,.alca-areas a:focus-visible{transform:translateY(-2px);border-color:var(--hair-2);box-shadow:0 12px 28px -18px rgba(22,19,15,.25)}
  .alca-areas a:hover .alca-areas__desc,.alca-areas a:focus-visible .alca-areas__desc{color:var(--text)}
}
.alca-areas__desc{display:none}
@media (max-width:767px){.alca-areas{grid-template-columns:1fr;gap:var(--s2)}.alca-areas__desc{display:block}.alca-areas a{min-height:0;padding:var(--s4) var(--s5);gap:var(--s2)}.alca-areas__title{font-size:1.25rem}}
@media (min-width:768px){
  .alca-practice__head{grid-template-columns:1fr auto;align-items:end}
  .alca-areas{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:var(--s4)}
  .alca-areas a{min-height:0;padding:var(--s5) var(--s5) var(--s5)}
  .alca-areas__title{font-size:var(--t-h3)}
  .alca-areas__desc{display:block}
}

/* ===== 11. Your attorney — the one place he appears: portrait + facts, who he is, recognition as issued ===== */
.alca-meet{display:grid;gap:var(--s8);align-items:start}
.alca-meet__figure{margin:0;display:grid;justify-items:center;text-align:center;gap:var(--s5)}
.alca-meet__figure figcaption{display:grid;gap:var(--s4);justify-items:center;font-style:normal}
.alca-facts{margin:0;display:grid;gap:var(--s2);font-size:var(--t-small);line-height:1.45}
.alca-facts div{display:grid;gap:2px}
.alca-facts dt{color:var(--muted)}
.alca-facts dd{margin:0;color:var(--ink);font-weight:500;max-width:100%;text-wrap:balance;overflow-wrap:anywhere} /* a long value (the Office row) wraps evenly rather than touching the edges or running past them */
.alca-meet__text .alca-eyebrow{margin-bottom:var(--s4)}
.alca-meet__text h2{max-width:14ch}
.alca-meet__text h2.alca-meet__name{max-width:none;white-space:nowrap;font-size:min(var(--t-h2),7.4vw)}
.alca-meet__text h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;line-height:1.15;letter-spacing:-.015em;margin-top:var(--s6)}
.alca-meet__text p{margin-top:var(--s5);font-size:var(--t-body)}
.alca-meet__text h3 + p{margin-top:var(--s3)}
.alca-meet__badges{padding-top:var(--s6);border-top:1px solid var(--hair)}
.alca-meet__badges{display:grid;justify-items:center}
.alca-meet__badges .alca-label{text-align:center;margin-inline:auto}
.alca-badges{list-style:none;margin:var(--s4) auto 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,152px));justify-content:center;gap:var(--s5) var(--s4);align-items:start}
.alca-badges li{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:96px auto;gap:var(--s3);justify-items:center;text-align:center;min-width:0}
/* one plate for all six: 152×96, the badge scaled by eye inside it (--bh), sat on one baseline */
.alca-badge{position:relative;display:flex;align-items:center;justify-content:center;width:152px;max-width:100%;height:96px;padding:8px;border-radius:var(--radius-s);border:1px solid var(--hair);background:var(--white);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 1px 0 rgba(22,19,15,.05),0 14px 28px -16px rgba(22,19,15,.25);overflow:hidden}
.alca-badge::after{content:"";position:absolute;inset:0 0 55% 0;background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,0));pointer-events:none;border-radius:10px 10px 0 0}
.alca-badge img{height:var(--bh,72px);width:auto;max-width:136px;object-fit:contain;display:block}
.alca-badges small{display:block;height:calc(3 * 1.35 * .75rem);font-size:.75rem;line-height:1.35;letter-spacing:.01em;color:var(--muted);max-width:100%}
@media (min-width:768px){.alca-badges{grid-template-columns:repeat(3,minmax(0,152px));gap:var(--s6) var(--s5)}}
@media (min-width:1280px){.alca-badges{grid-template-columns:repeat(6,minmax(0,152px));gap:var(--s5) var(--s4)}}
@media (min-width:768px){
  .alca-meet{grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:var(--s9)}
  .alca-meet__badges{grid-column:1/-1}
}
@media (min-width:1025px){.alca-meet{column-gap:var(--s10)}.alca-meet__text{padding-right:var(--s8)}}

/* ===== 12. How it works — three columns, one line, nothing else ===== */
.alca-how__head{margin-bottom:var(--s8);display:grid;gap:var(--s4)}
.alca-how__head h2{max-width:12ch}
.alca-steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--s6);counter-reset:step;position:relative}
.alca-steps li{position:relative;display:grid;grid-template-columns:1fr;row-gap:var(--s2);align-items:start;padding-top:var(--s4);border-top:1px solid var(--hair-2)}
.alca-steps li::before{content:none}
.alca-steps h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;line-height:1.15;color:var(--ink);letter-spacing:-.015em}
.alca-steps p{font-size:var(--t-body);color:var(--muted);max-width:32ch;margin-top:var(--s2)}
@media (min-width:768px){
  .alca-steps{grid-template-columns:repeat(3,1fr);gap:var(--s7)}
  .alca-steps li{row-gap:var(--s3);padding-top:var(--s5)}
}

/* ===== 13. Closing — one question, one answer, one call. The office as a place; a quieter way to write. ===== */
.alca-close__head{display:grid;gap:var(--s5);margin-bottom:var(--s8)}
.alca-close__head > div{display:grid;gap:var(--s4)}
.alca-close h2{font-size:var(--t-display);max-width:14ch}
.alca-close__lede{color:var(--m-dark);max-width:44ch;font-size:var(--t-lede);line-height:1.45}
.alca-close__aside{display:grid;gap:var(--s5)}
.alca-close__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s8)}
.alca-close__grid > *{min-width:0}
.alca-close__office,.alca-close__form{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s5);align-content:start}
.alca-close__office > *,.alca-close__form > *{min-width:0}
.alca-close h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;line-height:1.15;letter-spacing:-.015em;color:#fff}
.alca-close__office > p{color:var(--m-dark);font-size:var(--t-small);margin-top:calc(var(--s3) * -1);max-width:40ch}
/* map: a self-hosted still (OSM tiles, rendered once), the whole object opens directions; nothing third-party loads */
.alca-map{position:relative;display:block;border-radius:var(--radius);overflow:hidden;border:1px solid var(--hair-d2);box-shadow:none;background:var(--bg-2);text-decoration:none;color:var(--ink);transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.alca-map img{width:100%;max-width:100%;height:auto;display:block}
.alca-lav .alca-map{border-color:var(--hair-2)}
.alca-map--google{cursor:default}
.alca-map--google:hover{transform:none;box-shadow:none}
.elementor-kit-4 button.alca-map__chip{cursor:pointer;border:0;font-family:var(--sans)}
.alca-map--google .alca-map__credit{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;text-decoration:none;color:var(--ink);background:rgba(251,250,247,.9)}
.alca-map__embed{position:absolute;inset:0;width:100%;height:100%;border:0}
.alca-map--google.is-live picture{visibility:hidden}
.alca-map:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.alca-map:active{transform:none}
.alca-map__chip{position:absolute;left:var(--s4);bottom:var(--s4);display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;padding:0 var(--s4) 0 var(--s3);border-radius:12px;background:var(--ink);color:#fff;font-family:var(--sans);font-size:var(--t-small);font-weight:500;box-shadow:0 10px 30px -14px rgba(22,19,15,.5);transition:transform .2s var(--ease),background-color .2s var(--ease)}
.alca-map__chip svg{width:18px;height:18px}
.alca-map:hover .alca-map__chip{background:#2B2823;transform:translateY(-1px)}
.alca-map__credit{position:absolute;right:var(--s3);bottom:var(--s3);font-size:.6875rem;color:var(--muted);background:rgba(251,250,247,.8);padding:2px 6px;border-radius:6px}
.alca-card{position:relative;background:var(--white);color:var(--text);border-radius:var(--radius);padding:var(--s6);box-shadow:0 20px 50px -30px rgba(0,0,0,.5);display:grid;gap:var(--s5)}
.alca-card .alca-actions{display:flex;flex-wrap:wrap;gap:var(--s3)}
.alca-card .alca-reply{margin-top:calc(var(--s3) * -1)}
.alca-card dl{margin:0;display:grid;gap:var(--s3);font-size:var(--t-small)}
.alca-card__row{display:grid;grid-template-columns:7rem minmax(0,1fr);column-gap:var(--s4);align-items:start}
@media (max-width:767px){.alca-card{padding:var(--s5)}.alca-card__row{grid-template-columns:5.5rem minmax(0,1fr);column-gap:var(--s3)}}
.alca-card dt{display:flex;align-items:center;gap:var(--s2);color:var(--muted);line-height:1.45}
.alca-card__mk{display:inline-flex;width:20px;height:20px;flex:none;color:var(--ink);align-items:center;justify-content:center}
.alca-card dd{margin:0;color:var(--text);line-height:1.45;min-width:0}
.alca-card__row--hours dd{color:var(--ink);font-weight:600}
.alca-card__row--cities dd{text-wrap:balance}
.alca-card__row--cities a{white-space:nowrap}
.alca-card dd a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--hair-2)}
.alca-card dd a:hover{text-decoration-color:currentColor}
.alca-dark .alca-card .alca-btn:not(.alca-btn--secondary){background:var(--ink);color:#fff;border-color:var(--ink)}
.alca-dark .alca-card .alca-btn:not(.alca-btn--secondary)::after{color:#fff}
.alca-dark .alca-card .alca-btn--secondary{color:var(--ink);border-color:var(--hair-2);background:var(--bg);box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 1px 0 rgba(22,19,15,.04)}
.alca-dark .alca-card .alca-btn--secondary::after{color:var(--ink)}
@media (hover:hover){.alca-dark .alca-card .alca-btn--secondary:hover{border-color:var(--ink);background:var(--white);color:var(--ink)}}
.alca-dark .alca-card .alca-btn--secondary:active{background:var(--bg-2);border-color:var(--ink);color:var(--ink)}
.alca-card .alca-link,.alca-dark .alca-card a{color:var(--ink)}
/* the form: ours, on the dark ground so the phone card stays the loud thing */
.alca-form{display:grid;gap:var(--s4)}
.alca-form__hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.alca-form__row{display:grid;gap:var(--s2)}
.alca-form__pair{display:grid;gap:var(--s4)}
.alca-form label{font-family:var(--sans);font-size:var(--t-small);font-weight:500;color:var(--t-dark)}
.alca-form label span{font-weight:400;color:var(--m-dark)}
.alca-form :is(input,select,textarea){width:100%;min-height:56px;padding:0 var(--s4);border:1px solid var(--hair-d2);border-radius:var(--radius);background:var(--dark-2);color:#fff;font-family:var(--sans);font-size:var(--t-ui);line-height:1.4;box-shadow:inset 0 1px 0 rgba(255,255,255,.04);transition:border-color .15s var(--ease),background-color .15s var(--ease),box-shadow .15s var(--ease);-webkit-appearance:none;appearance:none}
.alca-form textarea{padding:var(--s4);min-height:128px;resize:vertical}
.alca-form :is(input,select,textarea):hover{border-color:rgba(236,231,223,.35)}
.alca-form :is(input,select,textarea):focus-visible{outline:2px solid var(--amber);outline-offset:2px;border-color:transparent;border-radius:12px}
.alca-form :is(input,select,textarea)[aria-invalid="true"]{border-color:#E39A8C}
.alca-form__select{position:relative;display:block}
.alca-form__select::after{content:"";position:absolute;right:var(--s4);top:50%;width:9px;height:9px;border-right:1.5px solid var(--t-dark);border-bottom:1.5px solid var(--t-dark);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.alca-form select{padding-right:var(--s7);cursor:pointer}
.alca-form select option{color:var(--ink);background:#fff}
.alca-form__err{font-size:var(--t-small);color:#F1B9AE;margin:0}
.alca-form__err[hidden]{display:none}
.alca-form__foot{display:grid;gap:var(--s3);margin-top:var(--s2);min-width:0}
.alca-form__foot .alca-btn{white-space:normal;min-width:0;text-align:center;height:auto;min-height:56px;padding-top:12px;padding-bottom:12px}
.alca-form__note{font-size:.8125rem;line-height:1.5;color:var(--m-dark);max-width:40ch}
.alca-form__note a{color:#fff;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hair-d2)}
.alca-form__reply{font-size:var(--t-small);color:#fff;font-weight:500;margin:0}
.alca-reply{font-size:var(--t-small);color:var(--muted);margin-top:var(--s2);max-width:none}
.alca-dark .alca-reply{color:var(--m-dark)}
.alca-footer__list--icons small{display:block;font-size:.8125rem;color:var(--muted)}
.alca-form__status{font-size:var(--t-small);color:var(--t-dark);min-height:1.4em}
.alca-form__status:empty{display:none}
.alca-form.is-sending .alca-btn{opacity:.7;pointer-events:none}
.alca-form.is-sent :is(.alca-form__row,.alca-form__pair,.alca-form__foot){display:none}
.alca-form.is-sent .alca-form__status{font-family:var(--serif);font-size:var(--t-h3);line-height:1.15;letter-spacing:-.02em;color:#fff;max-width:22ch}
@media (min-width:600px){.alca-form__pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media (min-width:1280px){
  .alca-close__head{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end;gap:var(--s8)}
  .alca-close__head .alca-close__aside{grid-column:2}
  .alca-close__head > div{grid-column:1}
  .alca-close__grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:var(--s10);align-items:start}
}

/* ===== 14. Footer — presence first, then four columns of pressable rows ===== */
.e-con.alca-footer{--padding-top:var(--s7);--padding-bottom:var(--s7);--gap:0;background:var(--bg);border-top:1px solid var(--hair)}
.e-con.alca-footer .e-con{--padding-top:0;--padding-bottom:0;--padding-left:0;--padding-right:0}
/* the closing band (fix list two): below the columns, centred: logo, firm, the description, the rating */
.alca-footer__intro{display:grid;gap:var(--s5);justify-items:center;text-align:center;padding-top:var(--s8);margin-top:var(--s8);border-top:1px solid var(--hair)}
.alca-footer__intro .alca-logo{height:132px;min-width:0;justify-content:center}
.alca-footer__intro > div{display:grid;justify-items:center}
.alca-footer__firm{font-family:var(--serif);font-size:var(--t-h3);letter-spacing:-.02em;color:var(--ink);line-height:1.1;margin-bottom:var(--s3)}
.alca-footer__lede{font-size:var(--t-body);color:var(--text);max-width:60ch;margin-bottom:var(--s4);text-wrap:balance}
.alca-footer__rating{display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--t-small);color:var(--muted);margin:0}
.alca-footer__rating b{font-weight:500;color:var(--ink)}
.alca-footer__grid{display:grid;gap:var(--s7);font-size:var(--t-small)}
.alca-footer h3{font-family:var(--sans);font-size:var(--t-label);font-weight:500;color:var(--muted);margin:0 0 var(--s3);letter-spacing:0;line-height:1.4}
.alca-footer__list,.alca-footer ul.alca-cities{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.alca-footer__list a,.alca-footer .alca-cities a,.alca-footer .alca-cities span{position:relative;display:inline-flex;align-items:center;gap:var(--s3);min-height:44px;padding:0 var(--s2);margin-left:calc(var(--s2) * -1);border-radius:10px;color:var(--text);font-size:var(--t-ui);text-decoration:none;transition:color .15s var(--ease),background-color .15s var(--ease),transform .15s var(--ease)}
.alca-footer__list a > span{position:relative}
.alca-footer__list a > span::after,.alca-footer .alca-cities a > span::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:var(--lav-ink);transform:scaleX(0);transform-origin:0 50%;transition:transform .2s var(--ease)}
.alca-footer__list a:hover,.alca-footer__list a:focus-visible,.alca-footer .alca-cities a:hover{color:var(--ink);background:var(--lav-2);transform:translateX(2px)}
.alca-footer__list a:hover > span::after,.alca-footer__list a:focus-visible > span::after{transform:scaleX(1)}
.alca-footer__list li:not(.alca-footer__list--icons li) a::after{content:"→";font-weight:400;color:var(--muted);opacity:0;transform:translateX(-4px);transition:opacity .15s var(--ease),transform .2s var(--ease)}
.alca-footer__list a:hover::after,.alca-footer__list a:focus-visible::after{opacity:1;transform:none}
.alca-footer__list--icons a{align-items:flex-start;padding-top:10px;padding-bottom:10px;line-height:1.35}
.alca-footer__list--icons svg{flex:none;width:20px;height:20px;margin-top:1px;color:var(--ink)}
.alca-footer__list--icons a::after{content:none}
.alca-footer__plain{display:inline-flex;align-items:flex-start;gap:var(--s3);min-height:44px;padding:10px var(--s2);margin-left:calc(var(--s2) * -1);color:var(--text);font-size:var(--t-ui);line-height:1.35}
.alca-footer__social{list-style:none;margin:var(--s5) 0 0;padding:0;display:flex;gap:var(--s2)}
.alca-footer__social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius);border:1px solid var(--hair-2);background:var(--bg);color:var(--ink);box-shadow:inset 0 1px 0 rgba(255,255,255,.75);transition:border-color .15s var(--ease),background-color .15s var(--ease),transform .15s var(--ease)}
.alca-footer__social a:hover,.alca-footer__social a:focus-visible{border-color:var(--lav-ink);background:var(--lav-2);transform:translateY(-2px)}
.alca-footer__social svg{width:20px;height:20px}
.alca-cities--inline{display:inline}
.alca-cities--inline i{font-style:normal;color:var(--muted)}
.alca-card .alca-cities--inline a{color:var(--ink);text-decoration-color:var(--hair-2)}
@media (max-width:767px){.alca-cities--inline a{display:inline-block;padding:12px 0;margin:-12px 0}}
.alca-footer__legal{margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid var(--hair);font-size:.8125rem;line-height:1.5;color:var(--muted);text-align:center}
.alca-footer__legal p{max-width:none}
.alca-footer__bar{color:var(--text)}
@media (min-width:768px){
  .alca-footer__grid{grid-template-columns:1.2fr 1fr 1fr 1fr;gap:var(--s7) 0}
  .alca-footer__grid > .e-con{padding-right:var(--s6)!important;--padding-right:var(--s6)}
  .alca-footer__grid > .e-con + .e-con{border-left:1px solid var(--hair);padding-left:var(--s6)!important;--padding-left:var(--s6)}
}
@media (max-width:767px){.alca-footer__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s6) var(--s5)}.alca-footer__grid > .e-con:first-child{grid-column:1/-1}}
@media (max-width:359px){.alca-footer__grid{grid-template-columns:minmax(0,1fr)}}

/* ===== 15. The bottom system: one bar on every screen — the action primary, text secondary.
      Phones dial; desktop goes to the page's own contact section, because a tel: link on a laptop is a dead end.
      The bar appears once the hero's own actions have scrolled past, and it yields to the cookie notice. ===== */
/* the bar's own hairlines are stronger than the dark sections' (--hair-d2, 1.72:1): a fixed object needs a boundary
   that reads when a dark section is directly above it, and a framed control needs an edge that reads at rest. 0.42 gives 3.56:1. */
.alca-callbar{--bar-edge:rgba(236,231,223,.42);position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--dark);color:var(--t-dark);border-top:1px solid var(--bar-edge);transform:translateY(0);transition:transform .28s var(--ease),visibility 0s}
.alca-callbar.alca-dark .alca-btn--secondary{border-color:var(--bar-edge)}
.alca-callbar__in{display:flex;gap:var(--s3);align-items:center;padding:var(--s3) var(--s4) calc(var(--s3) + env(safe-area-inset-bottom,0px))}
.alca-callbar .alca-btn{flex:1 1 auto;min-height:52px;padding:0 var(--s5);border-radius:12px}
.alca-callbar .alca-btn--secondary{flex:0 0 auto;padding:0 var(--s5) 0 var(--s4);gap:var(--s2)}
.alca-callbar .alca-btn--secondary::after{content:none}
.alca-callbar .alca-btn--secondary svg{width:20px;height:20px}
/* the message mark is one drawing from one source; only its weight is adjusted for the ground it actually sits on.
   The bar is the one place it is drawn in white on dark ink, where a 1.4 hairline goes thin: there it is 1.6.
   The contact card is a light card even when the section behind it is dark, so it keeps 1.4 with everything else. */
.alca-callbar .alca-mark--message{stroke-width:1.6}
.alca-callbar__acts{display:flex;align-items:center;gap:var(--s3);flex:1 1 auto;min-width:0}
.alca-callbar__say,.alca-callbar__book,.alca-callbar__text-long{display:none}
/* hidden means hidden: off the screen and out of the tab order, with the visibility switching only once the slide is done */
.alca-callbar.is-hidden{transform:translateY(110%);visibility:hidden;transition:transform .28s var(--ease),visibility 0s linear .28s}
@media (min-width:768px){
  .alca-callbar__in{max-width:var(--content);margin-inline:auto;padding:var(--s3) var(--gutter);justify-content:space-between;gap:var(--s6)}
  .alca-callbar__say{display:block;font-family:var(--sans);font-size:.9375rem;line-height:1.4;color:var(--m-dark);margin:0;min-width:0}
  .alca-callbar__say b{color:#fff;font-weight:500}
  .alca-callbar__acts{flex:0 0 auto}
  .alca-callbar__call{display:none}
  .alca-callbar__book{display:inline-flex;flex:0 0 auto}
  .alca-callbar .alca-btn{flex:0 0 auto;padding:0 var(--s6)}
  .alca-callbar__text-short{display:none}
  .alca-callbar__text-long{display:inline}
}
@media (min-width:768px) and (max-width:1023px){
  .alca-callbar__say{font-size:.875rem}
  .alca-callbar .alca-btn{padding:0 var(--s5)}
}
/* ===== 16. The line — restyled for light ===== */
.alca-rail{display:none}
@media (min-width:1200px){
  .alca-rail{display:block;position:fixed;left:max(12px,calc((100vw - var(--content)) / 2 - 44px));top:50%;transform:translateY(-50%);z-index:40;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s var(--ease),visibility 0s linear .25s}
  .alca-rail.is-on{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .25s var(--ease),visibility 0s}
  .alca-rail ol{list-style:none;margin:0;padding:0 0 0 var(--s4);position:relative;border-left:1px solid var(--hair-2);display:grid;gap:var(--s4)}
  .alca-rail a{position:relative;min-height:16px;display:flex;align-items:center;gap:var(--s3);font-family:var(--sans);font-size:.8125rem;font-weight:500;color:var(--muted);text-decoration:none;transition:color .15s var(--ease)}
  .alca-rail a:hover,.alca-rail a.is-active{color:var(--ink)}
  .alca-rail__dot{display:none}
  .alca-rail__label{position:absolute;left:-9999px}
  .alca-rail__marker{position:absolute;left:-4px;top:0;width:7px;height:7px;border-radius:50%;background:var(--ink);transform:translateY(0);transition:transform .3s var(--ease)}
  body.alca-dark-under .alca-rail ol{border-left-color:var(--hair-d2)}
  body.alca-dark-under .alca-rail a{color:var(--m-dark)}
  body.alca-dark-under .alca-rail a.is-active{color:#fff}
  body.alca-dark-under .alca-rail__marker{background:var(--amber)}
}
@media (min-width:1500px){.alca-rail{left:calc((100vw - var(--content)) / 2 - 128px)}.alca-rail__label{position:static}.alca-rail ol{gap:var(--s5)}}

/* ===== 16b. Phone alignment — centred where a single object reads composed; left where people read ===== */
@media (max-width:767px){
  .alca-hero__text{text-align:center;align-items:center}
  .alca-hero h1{max-width:none;margin-inline:auto}
  .alca-hero .alca-lede{margin-inline:auto;text-align:center}
  .alca-hero__proof{justify-content:center;text-align:center}
  .alca-hero .alca-actions > .elementor-widget-html .elementor-widget-container{display:grid;gap:var(--s3)}
  .alca-actions{justify-content:center}
  .alca-meet__figure .alca-frame{width:240px!important}
  .alca-router__intro{text-align:center}
  .alca-router__progress,.alca-router__path{text-align:left}
  .alca-router__intro .alca-small{margin-inline:auto;text-align:left}
  .alca-rating{justify-items:center;text-align:center}
  .alca-stats{text-align:center;justify-items:center}
  .alca-stats li{justify-items:center}
  .alca-reviews__head{justify-content:center;text-align:center}
  .alca-practice__head,.alca-how__head,.alca-meet__text .alca-eyebrow,.alca-meet__text h2,.alca-close__head{text-align:center}
  .alca-meet__text p:not(.alca-eyebrow),.alca-meet__text h3,.alca-steps p,.alca-close__lede,.alca-practice__lede{text-align:left}
  .alca-practice__head{justify-items:center}
  .alca-practice__head .alca-eyebrow::after,.alca-meet__text .alca-eyebrow::after,.alca-how__head .alca-eyebrow::after{margin-inline:auto}
  .alca-banner{font-size:.875rem;line-height:1.35;padding:8px var(--s4)}
  .alca-practice__head h2,.alca-how__head h2,.alca-meet__text h2,.alca-close h2{max-width:none;margin-inline:auto}
  .alca-close__head{justify-items:center}
  .alca-close__aside{justify-items:center}
  .alca-close__lede,.alca-practice__lede{margin-inline:auto}
  .alca-meet__badges{text-align:center}
  .alca-proof__more{text-align:center}
  .alca-card .alca-actions{justify-content:center}
  .alca-router__answer .alca-btn{justify-self:center}
  .alca-panel__cta .alca-btn{justify-content:center}
}

/* ===== 16d. The cookie notice: a dark raised card at the bottom, inset on wide screens, near full width on phones; rises in once; the call bar and the Text pill wait while it is open ===== */
.alca-consent{position:fixed;left:50%;bottom:calc(var(--s4) + env(safe-area-inset-bottom,0px));z-index:70;width:min(calc(100% - 2 * var(--gutter)),680px);transform:translate(-50%,16px);opacity:0;background:var(--dark);color:var(--t-dark);border:1px solid var(--hair-d2);border-radius:12px;box-shadow:var(--shadow-lift);padding:var(--s5);display:grid;gap:var(--s3);transition:transform .3s var(--ease),opacity .3s var(--ease)}
.alca-consent[hidden]{display:none}
.alca-consent.is-in{transform:translate(-50%,0);opacity:1}
.alca-consent__text{margin:0;font-size:var(--t-small);line-height:1.5;color:var(--t-dark);max-width:none}
/* the privacy link: its own short line under the notice, never split across lines, a 44 px target */
.alca-consent__more{margin:0;font-size:var(--t-small);line-height:1.5}
.alca-consent__more a{display:inline-flex;align-items:center;min-height:44px;margin:-10px 0;white-space:nowrap;color:#fff;font-weight:500;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;text-decoration-color:var(--hair-d2);border-radius:6px;transition:text-decoration-color .15s var(--ease),color .15s var(--ease)}
.alca-consent__more a:hover{text-decoration-color:#fff;text-decoration-thickness:2px}
.alca-consent__more a:focus-visible{outline:2px solid #fff;outline-offset:3px;text-decoration-color:#fff}
.alca-consent .alca-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3);margin-top:var(--s2)}
.alca-consent .alca-btn{min-width:0;width:100%}
.alca-consent .alca-btn:not(.alca-btn--secondary){background:#fff;color:var(--ink);border-color:#fff}
.alca-consent .alca-btn:not(.alca-btn--secondary)::after{color:var(--ink)}
.alca-consent .alca-btn--secondary{color:#fff;border-color:var(--hair-d2);background:var(--dark);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.alca-consent .alca-btn--secondary::after{color:var(--m-dark)}
.alca-consent .alca-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media (min-width:768px){.alca-consent .alca-actions{grid-template-columns:repeat(2,200px)}}
@media (max-width:767px){.alca-consent{width:calc(100% - 2 * var(--s3));bottom:calc(var(--s3) + env(safe-area-inset-bottom,0px));padding:var(--s4)}}
@media (max-width:359px){.alca-consent .alca-actions{grid-template-columns:1fr}}
body.alca-consent-open .alca-callbar{transform:translateY(110%)}
@media (prefers-reduced-motion:reduce){.alca-consent{transition:none;transform:translate(-50%,0);opacity:1}}

/* ===== 17. Motion — reveal; everything dies under reduced motion ===== */
.alca-reveal--armed{opacity:0;transform:translateY(12px)}
.alca-reveal--armed.is-in{opacity:1;transform:none;transition:opacity .25s var(--ease),transform .25s var(--ease);transition-delay:min(calc(var(--i,0) * 40ms),60ms)}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
  .alca-reveal--armed{opacity:1;transform:none}
  .js .alca-hero__text > .elementor-widget,.js .alca-hero__text > .e-con{animation:none;opacity:1;transform:none}
  .alca-progress{display:none}
  .alca-panel.is-opening .alca-panel__inner{transform:none}
  .alca-router__step.is-entering{animation:none}
  .alca-nav__sub{animation:none}
}
/* ===== 17b. The graphic layer (session 6) — drawn, one weight, palette only, nothing moves on its own ===== */
.alca-mark{display:block;color:currentColor}
.alca-areas__mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;color:var(--ink)}
.alca-phero-sec > .e-con-inner{position:relative;z-index:1}
.alca-phero__mark{color:var(--m-dark);margin-bottom:var(--s2)}
/* city hero: the map fragment, hairline on the dark ground, the page's city filled */
/* the map, interactive: rings are links; names on hover/focus; the current city filled */
.alca-mapwrap{color:var(--ink)}
.alca-mapwrap svg{width:100%;height:auto;display:block}
.alca-mapwrap .m-city text{opacity:1;transition:fill .15s var(--ease)}
.alca-mapwrap .m-city:hover text,.alca-mapwrap .m-city:focus text{fill:var(--lav-ink)}
.alca-mapwrap__m{display:none}
@media (max-width:767px){.alca-mapwrap__d{display:none}.alca-mapwrap__m{display:block;max-width:360px;margin-inline:auto}}
.alca-mapwrap .m-city:hover .m-city__halo,.alca-mapwrap .m-city:focus .m-city__halo{opacity:1}
.alca-mapwrap .m-city:focus{outline:none}
.alca-mapwrap .m-city:focus-visible .m-city__halo{stroke:var(--lav-ink);stroke-width:1.5;opacity:1}
.alca-mapwrap [data-current] circle:first-child{fill:var(--lav-ink);stroke:var(--lav-ink)}
.alca-mapwrap [data-current] text{fill:var(--lav-ink);font-weight:500}
.alca-dark .alca-mapwrap{color:var(--t-dark)}
.alca-related__cities--map{display:grid;gap:var(--s5)}
@media (min-width:1025px){.alca-related__cities--map{grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:var(--s8);align-items:center}}
/* the sequences: five nodes on one line spanning the composition; the progression runs once on scroll-into-view (.is-on), 600 ms per segment + 400 ms at each node, 4.6 s in all */
.alca-seq-wrap,.elementor .elementor-widget .elementor-shortcode figure.alca-seq-wrap{margin:var(--s6) 0;color:var(--ink);--seq-bg:var(--bg);--seq-line:var(--hair-2)}
.alca-dark .alca-seq-wrap{color:var(--t-dark);--seq-bg:var(--dark);--seq-line:var(--hair-d2)}
.alca-seq{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));overflow:hidden}
.alca-seq__cell{position:relative;display:grid;grid-template-columns:minmax(0,1fr);row-gap:var(--s2);justify-items:center;text-align:center;min-width:0}
.alca-seq__cell:nth-child(1){grid-column:1/3;justify-items:start;text-align:left}
.alca-seq__cell:nth-child(2){grid-column:3/5}
.alca-seq__cell:nth-child(3){grid-column:6/8}
.alca-seq__cell:nth-child(4){grid-column:9/11}
.alca-seq__cell:nth-child(5){grid-column:11/13;justify-items:end;text-align:right}
.alca-seq__node{width:12px;height:12px;border-radius:50%;border:1.2px solid currentColor;background:var(--seq-bg);box-sizing:border-box;margin-bottom:var(--s2);position:relative;z-index:1;transition:background-color .25s var(--ease);transition-delay:calc(var(--i) * 1000ms)}
.alca-seq__seg{position:absolute;top:5.5px;left:50%;width:150%;height:1px;background:var(--seq-line)}
.alca-seq__cell:nth-child(1) .alca-seq__seg{left:6px;width:calc(150% - 6px)}
.alca-seq__cell:nth-child(4) .alca-seq__seg{width:calc(150% - 6px)}
.alca-seq__fill{position:absolute;inset:0;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .6s ease-in-out}
.alca-seq__run{position:absolute;inset:0;opacity:0}
.alca-seq__dot{position:absolute;left:-4px;top:-3.5px;width:8px;height:8px;border-radius:50%;background:currentColor}
.alca-seq__t{font-family:var(--serif);font-size:1.125rem;line-height:1.15;letter-spacing:-.01em;opacity:.5;transition:opacity .35s var(--ease);transition-delay:calc(var(--i) * 1000ms)}
.alca-seq__d{font-size:var(--t-label);line-height:1.4;letter-spacing:.01em;opacity:.45;max-width:18ch;transition:opacity .35s var(--ease);transition-delay:calc(var(--i) * 1000ms)}
.is-on .alca-seq__node{background:currentColor}
.is-on .alca-seq__t{opacity:1}
.is-on .alca-seq__d{opacity:.72}
.is-on .alca-seq__fill{transform:scaleX(1);transition-delay:calc(400ms + var(--i) * 1000ms)}
.is-on .alca-seq__run{animation:alca-seq-run .6s ease-in-out both;animation-delay:calc(400ms + var(--i) * 1000ms)}
@keyframes alca-seq-run{0%{transform:translateX(0);opacity:0}6%{opacity:1}94%{opacity:1}100%{transform:translateX(100%);opacity:0}}
/* the loop: after the two-second hold the completed state fades out over half a second (the fill by opacity, not by shrinking back), then everything resets without transition and the run starts again */
.is-out .alca-seq__node{background:var(--seq-bg);transition:background-color .5s var(--ease);transition-delay:0s}
.is-out .alca-seq__t{opacity:.5;transition:opacity .5s var(--ease);transition-delay:0s}
.is-out .alca-seq__d{opacity:.45;transition:opacity .5s var(--ease);transition-delay:0s}
.is-out .alca-seq__fill{opacity:0;transition:opacity .5s var(--ease);transition-delay:0s}
.is-out .alca-seq__run{animation:none}
.is-reset .alca-seq__node,.is-reset .alca-seq__t,.is-reset .alca-seq__d,.is-reset .alca-seq__fill{transition:none!important}
@media (max-width:767px){
  .alca-seq{grid-template-columns:minmax(0,1fr);grid-auto-rows:1fr;row-gap:var(--s4)}
  .alca-seq__cell,.alca-seq__cell:nth-child(n){grid-column:auto;grid-template-columns:12px minmax(0,1fr);column-gap:var(--s4);row-gap:var(--s1);justify-items:start;text-align:left;align-content:start}
  .alca-seq__node{grid-row:1/3;margin:3px 0 0}
  .alca-seq__cell .alca-seq__seg,.alca-seq__cell:nth-child(n) .alca-seq__seg{top:9px;left:5.5px;width:1px;height:calc(100% + var(--s4))}
  .alca-seq__fill{transform:scaleY(0);transform-origin:center top}
  .is-on .alca-seq__fill{transform:scaleY(1)}
  .alca-seq__dot{left:-3.5px;top:-4px}
  .alca-seq__d{max-width:36ch}
  .is-on .alca-seq__run{animation-name:alca-seq-run-v}
}
@keyframes alca-seq-run-v{0%{transform:translateY(0);opacity:0}6%{opacity:1}94%{opacity:1}100%{transform:translateY(100%);opacity:0}}
@media (prefers-reduced-motion:reduce){
  .alca-seq__node,.alca-seq__t,.alca-seq__d{transition:none}
  .alca-seq__node{background:currentColor}.alca-seq__t{opacity:1}.alca-seq__d{opacity:.72}
  .alca-seq__fill,.is-on .alca-seq__fill{transform:none;transition:none}.alca-seq__run,.is-on .alca-seq__run{display:none;animation:none}
}
/* the days after: a stacked list without JS; with JS (.is-live) one step in view, all steps in one grid cell so the height never changes; the person moves it */
.alca-days,.elementor .elementor-widget .elementor-shortcode figure.alca-days{margin:var(--s5) 0 0;color:var(--ink)}
.alca-days__list{list-style:none;margin:0;padding:0;display:grid;border:1px solid var(--hair-2);border-radius:var(--radius);background:var(--white);overflow:hidden}
.alca-days__step{display:grid;gap:var(--s3);padding:var(--s5);border-top:1px solid var(--hair);min-width:0}
.alca-days__step:first-child{border-top:0}
.alca-days__when{display:flex;align-items:center;gap:var(--s3);font-size:var(--t-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.alca-days__n{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--lav);color:var(--ink);font-family:var(--serif);font-size:1rem;letter-spacing:0}
.alca-days__text{margin:0;font-family:var(--serif);font-size:var(--t-h4);line-height:1.35;letter-spacing:-.01em;color:var(--ink);max-width:40ch}
/* desktop measure: 56ch runs to about 70 characters a line in the serif; the shortest step (99 characters) still wraps to two lines, the longest to three, so the card is 174 px instead of 201 */
@media (min-width:1024px){.alca-days__text{max-width:56ch}}
.alca-days.is-live .alca-days__list{border-radius:var(--radius) var(--radius) 0 0}
.alca-days.is-live .alca-days__step{grid-area:1/1;border-top:0;visibility:hidden;opacity:0;transform:translateX(12px);transition:opacity .25s var(--ease),transform .25s var(--ease),visibility 0s .25s}
.alca-days.is-live .alca-days__step.is-current{visibility:visible;opacity:1;transform:none;transition-delay:0s}
.alca-days.is-live .alca-days__step.is-back{transform:translateX(-12px)}
.alca-days__nav{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--hair-2);border-top:0;border-radius:0 0 var(--radius) var(--radius);background:var(--bg)}
.alca-days__nav[hidden]{display:none}
.elementor-kit-4 .alca-days__btn{display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;padding:0 var(--s3);border-radius:10px;border:1px solid var(--hair-2);background:var(--white);color:var(--ink);font-family:var(--sans);font-size:var(--t-small);font-weight:500;cursor:pointer;transition:border-color .15s var(--ease),background-color .15s var(--ease)}
.elementor-kit-4 .alca-days__btn:hover{border-color:var(--ink)}
.elementor-kit-4 .alca-days__btn:disabled{opacity:.35;cursor:default;border-color:var(--hair-2)}
.elementor-kit-4 .alca-days__btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.alca-days__btn--next{margin-left:auto}
.alca-days__dots{list-style:none;margin:0;padding:0;display:flex;gap:0}
.elementor-kit-4 .alca-days__dots button{width:24px;height:44px;padding:0;border:0;background:transparent;cursor:pointer;display:grid;place-items:center}
.elementor-kit-4 .alca-days__dots button::before{content:"";width:10px;height:10px;border-radius:50%;border:1px solid var(--ink);background:transparent;transition:background-color .15s var(--ease)}
.elementor-kit-4 .alca-days__dots button[aria-current]::before{background:var(--ink)}
.elementor-kit-4 .alca-days__dots button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
/* on phones the dots take their own row under the buttons so each can be 40 px wide (7 × 40 fits 288 at 320); from 768 they sit between the buttons */
@media (max-width:767px){.alca-days__nav{flex-wrap:wrap}.alca-days__dots{order:3;flex-basis:100%;justify-content:center}.elementor-kit-4 .alca-days__dots button{width:40px}.alca-days__btn--next{margin-left:auto}}
@media (min-width:375px) and (max-width:767px){.elementor-kit-4 .alca-days__dots button{width:44px}}
/* at 320 seven 44 px targets need 308 px in a 288 px column: the hit areas overlap by 4 px each side (the drawn dots stay 40 px apart) */
@media (max-width:374px){.elementor-kit-4 .alca-days__dots button{width:44px;margin:0 -2px}}
.alca-days__count{margin:0;font-size:var(--t-label);color:var(--muted);font-variant-numeric:tabular-nums}
@media (max-width:767px){.alca-days__nav{display:grid;grid-template-columns:1fr 1fr;row-gap:var(--s3)}.alca-days__nav .alca-days__btn{grid-row:1}.alca-days__btn--next{grid-column:2;justify-self:end;margin-left:0}.alca-days__dots{grid-column:1/-1;grid-row:2;justify-content:center}.alca-days__count{grid-column:1/-1;grid-row:3;text-align:center}.alca-days__text{font-size:1.125rem}}
@media (prefers-reduced-motion:reduce){.alca-days.is-live .alca-days__step{transition:none;transform:none}}
.alca-how5__week{margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid var(--ink)}
.elementor .elementor-widget .elementor-shortcode figure.alca-seq-wrap:has(+ .alca-steps){margin:0 0 var(--s8)}
/* the proposal sheet */
.alca-gfxp{display:grid;gap:var(--s6)}
.alca-gfxp__row{display:flex;flex-wrap:wrap;gap:var(--s6);align-items:flex-end}
.alca-gfxp__m{display:grid;justify-items:center;gap:var(--s2);font-size:.75rem;letter-spacing:.04em;color:var(--muted)}
.alca-gfxp p .alca-mark{display:inline-block;vertical-align:-4px;margin:0 2px}
.alca-gfxp h3{font-family:var(--sans);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:var(--s5) 0 0}
.alca-gfxp__note{color:var(--muted);font-size:var(--t-small)}
.alca-gfxp__hero{position:relative;background:var(--dark);border-radius:var(--radius);padding:var(--s8) var(--s6);min-height:380px;overflow:hidden;display:grid;align-items:center}
.alca-hero-frag--demo{display:block!important;right:-40px;width:min(60%,760px)}
.alca-gfxp__hero .alca-eyebrow{color:var(--m-dark)}
.alca-mapwrap--v2{background:var(--lav-2);border:1px solid var(--hair);border-radius:var(--radius);padding:var(--s5)}
@media (max-width:1024px){.alca-gfxp__hero{min-height:220px}.alca-hero-frag--demo{position:absolute;opacity:.3}}

/* ===== 18. The other pages (session 3): practice template, interior pages, location template ===== */
.e-con.alca-phero-sec{--padding-top:var(--s9);--padding-bottom:var(--s9)}
@media (min-width:1025px){.e-con.alca-phero-sec{--padding-top:var(--s10);--padding-bottom:var(--s10)}}
.alca-phero{display:grid;gap:var(--s5);max-width:640px}
.alca-phero h1{font-size:var(--t-display);max-width:16ch}
.alca-phero .alca-lede{max-width:560px;color:var(--t-dark)}
.alca-phero .alca-actions{margin-top:var(--s3)}
.alca-phero .alca-hero__proof{margin-top:0;color:var(--m-dark)}
.alca-phero .alca-hero__proof b{color:#fff}
.alca-phero .alca-hero__proof i{color:var(--hair-d2)}
.alca-dark .alca-eyebrow{color:var(--m-dark)}
@media (max-width:767px){.alca-phero,.alca-athero,.alca-athero__text{text-align:center;justify-items:center}.alca-phero h1,.alca-athero__text h1{max-width:none}.alca-phero .alca-hero__proof,.alca-athero .alca-hero__proof{justify-content:center}.alca-phero .alca-actions,.alca-athero .alca-actions{display:grid;width:100%}.alca-phero .alca-actions .alca-btn,.alca-athero .alca-actions .alca-btn{width:100%}}
/* answer block: question left, answer right, one hairline between */
.alca-answer{display:grid;gap:var(--s6)}
.alca-answer__q h2{max-width:14ch;margin-top:var(--s3)}
.alca-answer__a p{font-size:var(--t-lede);line-height:1.5;max-width:52ch}
.alca-answer__a p + p{margin-top:var(--s4)}
.alca-answer__who{font-size:var(--t-small)!important;color:var(--muted)!important;margin-top:var(--s5)!important;padding-top:var(--s4);border-top:1px solid var(--hair-2)}
@media (min-width:1025px){.alca-answer{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--s9);align-items:start}}
/* the five blocks: a numbered ledger */
.alca-how5__head{display:grid;gap:var(--s3);margin-bottom:var(--s7)}
.alca-how5__head h2{max-width:16ch}
.alca-how5__list{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--ink)}
.alca-how5__list li{position:relative;display:grid;grid-template-columns:3.5rem minmax(0,1fr);column-gap:var(--s4);padding:var(--s5) 0;border-bottom:1px solid var(--hair-2)}
.alca-how5__n{font-family:var(--serif);font-size:var(--t-h3);line-height:1;color:var(--muted);letter-spacing:-.02em}
.alca-how5__list h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;line-height:1.15;letter-spacing:-.015em}
.alca-how5__list p{grid-column:2;margin-top:var(--s2);max-width:56ch;color:var(--text)}
@media (min-width:768px){.alca-how5__list li{grid-template-columns:5rem minmax(0,7fr) minmax(0,9fr);column-gap:var(--s6);align-items:start}.alca-how5__list p{grid-column:3;margin-top:0}}
/* the credit band (dark) */
.alca-credit{display:grid;gap:var(--s6);justify-items:center;text-align:center}
.alca-credit .alca-circle{box-shadow:0 0 0 1px rgba(255,255,255,.16)}
.alca-credit__text{display:grid;gap:var(--s3);justify-items:center}
.alca-credit__text h2{font-size:var(--t-h2)}
.alca-credit__text p{max-width:52ch;color:var(--t-dark)}
.alca-credit__rating{display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--t-small);color:var(--m-dark)}
.alca-credit__rating b{color:#fff;font-weight:500}
@media (min-width:768px){.alca-credit{grid-template-columns:auto minmax(0,1fr);column-gap:var(--s8);justify-items:start;text-align:left;align-items:center}.alca-credit__text{justify-items:start}}
/* FAQ: definition list, hairlines, question in the serif */
.alca-faq__head{display:grid;gap:var(--s3);margin-bottom:var(--s7)}
.alca-faq__list{margin:0;display:grid;border-top:1px solid var(--ink)}
.alca-faq__item{display:grid;gap:var(--s2);align-content:start;padding:var(--s5) 0;border-bottom:1px solid var(--hair-2)}
.alca-faq__item dt h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;line-height:1.15;letter-spacing:-.015em}
.alca-faq__item dd{margin:0}
.alca-faq__item dd p{max-width:56ch}
/* eight questions: two columns from 1024, the question over its answer; one column on phones and small tablets */
@media (min-width:1024px){.alca-faq__list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s8);border-top:0}.alca-faq__item{border-top:1px solid var(--hair-2);border-bottom:0;padding:var(--s5) 0 var(--s6)}.alca-faq__item dd p{max-width:none}}
/* related + cities */
.alca-related__head{display:grid;gap:var(--s3);margin-bottom:var(--s6)}
.alca-related__list{list-style:none;margin:0;padding:0;display:grid;grid-auto-rows:1fr;gap:2px}
.alca-related__list li{display:grid}
.alca-related__list a{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s4);min-height:56px;padding:var(--s3) var(--s3);border-radius:var(--radius-s);border-bottom:1px solid var(--hair);text-decoration:none;color:var(--ink);transition:background-color .15s var(--ease),transform .15s var(--ease)}
.alca-related__t{font-family:var(--serif);font-size:1.375rem;letter-spacing:-.015em}
.alca-related__d{font-size:var(--t-small);color:var(--muted);text-align:right;margin-left:auto}
.alca-related__list a{align-items:center}
@media (hover:hover){.alca-related__list a:hover{background:var(--lav-2);transform:translateX(2px)}}
.alca-related__cities{margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid var(--ink);display:grid;gap:var(--s3)}
.alca-related__cities .alca-cities--inline{font-size:var(--t-ui);color:var(--ink)}
.alca-related__note{font-size:var(--t-small);color:var(--muted);max-width:none}
@media (min-width:768px){.alca-related__list{grid-template-columns:1fr 1fr;column-gap:var(--s7)}}
@media (max-width:767px){.alca-related__list a{flex-wrap:wrap;gap:2px var(--s3);padding:var(--s3) var(--s2)}.alca-related__t{flex:1 1 auto}.alca-related__d{flex-basis:100%;text-align:left;margin-left:0}.alca-related__list .alca-go{order:-1;margin-left:auto}}
/* practice areas index: nine, numbered */
.alca-pagrid{list-style:none;margin:0;padding:0;display:grid;gap:var(--s3)}
.alca-pagrid li{display:grid;min-width:0}
.alca-pagrid a{height:100%;align-content:start}
.alca-pagrid a{display:grid;grid-template-columns:3rem minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:var(--s3);row-gap:var(--s2);padding:var(--s5);background:var(--white);border:1px solid var(--hair);border-radius:var(--radius);text-decoration:none;color:var(--ink);transition:border-color .15s var(--ease),transform .15s var(--ease),box-shadow .15s var(--ease)}
.alca-pagrid__n{grid-row:1/4;font-family:var(--serif);font-size:var(--t-h3);color:var(--muted);line-height:1}
.alca-pagrid__t{font-family:var(--serif);font-size:var(--t-h3);line-height:1.1;letter-spacing:-.02em}
.alca-pagrid__d{font-size:var(--t-small);color:var(--muted);line-height:1.45}
.alca-pagrid__go{font-size:var(--t-small);font-weight:500;color:var(--ink);margin-top:var(--s2)}
.alca-pagrid a{position:relative}
.alca-pagrid__arrow{position:absolute;top:var(--s5);right:var(--s5)}
.alca-pagrid__t{padding-right:40px}
@media (hover:hover){.alca-pagrid a:hover{border-color:var(--hair-2);transform:translateY(-2px);box-shadow:0 12px 28px -18px rgba(22,19,15,.25)}}
@media (min-width:768px){.alca-pagrid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:var(--s4)}}
@media (min-width:1024px){.alca-areas,.alca-pagrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Your Attorney */
.alca-athero{display:grid;gap:var(--s7);justify-items:center;text-align:center}
.alca-athero .alca-frame{width:260px!important}
.alca-athero__text{display:grid;gap:var(--s5);justify-items:center;max-width:60ch}
.alca-athero__text h1{font-size:var(--t-display)}
.alca-athero__text .alca-lede{color:var(--t-dark);max-width:40ch}
.alca-athero .alca-hero__proof{margin:0;color:var(--m-dark)}
/* two proper lines where the line would otherwise wrap around its separator: the home hero column and the attorney hero */
.alca-hero .alca-hero__proof,.alca-athero .alca-hero__proof{display:grid;gap:var(--s1);justify-items:start}
.alca-hero .alca-hero__proof i,.alca-athero .alca-hero__proof i{display:none}
@media (max-width:767px){.alca-athero .alca-hero__proof{justify-items:center}}
.alca-athero .alca-hero__proof b{color:#fff}
.alca-athero .alca-actions{justify-content:center}
@media (min-width:1025px){.alca-athero{grid-template-columns:auto minmax(0,1fr);column-gap:var(--s10);justify-items:start;text-align:left;align-items:start}.alca-athero .alca-frame{width:320px!important;margin-top:calc(var(--t-label) * 1.4 + var(--s5))} /* portrait top on the H1's top: the eyebrow line plus the gap beneath it */.alca-athero__text{justify-items:start}.alca-athero .alca-hero__proof,.alca-athero .alca-actions{justify-content:flex-start}}
.alca-factsheet{margin:0;display:grid;border-top:1px solid var(--ink)}
.alca-factsheet > div{display:grid;gap:var(--s1);padding:var(--s4) 0;border-bottom:1px solid var(--hair-2)}
.alca-factsheet dt{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500}
.alca-factsheet dd{margin:0;color:var(--ink);font-size:var(--t-ui)}
@media (min-width:768px){.alca-factsheet > div{grid-template-columns:minmax(0,2fr) minmax(0,3fr);column-gap:var(--s6);align-items:baseline}}
.alca-story{display:grid;gap:var(--s6)}
.alca-story__head h2{max-width:16ch;margin-top:var(--s3)}
.alca-story__body p{font-size:var(--t-body);max-width:58ch}
.alca-story__body p + p{margin-top:var(--s4)}
.alca-story__body h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;line-height:1.15;margin:var(--s6) 0 var(--s3)}
@media (min-width:1025px){.alca-story{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--s9);align-items:start}}
/* In his own words: a first person passage set apart, on the tinted ground with a large opening mark, the serif at reading size, a rule and his name under it */
.alca-words,.elementor .elementor-widget .elementor-shortcode figure.alca-words{margin:0;display:grid;gap:var(--s6)}
.alca-words__head h2{max-width:16ch;margin-top:var(--s3)}
.alca-words__q{position:relative;margin:0;padding:var(--s7) var(--s6) var(--s6) var(--s6);background:var(--lav-2);border-radius:var(--radius);border:1px solid var(--lav)}
.alca-words__mark{position:absolute;top:var(--s3);left:var(--s5);font-family:var(--serif);font-size:5rem;line-height:1;color:var(--lav-ink);opacity:.5;pointer-events:none}
.alca-words__q p{font-family:var(--serif);font-size:1.25rem;line-height:1.5;letter-spacing:-.005em;color:var(--ink);max-width:60ch;margin:0}
.alca-words__q p + p{margin-top:var(--s4)}
.alca-words__by{display:flex;align-items:center;gap:var(--s4);font-family:var(--sans);font-size:var(--t-small);font-weight:500;color:var(--ink);padding:0 var(--s6)}
.alca-words__rule{width:32px;height:1px;background:var(--lav-ink);flex:none}
@media (min-width:1025px){.alca-words{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--s9);align-items:start}.alca-words__by{grid-column:2}.alca-words__q{padding:var(--s8) var(--s8) var(--s7)}.alca-words__mark{top:var(--s4);left:var(--s6)}}
@media (max-width:767px){.alca-words__head{text-align:center;justify-items:center}.alca-words__head h2{max-width:none;margin-inline:auto}.alca-words__q{padding:var(--s7) var(--s5) var(--s5)}.alca-words__q p{font-size:1.125rem}.alca-words__by{padding:0 var(--s5)}}
.alca-recog__head{display:grid;gap:var(--s3);margin-bottom:var(--s7);text-align:center;justify-items:center}
.alca-recog__note{color:var(--muted);font-size:var(--t-small)}
.alca-recog__more{margin-top:var(--s7);max-width:640px;margin-inline:auto}
.alca-recog__more + .alca-recog__note{margin-top:var(--s4);text-align:center}
.alca-recog__note a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
/* the rating by platform on the Reviews page: one line per platform, each a link to the profile */
.alca-platforms{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;gap:2px}
.alca-platforms a{display:flex;justify-content:space-between;gap:var(--s4);min-height:44px;align-items:center;padding:0 var(--s2);margin:0 calc(var(--s2) * -1);border-radius:10px;color:var(--t-dark);text-decoration:none;font-size:var(--t-small);border-top:1px solid var(--hair-d2)}
.alca-platforms li:first-child a{border-top:0}
.alca-platforms__name{font-weight:500;color:#fff}
.alca-platforms__val b{color:#fff;font-weight:500}
.alca-platforms a:hover{background:rgba(255,255,255,.06)}
.alca-platforms a:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media (max-width:767px){.alca-platforms{max-width:360px;margin-inline:auto;width:100%}}
/* Reviews page */
.alca-rvrating{display:grid;gap:var(--s7);align-items:center}
.alca-rvrating .alca-rating{justify-items:start}
.alca-rvrating__text{display:grid;gap:var(--s4)}
.alca-rvrating__text h2{max-width:14ch}
.alca-rvrating__text p{color:var(--t-dark);max-width:48ch}
@media (min-width:768px){.alca-rvrating{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--s9)}}
.alca-rvlist__head{display:grid;gap:var(--s3);margin-bottom:var(--s7)}
.alca-rvlist__head .alca-disclaimer{margin-top:var(--s3)}
.alca-credit .alca-disclaimer{max-width:56ch}
.alca-rvlist__list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s4)}
.alca-rvlist__list li{display:grid;min-width:0}
.alca-rv{height:100%;grid-template-rows:1fr auto}
.alca-rv{position:relative;display:grid;gap:var(--s4);padding:var(--s6);background:var(--white);border:1px solid var(--hair);border-radius:var(--radius)}
.alca-rv__n{font-family:var(--serif);font-size:var(--t-small);color:var(--muted);letter-spacing:.04em}
.alca-rv blockquote{margin:0;font-family:var(--serif);font-size:1.3125rem;line-height:1.35;letter-spacing:-.01em;color:var(--ink);hanging-punctuation:first}
.alca-rv blockquote p{max-width:none}
.alca-rv blockquote p::before{content:"\201C";color:var(--amber)}
.alca-rv blockquote p::after{content:"\201D";color:var(--amber)}
.alca-rv footer{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding-top:var(--s3);border-top:1px solid var(--hair);font-size:var(--t-small);color:var(--muted)}
.alca-rv footer b{font-weight:500;color:var(--ink);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}
.alca-rvlist__note{margin-top:var(--s6);font-size:var(--t-small);color:var(--muted);max-width:60ch}
@media (min-width:768px){.alca-rvlist__list{grid-template-columns:1fr 1fr;gap:var(--s5)}}
/* 69 reviews of every length: static CSS columns, each card unbreakable, no script */
.alca-rvlist__cols{list-style:none;margin:0;padding:0;columns:1;column-gap:var(--s5)}
.alca-rvlist__cols li{break-inside:avoid;page-break-inside:avoid;margin-bottom:var(--s5);display:block}
.alca-rvlist__cols .alca-rv{height:auto}
.alca-rvlist__cols li:first-child .alca-rv{border-color:var(--lav-ink)}
.alca-rvlist__cols li:first-child .alca-rv blockquote{font-size:var(--t-h3);line-height:1.2}
.alca-rv__reply{margin-top:var(--s2);padding:var(--s4);background:var(--lav-2);border-left:2px solid var(--lav-ink);border-radius:0 var(--radius-s) var(--radius-s) 0;font-size:var(--t-small);color:var(--text)}
.alca-rv__reply-label{display:block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--lav-ink);font-weight:500;margin-bottom:var(--s1)}
.alca-rv__reply p{max-width:none;margin:0}
@media (min-width:768px){.alca-rvlist__cols{columns:2}}
@media (min-width:1200px){.alca-rvlist__cols{columns:3}}
/* Terms */
.alca-terms{display:grid;gap:var(--s7);max-width:64ch}
.alca-terms section{display:grid;gap:var(--s3);padding-top:var(--s5);border-top:1px solid var(--hair-2)}
.alca-terms h2{font-size:var(--t-h3)}
.alca-terms p{max-width:none}
.alca-terms__date{font-size:var(--t-small);color:var(--muted)}
/* Contact + thank-you */
.alca-ct .alca-close__office h2,.alca-ct .alca-close__form h2{font-size:var(--t-h3)}
.alca-ct__lede{color:var(--m-dark);max-width:40ch;margin-top:calc(var(--s2) * -1)}
.alca-ty{display:grid;gap:var(--s5);justify-items:center;text-align:center;max-width:60ch;margin:0 auto}
.alca-ty .alca-actions{justify-content:center}
.alca-ty .alca-lede a{color:#fff}
.alca-ty h1{font-size:var(--t-h2)}
.alca-ty__next{color:var(--m-dark);font-size:var(--t-small)}
.alca-ty__next a{color:#fff}
/* phone alignment for the new pages */
@media (max-width:767px){
  .alca-phero,.alca-answer__q,.alca-how5__head,.alca-faq__head,.alca-related__head,.alca-story__head,.alca-recog__head,.alca-rvlist__head,.alca-rvrating__text{text-align:center;justify-items:center}
  .alca-phero .alca-hero__proof{justify-content:center}
  .alca-phero h1,.alca-answer__q h2,.alca-how5__head h2,.alca-faq__head h2,.alca-story__head h2,.alca-rvrating__text h2{max-width:none;margin-inline:auto}
  .alca-answer__a p,.alca-how5__list,.alca-faq__list,.alca-story__body,.alca-rvlist__list,.alca-factsheet{text-align:left}
  .alca-phero .alca-actions{display:grid;width:100%}
  .alca-phero .alca-actions .alca-btn{width:100%}
  .alca-phero .alca-eyebrow::after{margin-inline:auto}
  .alca-reply{text-align:center}
  .alca-rvrating .alca-rating{justify-items:center}
  .alca-rvrating__text p{margin-inline:auto}
}
.site-header,.site-footer{display:none}

/* ===== 19. Articles (session 7): the post template, the index, the cards. Long reading on a phone: measure under 70 characters, generous leading. ===== */
.alca-article-main{background:var(--bg);color:var(--text)}
.alca-article-wrap{max-width:var(--content);margin-inline:auto;padding:var(--s8) var(--gutter) var(--s10)}
.alca-article{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s8)}
.alca-article__main{min-width:0;max-width:66ch}
.alca-article__head{display:grid;gap:var(--s4);margin-bottom:var(--s6)}
.alca-article__head .alca-eyebrow a{color:inherit;text-decoration:none}
.alca-article__title{font-family:var(--serif);font-weight:400;font-size:var(--t-display);line-height:1.04;letter-spacing:-.025em;color:var(--ink);text-wrap:balance}
.alca-article__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);font-size:var(--t-small);color:var(--muted);font-variant-numeric:tabular-nums}
.alca-article__meta a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hair-2)}
.alca-article__meta i{font-style:normal;color:var(--hair-2)}
/* contents */
.alca-toc{margin:0 0 var(--s7);padding:var(--s5);border:1px solid var(--hair-2);border-radius:var(--radius);background:var(--white)}
.alca-toc__list{margin:var(--s3) 0 0;padding:0 0 0 1.4em;display:grid;gap:var(--s2);font-size:var(--t-small);line-height:1.45;font-variant-numeric:tabular-nums}
.alca-toc__list li::marker{color:var(--muted)}
.alca-toc__list a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hair-2)}
.alca-toc__list a:hover{border-color:var(--ink)}
/* the body */
.alca-article__body{font-size:1.125rem;line-height:1.7;color:var(--text)}
.alca-article-page .alca-article__body > *{margin:0 0 var(--s5)}
.alca-article-page .alca-article__body > :last-child{margin-bottom:0}
.alca-article-page .alca-article__body p{margin:0 0 var(--s5);max-width:66ch}
.alca-article-page .alca-article__body li p{margin:0}
.alca-article__body .alca-h{font-family:var(--serif);font-weight:400;color:var(--ink);letter-spacing:-.02em;line-height:1.15;position:relative;scroll-margin-top:calc(104px + var(--s5))}
.alca-article__body .alca-h2{font-size:var(--t-h3);margin:var(--s8) 0 var(--s4);padding-top:var(--s5);border-top:1px solid var(--hair-2);text-wrap:balance}
.alca-article__body .alca-h3{font-family:var(--sans);font-weight:600;font-size:1.125rem;letter-spacing:0;line-height:1.35;margin:var(--s6) 0 var(--s3)}
.alca-article__body .alca-h4,.alca-article__body .alca-h5,.alca-article__body .alca-h6{font-family:var(--sans);font-weight:500;font-size:1rem;letter-spacing:.01em;color:var(--muted);margin:var(--s5) 0 var(--s2)}
.alca-anchor{color:var(--muted);text-decoration:none;font-family:var(--sans);font-size:.7em;opacity:0;margin-left:.2em;transition:opacity .15s var(--ease)}
.alca-h:hover .alca-anchor,.alca-anchor:focus-visible{opacity:1}
@media (hover:none){.alca-anchor{display:none}}
.alca-article__body a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--lav-ink)}
.alca-article__body a:hover{text-decoration-color:var(--ink)}
.alca-article__body ul,.alca-article__body ol{padding-left:1.4em;display:grid;gap:var(--s2);max-width:62ch}
.alca-article__body li::marker{color:var(--muted);font-variant-numeric:tabular-nums}
.alca-article__body strong{font-weight:600;color:var(--ink)}
.alca-article__body blockquote{margin:var(--s6) 0;padding:var(--s2) 0 var(--s2) var(--s5);border-left:2px solid var(--lav-ink);font-family:var(--serif);font-size:1.25rem;line-height:1.4;color:var(--ink)}
.alca-article__body blockquote p{margin:0}
.alca-article__body img{max-width:100%;height:auto;border-radius:var(--radius)}
.alca-article__body figure{margin:var(--s6) 0}
.alca-article__body figcaption{font-size:var(--t-label);color:var(--muted);margin-top:var(--s2)}
.alca-article__body hr{border:0;border-top:1px solid var(--hair-2);margin:var(--s7) 0}
/* tables: the site's hairline table; scroll rather than break the measure */
.alca-table-wrap{overflow-x:auto;margin:var(--s5) 0 var(--s6);-webkit-overflow-scrolling:touch}
.alca-article__body table{width:100%;border-collapse:collapse;font-size:var(--t-small);line-height:1.45;border-top:1px solid var(--ink)}
.alca-article-page .alca-article__body th,.alca-article-page .alca-article__body td{text-align:left;vertical-align:top;padding:var(--s3) var(--s3) var(--s3) 0;border:0;border-bottom:1px solid var(--hair-2);background:transparent}
.alca-article-page .alca-article__body tr,.alca-article-page .alca-article__body tbody tr:nth-child(odd){background:transparent}
.alca-article-page .alca-article__body .wp-block-table{margin:var(--s5) 0 var(--s6)}
.alca-article__body th{font-family:var(--sans);font-weight:500;font-size:var(--t-label);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.alca-article__body td:first-child,.alca-article__body th:first-child{width:38%;padding-right:var(--s5)}
.alca-article__body td:first-child{color:var(--ink);font-weight:500}
/* the trust line, the quiet calls to action */
.alca-article__trust{font-family:var(--serif);font-size:1.125rem;line-height:1.5;color:var(--muted);padding:var(--s4) 0;border-top:1px solid var(--hair-2);border-bottom:1px solid var(--hair-2);margin:var(--s6) 0}
.alca-article__trust em{font-style:italic}
.alca-article__cta{margin:var(--s7) 0;padding:var(--s4) var(--s5);border-left:2px solid var(--ink);background:var(--white);border-radius:0 var(--radius) var(--radius) 0}
.alca-article__cta p{margin:0;font-size:var(--t-body);color:var(--ink);max-width:none}
.alca-article__cta a{font-weight:500}
/* the FAQ, the foot */
.alca-article__faq .alca-h3{padding-top:var(--s4);border-top:1px solid var(--hair);margin-top:var(--s5)}
.alca-article__foot{margin-top:var(--s8);display:grid;gap:var(--s6)}
.alca-article__legal{font-size:var(--t-small);line-height:1.5;color:var(--muted);padding-top:var(--s5);border-top:1px solid var(--hair-2)}
.alca-article__legal a{color:var(--ink)}
.alca-article__talk{background:var(--dark);color:var(--t-dark);border-radius:var(--radius);padding:var(--s7) var(--s6);display:grid;gap:var(--s4)}
.alca-article__talk .alca-eyebrow{color:var(--m-dark)}
.alca-article__talk-h{font-family:var(--serif);font-weight:400;font-size:var(--t-h3);line-height:1.15;letter-spacing:-.02em;color:#fff;max-width:20ch}
.alca-article__talk p{color:var(--t-dark)}
.alca-article__talk .alca-actions{display:flex;flex-wrap:wrap;gap:var(--s3)}
.alca-article__talk .alca-btn:not(.alca-btn--secondary){background:#fff;color:var(--ink);border-color:#fff}
.alca-article__talk .alca-btn:not(.alca-btn--secondary)::after{color:var(--ink)}
.alca-article__talk .alca-btn--secondary{color:#fff;border-color:var(--hair-d2);background:var(--dark)}
.alca-article__talk .alca-reply{color:var(--m-dark)}
.alca-article__author{font-size:var(--t-small);color:var(--muted);line-height:1.5}
.alca-article__author a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hair-2)}
.alca-article__updated{color:var(--muted)}
/* the sidebar card: part of the template; sticks on wide screens */
.alca-side-card{background:var(--white);border:1px solid var(--hair-2);border-radius:var(--radius);padding:var(--s6);display:grid;gap:var(--s4);box-shadow:0 20px 50px -34px rgba(22,19,15,.3)}
.alca-side-card__h{font-family:var(--serif);font-weight:400;font-size:1.5rem;line-height:1.15;letter-spacing:-.015em;color:var(--ink)}
.alca-side-card p{font-size:var(--t-small);line-height:1.5;color:var(--text)}
.alca-side-card .alca-actions{display:flex;flex-wrap:wrap;gap:var(--s3)}
.alca-side-card .alca-btn{min-width:0;flex:1 1 auto}
.alca-side-card .alca-reply{margin-top:calc(var(--s2) * -1)}
.alca-side-card__more a{display:inline-flex;align-items:center;gap:var(--s3);min-height:44px;color:var(--ink);text-decoration:none;font-weight:500}
/* cards: index and related */
.alca-acards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:1fr;gap:var(--s4)}
.alca-acards li{display:grid;min-width:0}
/* the card: whole surface is the target; lifts with a soft shadow, the art eases in, the title takes an underline; pressed sits back; colour only under reduced motion */
.alca-acard{position:relative;display:grid;align-content:start;gap:var(--s3);padding:0 0 var(--s6);background:var(--white);border:1px solid var(--hair);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:var(--ink);height:100%;transition:transform .2s cubic-bezier(.2,.7,.2,1),box-shadow .2s cubic-bezier(.2,.7,.2,1),border-color .2s var(--ease)}
.alca-acard__art{display:grid;place-items:center;position:relative;aspect-ratio:1200/630;background:var(--field,var(--bg));border-bottom:1px solid var(--hair);overflow:hidden;margin-bottom:var(--s2)}
.alca-acard__art img{width:42%;height:auto;display:block;transform:scale(1);transition:transform .2s cubic-bezier(.2,.7,.2,1)}
.alca-acard__art-label{position:absolute;left:var(--s4);right:var(--s4);bottom:var(--s3);display:flex;justify-content:space-between;font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.alca-acard__meta{display:flex;gap:var(--s2);padding:0 var(--s5);font-size:var(--t-label);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-variant-numeric:tabular-nums}
.alca-acard__meta i{font-style:normal;color:var(--hair-2)}
.alca-acard__t{font-family:var(--serif);font-size:1.5rem;line-height:1.12;letter-spacing:-.02em;color:var(--ink);text-wrap:balance;padding:0 var(--s5);text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:4px;transition:text-decoration-color .2s var(--ease)}
.alca-acard__d{font-size:var(--t-small);line-height:1.5;color:var(--muted);padding:0 var(--s5)}
@media (hover:hover){
  .alca-acard:hover{transform:translateY(-3px);border-color:var(--hair-2);box-shadow:0 18px 40px -22px rgba(22,19,15,.3),0 4px 10px -6px rgba(22,19,15,.08)}
  .alca-acard:hover .alca-acard__art img{transform:scale(1.04)}
  .alca-acard:hover .alca-acard__t{text-decoration-color:var(--ink)}
}
.alca-acard:focus-visible{outline:2px solid var(--ink);outline-offset:2px;transform:translateY(-3px);box-shadow:0 18px 40px -22px rgba(22,19,15,.3)}
.alca-acard:focus-visible .alca-acard__t{text-decoration-color:var(--ink)}
.alca-acard:active{transform:translateY(0);box-shadow:0 6px 16px -12px rgba(22,19,15,.25);transition-duration:.08s}
@media (prefers-reduced-motion:reduce){.alca-acard,.alca-acard__art img,.alca-acard__t{transition:none}.alca-acard:hover,.alca-acard:focus-visible,.alca-acard:active{transform:none;box-shadow:none}.alca-acard:hover .alca-acard__art img{transform:none}.alca-acard:hover,.alca-acard:focus-visible{border-color:var(--ink)}}
.alca-more{margin-top:var(--s10);padding-top:var(--s8);border-top:1px solid var(--ink)}
.alca-more__head{display:grid;gap:var(--s3);margin-bottom:var(--s6)}
.alca-more__head h2{font-family:var(--serif);font-weight:400;font-size:var(--t-h2);letter-spacing:-.02em;line-height:1.05}
/* the index hero: text left, the topics right on wide screens */
.alca-phero--split{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s7);text-align:left;justify-items:start;max-width:none} /* the split hero spans the section: the text column then holds the two buttons side by side like every other hero */
.alca-phero--split .alca-phero__text{display:grid;gap:var(--s5);justify-items:start;max-width:none}
.alca-topics ul{list-style:none;margin:var(--s3) 0 0;padding:0;display:grid;gap:2px;width:100%}
.alca-topics a{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);min-height:44px;padding:0 var(--s3);border-radius:10px;color:var(--t-dark);text-decoration:none;font-size:var(--t-small);border-bottom:1px solid var(--hair-d);white-space:nowrap}
.alca-topics a .alca-num{color:var(--m-dark)}
.alca-topics a:hover{background:var(--dark-2);color:#fff}
.alca-topics a[aria-current]{color:#fff;font-weight:500;border-color:var(--hair-d2)}
.alca-topics a:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
/* below 1024 the topics are a chip row that scrolls sideways, with an edge fade; the selected chip is scrolled into view by alca.js */
@media (max-width:1023px){
  .alca-topics{width:100%;margin-top:var(--s5)}
  .alca-topics ul{display:flex;gap:var(--s2);overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:2px var(--s5) 6px;margin:var(--s3) calc(var(--s5) * -1) 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--s5),#000 calc(100% - var(--s7)),transparent);mask-image:linear-gradient(90deg,transparent,#000 var(--s5),#000 calc(100% - var(--s7)),transparent);-webkit-overflow-scrolling:touch}
  .alca-topics ul::-webkit-scrollbar{display:none}
  .alca-topics li{flex:none;scroll-snap-align:start}
  .alca-topics a{min-height:40px;padding:0 var(--s4);border:1px solid var(--hair-d2);border-radius:12px;gap:var(--s2);background:transparent}
  .alca-topics a[aria-current]{background:#fff;color:var(--ink);border-color:#fff}
  .alca-topics a[aria-current] .alca-num{color:var(--muted)}
}
@media (min-width:1024px){.alca-phero--split{grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:var(--s10);align-items:start}.alca-phero__aside{padding-top:var(--s7)}}
@media (max-width:767px){.alca-phero--split{text-align:center;justify-items:center}.alca-phero--split .alca-phero__text{justify-items:center}}
.alca-articles__empty{display:grid;gap:var(--s4);justify-items:start;padding:var(--s6);background:var(--white);border:1px solid var(--hair-2);border-radius:var(--radius)}
.alca-articles__empty .alca-lede{max-width:52ch}
.alca-articles__empty .alca-actions{display:flex;flex-wrap:wrap;gap:var(--s3)}
.alca-articles__more{margin-top:var(--s2)}
/* the index */
.alca-articles{display:grid;gap:var(--s6)}
.alca-articles__h{font-family:var(--serif);font-weight:400;font-size:var(--t-h3);letter-spacing:-.02em;margin-top:var(--s2)}
.alca-articles__filter ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2)}
.alca-articles__filter a{display:inline-flex;align-items:center;min-height:40px;padding:0 var(--s4);border-radius:12px;border:1px solid var(--hair-2);background:var(--bg);color:var(--ink);text-decoration:none;font-size:var(--t-small);font-weight:500;transition:border-color .15s var(--ease),background-color .15s var(--ease)}
.alca-articles__filter a:hover{border-color:var(--ink);background:var(--white)}
.alca-articles__filter a[aria-current]{background:var(--ink);color:#fff;border-color:var(--ink)}
.alca-articles__filter a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.alca-pages ol{list-style:none;margin:0;padding:0;display:flex;gap:var(--s2)}
.alca-pages a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:12px;border:1px solid var(--hair-2);color:var(--ink);text-decoration:none;font-variant-numeric:tabular-nums}
.alca-pages a[aria-current]{background:var(--ink);color:#fff;border-color:var(--ink)}
@media (min-width:768px){
  .alca-acards--index,.alca-acards--3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1024px){
  .alca-article{grid-template-columns:minmax(0,1fr) 320px;column-gap:var(--s9);align-items:start}
  .alca-article__side{position:sticky;top:calc(104px + var(--s5))}
  .alca-acards--index,.alca-acards--3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:767px){
  .alca-article-wrap{padding-top:var(--s6)}
  .alca-article__body{font-size:1.0625rem;line-height:1.65}
  .alca-article__talk{padding:var(--s6) var(--s5)}
  .alca-article__talk .alca-btn,.alca-side-card .alca-btn{width:100%}
}
