/* ===== base ===== */
:root{--ink:#707070;--dark:#202020;--blue:#2c6db3;--sky:#6ec1e4;--red:#a52c2c;--gold:#c9a65b;--navy:#12122b;--line:#e3e6ea;--soft:#f6f7f9}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Assistant,Arial,sans-serif;font-size:1.0625rem;line-height:1.8;color:var(--ink);background:#fff}
img{max-width:100%;height:auto}
a{color:var(--blue)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
h1,h2,h3{color:var(--dark);line-height:1.25;margin:0}
.skip{position:absolute;inset-inline-start:8px;top:-60px;background:#000;color:#fff;padding:8px 14px;z-index:300}
.skip:focus{top:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ===== header ===== */
.site-header{background:#fff;position:relative;z-index:50}
.hdr{display:flex;align-items:center;gap:18px;min-height:71px;padding:0 15px 0 52px}
.brand{margin-inline-start:auto;display:block}
.brand img{display:block}
nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center}
nav li{position:relative}
nav a{display:block;padding:20px 17px;color:#0274be;text-decoration:none;font-weight:600;font-size:1.0625rem;line-height:1.5}
nav a:hover{color:#014e80}
nav .fa-angle-down{font-size:.7em;margin-inline-start:4px}
.has-sub>ul{display:none;position:absolute;inset-inline-start:0;top:100%;min-width:230px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.18);flex-direction:column;align-items:stretch;padding:6px 0;z-index:60}
.has-sub:hover>ul,.has-sub:focus-within>ul{display:flex}
.has-sub>ul a{padding:8px 18px;font-weight:400;font-size:1rem}
.hdr-cta{margin-inline-start:70px;min-width:120px;background:var(--blue);color:#fff;font-weight:700;font-size:.95rem;padding:8px 22px;text-decoration:none;line-height:1.4;text-align:center}
.hdr-cta:hover{background:#245a96}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:6px;padding:8px 14px;font:inherit;cursor:pointer}

/* ===== home hero ===== */
.hero{position:relative;min-height:782px;background:#222 url(images/hero.jpg) center/cover no-repeat;display:flex}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(#b79595,#251519);opacity:.5}
.hero-in{position:relative;width:100%;display:flex;justify-content:flex-start}
.hero-col{width:50%;min-width:320px;padding:10px 0 60px 0;display:flex;flex-direction:column;align-items:flex-start}
.hero h1{font-size:clamp(2.4rem,4.5vw,3.625rem);font-weight:600;color:#200606;line-height:1.3;padding-inline-end:10px;max-width:11em}
.red3{height:3px;width:302px;max-width:90%;background:var(--red);margin:14px 0 0}
.hero-text{margin:auto 0 0;padding:0 10px;color:#fff;font-size:clamp(1.3rem,2.3vw,1.8rem);line-height:1.85;text-align:center;width:100%}
.hero-text strong{font-weight:700}

/* ===== practice cards ===== */
.practice{padding:50px 20px 20px}
.sec-h{font-size:2.5rem;font-weight:700;text-align:center}
.scale-div{display:flex;align-items:center;justify-content:center;gap:10px;margin:8px 0 34px;color:#3a3a3a}
.scale-div span{display:block;width:112px;height:3px;background:var(--red)}
.pgrid{max-width:1050px;margin:0 auto 50px;display:grid;grid-template-columns:repeat(6,1fr);gap:70px}
.pcard{grid-column:span 2;background:#fff;padding:36px 44px 40px;text-align:center;text-decoration:none;box-shadow:4px 8px 16px rgba(0,0,0,.4);transition:transform .15s}
.pcard:nth-child(-n+2){grid-column:span 3}
.pcard:hover{transform:translateY(-4px)}
.pcard i{display:block;font-size:50px;color:var(--sky);margin-bottom:14px}
.pcard h3{font-size:1.25rem;font-weight:700;color:var(--dark);margin:0 0 6px}
.pcard p{margin:0;font-size:.9375rem;line-height:1.85;color:#707070}

/* ===== CTA ===== */
.cta{position:relative;min-height:450px;background:#4a6fb0 url(images/cta-bg.jpg) center/cover no-repeat;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff}
.cta::before{content:"";position:absolute;inset:0;background:linear-gradient(350deg,#969494 0%,#297ff2 100%);opacity:.85}
.cta-in{position:relative;padding:50px 20px}
.cta h2{color:#fff;font-size:clamp(2.3rem,5vw,4.0625rem);font-weight:800}
.cta-div{display:flex;align-items:center;justify-content:center;gap:10px;margin:18px 0 20px;color:#fff}
.cta-div span{display:block;width:112px;height:3px;background:var(--red)}
.cta-gap{height:50px}
.cta p{margin:0 0 10px;font-size:1.25rem;color:#fff}
.cta-btn{display:inline-block;margin-top:14px;background:#000;color:#fff;border:1px solid #fff;border-radius:20px;padding:10px 26px;font-size:.9375rem;font-weight:500;text-decoration:none}
.cta-btn:hover{background:#222}

/* ===== social strip ===== */
.social-strip{padding:20px 0}
.socials{display:flex;gap:18px;justify-content:center}
.socials a{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:1.25rem;text-decoration:none}

/* ===== footer ===== */
.site-footer{position:relative;background:linear-gradient(#4054b2,#6ec1e4);padding:20px 0 40px;color:#fff}
.site-footer::before{content:"";position:absolute;inset:0;background:url(images/footer-bg.jpg) 0 0 no-repeat;opacity:.05}
.ft-inner{position:relative;width:min(1120px,100% - 40px);margin-inline:auto}
.ft-cols{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.2fr;gap:30px;padding:30px 0 20px}
.ft-col h2{font-size:1.875rem;font-weight:600;color:#202020;margin-bottom:14px}
.ft-col ul{list-style:none;margin:0;padding:0}
.ft-col li{margin-bottom:8px;font-size:1rem}
.ft-col a{color:#202020;text-decoration:none}
.ft-col a:hover{text-decoration:underline}
.ft-brand img{display:block;margin-bottom:12px}
.ft-brand p{color:#202020;margin:0 0 12px;font-size:1rem}
.sq{display:flex;gap:2px}
.sq a{width:32px;height:32px;display:grid;place-items:center;color:#fff!important;font-size:.9rem}
.ft-contact i{margin-inline-end:10px;width:18px;text-align:center;color:#fff}
.copy{border-top:1px solid rgba(255,255,255,.35);margin:10px 0 0;padding-top:18px;text-align:center;font-weight:600;font-size:1rem}

/* ===== inner pages ===== */
.banner{position:relative;min-height:176px;background:var(--sky) url(images/banner-bg.jpg) center/cover no-repeat;display:grid;place-items:center;box-shadow:0 8px 14px rgba(0,0,0,.3);z-index:2}
.banner::before{content:"";position:absolute;inset:0;background:var(--sky);opacity:.5}
.banner h1{position:relative;font-size:clamp(2rem,5vw,3.75rem);font-weight:700;text-align:center;padding:20px}
.two-col{width:min(1120px,100% - 40px);margin:50px auto 90px;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:60px;align-items:start}
.content h2{font-size:1.25rem;font-weight:700;margin:1.6rem 0 .6rem}
.content h2:first-child{margin-top:0}
.content h3{font-size:1.1rem;margin:1.2rem 0 .4rem}
.content p,.content li{font-size:1.0625rem;line-height:1.86;color:var(--ink)}
.content p{margin:0 0 1rem}
.content li{margin-bottom:.4rem}
.content ul{padding-inline-start:1.4rem}
.content strong{color:#444}
.content img{max-width:100%}
hr.redline{border:0;border-top:2px solid var(--red);margin:14px 0 22px}
.btn{display:inline-block;padding:10px 24px;border-radius:3px;font-weight:700;text-decoration:none;text-align:center;color:#fff}
.btn-blue{background:var(--blue)}
.rec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:20px 0}
.lectures img{border:0}
.q{font-size:2.5rem;font-weight:700;text-align:center}
.q-sub{font-size:1.25rem;font-weight:700;color:var(--dark);text-align:center;margin:8px 0 18px}
.cform{display:flex;flex-direction:column;gap:14px}
.cform input,.cform textarea{width:100%;font:inherit;font-size:.95rem;padding:11px 12px;border:1px solid #e1e1e1;background:#f5f5f5;border-radius:2px}
.cform button{align-self:center;background:var(--blue);color:#fff;border:0;padding:10px 40px;font:inherit;font-weight:700;cursor:pointer}
.cform button:hover{background:#245a96}
.hp{display:none}
.avail{font-size:2.5rem;font-weight:700;text-align:center;margin:150px 0 14px}
.avail-list{list-style:none;margin:0;padding:0;text-align:center}
.avail-list li{margin-bottom:6px}
.avail-list i{margin-inline-end:12px;color:var(--dark)}
.avail-list a{color:var(--dark);text-decoration:none}

/* ===== about ===== */
.about-bio{position:relative;min-height:810px;background:#fff;overflow:hidden}
.about-bio::before{content:"";position:absolute;inset:0;background:url(images/about-bg.jpg) center/cover no-repeat;opacity:.5}
.about-in{position:relative;width:min(1120px,100% - 40px);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 515px;gap:50px;align-items:start;padding:50px 0}
.about-text p{font-size:1.1875rem;line-height:1.85;color:var(--dark);margin:0 0 1.2rem}
.about-photo{width:100%;height:auto;border-radius:84px;border:3px double #3a3a3a;display:block}
.greviews{padding:50px 20px 20px;text-align:center}
.big{font-size:clamp(2.2rem,5vw,4.0625rem);font-weight:800}
.gsum{margin:10px 0 24px;color:var(--dark)}
.rate{display:block;font-size:1.5rem}
.stars{color:#f6bb06;font-size:2rem;letter-spacing:2px;line-height:1.2}
.glogo b{font-size:1.9rem;font-weight:700}
.gr-wrap{position:relative;max-width:1250px;margin:0 auto}
.gr-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 4px 14px;scrollbar-width:thin}
.gr{flex:0 0 300px;scroll-snap-align:start;background:#fff;border:1px solid var(--line);border-radius:6px;padding:16px;text-align:start;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.gr-top{display:flex;gap:10px;align-items:center}
.gr-top small{display:block;color:#888;font-size:.8rem}
.gr-g{width:28px;height:28px;display:grid;place-items:center;color:#4285f4}
.gr-stars{color:#f6bb06;margin:6px 0}
.gr-stars i{color:#4285f4;font-size:.8rem}
.gr p{margin:0;font-size:.95rem;line-height:1.6;color:#333}
.gr-prev,.gr-next{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:1.3rem;line-height:1}
.gr-prev{inset-inline-start:-6px}
.gr-next{inset-inline-end:-6px}

/* recommendations carousel + testimonials */
.rec-wrap{margin-bottom:30px}
.rec-track img{flex:0 0 auto;width:min(420px,85vw);height:auto;align-self:center;scroll-snap-align:start;border:1px solid var(--line);border-radius:6px;background:#fff}
.t-stars{color:#f6bb06;font-size:1.3rem;margin:8px 0 0}
.t-stars span{color:#444;font-size:.95rem;margin-inline-start:6px}
.testis{width:min(1120px,100% - 40px);margin:40px auto}
.testi{margin:0;background:#fff;box-shadow:3px 6px 14px rgba(0,0,0,.2);padding:26px 22px;text-align:center}
.testi img{border-radius:50%;object-fit:cover;width:90px;height:90px}
.testi blockquote{margin:10px 0}
.testi p{margin:6px 0;font-size:1rem}
.testi figcaption{font-size:.95rem}
.testis{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}

/* ===== lists / articles / contact ===== */
.thanks{text-align:center;padding:80px 20px;font-size:1.25rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:26px;margin:30px 0 56px}
.card{display:block;background:#fff;box-shadow:3px 6px 14px rgba(0,0,0,.3);padding:30px 24px;text-align:center;text-decoration:none;color:var(--ink)}
.card h3{margin:.4rem 0;font-size:1.25rem}
.card p{margin:0;font-size:1rem}
.ico i{font-size:50px;color:var(--sky)}
.wrap{width:min(1120px,100% - 40px);margin-inline:auto}
.articles{display:grid;gap:22px;margin:40px auto 60px;width:min(1000px,100% - 40px)}
.article-card{display:flex;gap:22px;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.12);overflow:hidden;text-decoration:none;color:var(--ink)}
.article-card img{width:200px;object-fit:cover;flex:none}
.article-card div{padding:16px 20px}
.article-card h3{margin:0 0 6px;font-size:1.25rem}
.article-card p{margin:0 0 6px;font-size:1rem}
.more{color:var(--blue);font-weight:700}
.article-body{width:min(860px,100% - 40px);margin:50px auto 30px}
.article-body h2{font-size:1.5rem;font-weight:700;margin:1.8rem 0 .6rem;color:var(--dark)}
.article-body h3{font-size:1.2rem;margin:1.2rem 0 .4rem}
.article-body p,.article-body li{font-size:1.0625rem;line-height:1.86}
.article-body .sig{margin-top:2rem;font-style:italic;color:#555}
.article-body .small{font-size:.85rem;color:#777}
.art-img{float:left;margin:0 24px 14px 0;max-width:260px}
.article-back{width:min(860px,100% - 40px);margin:0 auto 50px}
.contact-page{width:min(1000px,100% - 40px);margin:50px auto 70px}
.contact-page .lead{font-size:1.4rem;text-align:center;color:var(--dark);font-weight:700}
.contact-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:30px;margin:30px 0}
.contact-cards.two{max-width:640px;margin-inline:auto}
.contact-page h2{text-align:center;font-size:2rem;margin-top:30px}
.center{text-align:center}
.btn-gold{background:var(--gold);color:#1b1304}

@media (max-width:900px){
  .hdr{flex-wrap:wrap;padding:10px 16px;gap:10px}
  .menu-btn{display:block}
  nav{display:none;order:5;width:100%}
  nav.open{display:block}
  nav ul{flex-direction:column;align-items:stretch}
  .has-sub>ul{display:flex;position:static;box-shadow:none;padding-inline-start:16px}
  .hdr-cta{display:none}
  .hero{min-height:560px}
  .hero-col{width:100%}
  .pgrid{grid-template-columns:1fr;gap:28px}
  .pcard,.pcard:nth-child(-n+2){grid-column:auto}
  .ft-cols{grid-template-columns:1fr 1fr}
  .two-col{grid-template-columns:1fr;gap:30px}
  .avail{margin-top:50px}
  .about-in{grid-template-columns:1fr}
  .about-photo{max-width:420px;margin:0 auto}
  .article-card{flex-direction:column}
  .article-card img{width:100%;height:180px}
  .art-img{float:none;display:block;margin:0 0 16px}
}
@media (max-width:560px){.ft-cols{grid-template-columns:1fr}}

/* cookie banner */
.cookie-bar{position:fixed;inset-inline:0;bottom:0;z-index:200;background:#12122b;color:#fff;padding:16px 56px 16px 20px;display:flex;gap:18px;align-items:center;font-size:.95rem;line-height:1.5;box-shadow:0 -4px 18px rgba(0,0,0,.35)}
.cookie-bar p{margin:0;flex:1}
.cookie-bar a{color:#e3c987}
.cookie-ok{background:var(--gold);color:#1b1304;border:0;border-radius:4px;padding:10px 18px;font:inherit;font-weight:700;cursor:pointer}
.cookie-x{position:absolute;top:6px;inset-inline-end:14px;background:none;border:0;color:#fff;font-size:1.2rem;cursor:pointer}
@media (max-width:640px){.cookie-bar{flex-direction:column;align-items:stretch;padding:34px 16px 16px}}

/* accessibility toolbar */
.a11y-fab{position:fixed;inset-inline-start:16px;bottom:84px;z-index:190;width:52px;height:52px;border-radius:50%;border:2px solid #fff;background:var(--blue);color:#fff;cursor:pointer;display:grid;place-items:center;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.a11y-panel{position:fixed;inset-inline-start:16px;bottom:146px;z-index:190;width:min(360px,calc(100vw - 32px));max-height:70vh;overflow:auto;background:#fff;color:#222;border:2px solid var(--blue);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.35);font-size:15px;line-height:1.3}
.a11y-panel[hidden]{display:none}
.a11y-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--blue);color:#fff;position:sticky;top:0}
.a11y-close{background:none;border:1px solid #fff;color:#fff;border-radius:4px;padding:4px 10px;cursor:pointer;font:inherit}
.a11y-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px}
.a11y-grid button,.a11y-link{display:flex;flex-direction:column;gap:2px;text-align:center;justify-content:center;background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:10px 6px;font:inherit;cursor:pointer;color:#222;text-decoration:none}
.a11y-grid button[aria-pressed="true"]{background:var(--blue);color:#fff;border-color:var(--blue)}
.a11y-grid small{color:inherit;opacity:.7;font-size:12px;direction:ltr}
.a11y-alt{display:block;font-size:.85rem;color:#444;background:#ffffcc;padding:2px 6px;margin-top:2px}

/* accessibility modes (applied to <html>) */
.a11y-mono{filter:grayscale(1)}
.a11y-sepia{filter:sepia(1)}
.a11y-invert{filter:invert(1) hue-rotate(180deg)}
.a11y-invert img{filter:invert(1) hue-rotate(180deg)}
.a11y-contrast body,.a11y-contrast .site-header,.a11y-contrast .card,.a11y-contrast .grev,.a11y-contrast .testi,.a11y-contrast .page-head{background:#000!important;color:#fff!important}
.a11y-contrast *{color:#fff!important;border-color:#fff!important}
.a11y-contrast a{color:#6cf!important}
.a11y-bwyellow body,.a11y-bwyellow .site-header,.a11y-bwyellow .card,.a11y-bwyellow .grev,.a11y-bwyellow .testi,.a11y-bwyellow .page-head,.a11y-bwyellow .site-footer{background:#000!important;color:#ff0!important}
.a11y-bwyellow *{color:#ff0!important;border-color:#ff0!important}
.a11y-heads h1,.a11y-heads h2,.a11y-heads h3{outline:3px solid #e91e63;outline-offset:3px;background:#fff3a0!important;color:#000!important}
.a11y-links a{outline:2px solid #e91e63;background:#fff3a0!important;color:#000!important;text-decoration:underline!important}
.a11y-readable body,.a11y-readable *{font-family:Arial,Helvetica,sans-serif!important;letter-spacing:.02em}
.a11y-noanim *,.a11y-noanim *::before,.a11y-noanim *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}

/* ===== Portuguese passport page ===== */
.pt-hero{position:relative;min-height:488px;background:#555 center/cover no-repeat;display:grid;place-items:center;text-align:center;color:#fff}
.pt-hero::before{content:"";position:absolute;inset:0;background:#7a7a7a;opacity:.64}
.pt-hero-in{position:relative;padding:40px 20px}
.pt-hero h1{color:#fff;font-size:clamp(2.2rem,5vw,4.2rem);font-weight:800}
.pt-hero p{font-size:1.6rem;margin:10px 0 0;color:#fff}
.pt-benefits{background:#f6f6f8;padding:40px 20px 60px}
.pt-benefits h2{text-align:center;color:#3f51b5;font-size:clamp(2rem,4vw,2.8rem);font-weight:800;text-shadow:2px 3px 6px rgba(0,0,0,.25);margin-bottom:50px}
.pt-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:30px;text-align:center}
.pt-grid i{font-size:56px;color:#7a7a7a;margin-bottom:14px}
.pt-grid h3{font-size:1.6rem;font-weight:700;margin:0 0 10px}
.pt-grid p{margin:0;font-size:1.0625rem;line-height:1.9}
.cta-dark::before{background:linear-gradient(350deg,#969494 0%,#202020 100%)!important}

/* ===== business card page ===== */
.card-body{background:#f5f5f5;font-family:Assistant,Arial,sans-serif}
.vcard{max-width:312px;margin:0 auto;text-align:center}
.vc-cover{display:block;width:100%;height:214px;object-fit:cover}
.vc-logo{width:102px;height:102px;border-radius:50%;margin-top:-48px;position:relative;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.vcard h1{font-size:1.9rem;font-weight:700;margin:6px 0 0;color:#333}
.vc-sub{margin:0 0 14px;color:#888;font-size:.95rem}
.vc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 8px;padding:0 4px 40px}
.vc-grid a{display:flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none;color:#333;font-weight:700;font-size:.9rem}
.vc-grid i{width:48px;height:48px;border:2px solid var(--c);border-radius:50%;display:grid;place-items:center;color:var(--c);font-size:1.3rem}

/* ===== articles grid (original: 3 columns, picture on top) ===== */
.posts{width:min(1120px,100% - 40px);margin:50px auto 70px;display:grid;grid-template-columns:repeat(3,1fr);gap:60px 36px}
.post{text-align:start}
.post-img{display:block}
.post-img img{width:100%;height:230px;object-fit:cover;display:block}
.post h3{font-size:1.4rem;font-weight:600;line-height:1.45;margin:16px 0 14px}
.post h3 a{color:var(--dark);text-decoration:none}
.post p{margin:0 0 18px;font-size:.95rem;line-height:1.95;color:#555}
.post-more{display:block;width:fit-content;margin:0 auto;border:1px solid #bbb;color:var(--dark);padding:6px 18px;font-size:.9rem;text-decoration:none}
.post-more:hover{background:var(--soft)}

/* ===== single article (original: white card on grey, centered picture) ===== */
.astra-bg{background:#f5f5f5;padding:68px 20px 68px}
.paper{background:#fff;width:min(1200px,100%);margin:0 auto;padding:80px min(113px,6vw) 70px}
.paper h1{font-size:1.875rem;font-weight:400;color:#3a3a3a;text-align:start;margin:0 0 40px}
.paper .feat{display:block;width:300px;max-width:100%;height:auto;margin:0 auto 50px}
.paper-body h2{font-size:1.5rem;font-weight:700;color:var(--dark);margin:1.8rem 0 .7rem}
.paper-body h3{font-size:1.2rem;font-weight:700;color:var(--dark);margin:1.4rem 0 .5rem}
.paper-body p,.paper-body li{font-size:1.0625rem;line-height:1.86;color:var(--ink)}
.paper-body p{margin:0 0 1rem}
.paper-body li{margin-bottom:.4rem}
.paper-body ul{padding-inline-start:1.6rem}
.paper-body .sig{margin-top:2rem;font-style:italic;color:#555}
.paper-body .small{font-size:.85rem;color:#777}

/* ===== contact page (original two columns) ===== */
.contact-2col{width:min(1120px,100% - 40px);margin:60px auto 90px;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:60px;align-items:start}
.contact-2col h2{font-size:2.5rem;font-weight:700;margin:0 0 20px}
.cf-panel{box-shadow:0 0 12px rgba(0,0,0,.22);padding:25px;background:#fff}
.cf-panel .cform input,.cf-panel .cform textarea{background:#fafafa;border:1px solid #eaeaea;font-size:1.0625rem;padding:12.75px}
.cf-panel .cform button{background:#0274be;padding:10px 40px;font-size:1.0625rem}
.ci-col h3{font-size:1.25rem;font-weight:700;margin:0 0 10px;color:var(--dark)}
.avail-list.left{text-align:start}
.avail-list.left li{margin-bottom:6px}
@media (max-width:900px){.posts{grid-template-columns:1fr 1fr}.contact-2col{grid-template-columns:1fr}}
@media (max-width:600px){.posts{grid-template-columns:1fr}}

/* ===== review cards: clamp + read more + published label ===== */
.gr-clamp{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.gr.open .gr-clamp{display:block;-webkit-line-clamp:unset}
.gr-more{display:block;background:none;border:0;color:#777;font:inherit;font-size:.85rem;padding:4px 0;cursor:pointer;text-align:start}
.gr-pub{display:block;margin-top:8px;font-size:.78rem;color:#999}

/* ===== extra accessibility modes ===== */
html.a11y-bigcursor,html.a11y-bigcursor *{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'><path d='M3 2l16 9-7 2 4 8-3 1.5-4-8-5 5z' fill='white' stroke='black' stroke-width='1.2'/></svg>") 4 2,auto!important}
html.a11y-blackcursor,html.a11y-blackcursor *{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'><path d='M3 2l16 9-7 2 4 8-3 1.5-4-8-5 5z' fill='black' stroke='white' stroke-width='1.2'/></svg>") 4 2,auto!important}
html.a11y-reading main{max-width:760px;margin-inline:auto;font-size:1.25em;line-height:2.1;padding-inline:20px}
html.a11y-reading .banner,html.a11y-reading .cta,html.a11y-reading .hero,html.a11y-reading .social-strip,html.a11y-reading .astra-bg{background:#fff!important}
html.a11y-reading main img:not(.feat){display:none}
