/*
Theme Name:   Casa Baldi (Hello Elementor Child)
Template:     hello-elementor
Description:  Child theme for Studio Casa Baldi — Chidori Creative Studio.
Author:       Chidori Creative Studio
Version:      1.0.0
Text Domain:  casabaldi
*/

/* ---------- Design tokens (from site.css) ---------- */
:root{
  --paper:#F7F7F5; --ink:#141314; --bordeaux:#840317; --sage:#D1CFAA; --sabbia:#E7E2DE;
  --paper-pure:#FFFFFF;
  --line: color-mix(in srgb, var(--ink) 14%, transparent);
  --line-strong: color-mix(in srgb, var(--ink) 30%, transparent);
  --muted: color-mix(in srgb, var(--ink) 52%, var(--paper));
  --bordeaux-tint: color-mix(in srgb, var(--bordeaux) 7%, var(--paper));
  --ff-display:"Rokkitt", Georgia, serif;
  --ff-sans:"Raleway", "Helvetica Neue", Arial, sans-serif;
}
body.ported{ background:var(--paper); color:var(--ink); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body.ported em{ font-style:normal; }
html{ scroll-behavior:smooth; }

/* ---------- Neutralise Hello Elementor reset (playbook §7) ---------- */
body.ported figcaption{ color:inherit; font-size:inherit; font-style:normal; font-weight:inherit; line-height:inherit; }
body.ported small{ font-size:inherit; }
body.ported a{ color:inherit; text-decoration:none; }
body.ported button, body.ported input, body.ported optgroup, body.ported select, body.ported textarea{ font-size:inherit; line-height:normal; border-radius:0; }

/* ---------- Shared utility ---------- */
.cb-eyebrow, .cb-eyebrow .elementor-heading-title{ font-family:var(--ff-sans); font-size:13px; font-weight:700; letter-spacing:.4em; text-transform:uppercase; color:var(--bordeaux); }


/* ============================================================
   ELEMENTOR NORMALISATION
   ============================================================ */
body.ported .elementor-heading-title{ color:inherit; font-family:inherit; font-weight:inherit; font-size:inherit; line-height:inherit; letter-spacing:inherit; }
body.ported .elementor-widget-text-editor{ color:inherit; font-family:inherit; font-size:inherit; line-height:inherit; }
body.ported .e-con{ --padding-top:0px; --padding-right:0px; --padding-bottom:0px; --padding-left:0px; --gap:0px; --row-gap:0px; --column-gap:0px; --margin-block-start:0px; --margin-block-end:0px; }
body.ported .elementor-widget:not(:last-child){ margin-block-end:0; }
body.ported .elementor-widget-image img{ display:block; }
.elementor-editor-active .reveal{ opacity:1 !important; transform:none !important; }

/* ============================================================
   HEADER (Theme Builder) — .site-nav
   ============================================================ */
body.ported .elementor-location-header{ position:fixed; top:0; left:0; right:0; z-index:40; }
body.admin-bar.ported .elementor-location-header{ top:32px; }
@media (max-width:782px){ body.admin-bar.ported .elementor-location-header{ top:46px; } }
body.ported .e-con.site-nav{ flex-direction:row; flex-wrap:nowrap; justify-content:space-between; align-items:center;
  padding:22px clamp(22px,4vw,72px); transition:background .4s ease, padding .4s ease, box-shadow .4s ease; }
body.ported .e-con.site-nav.red{ background:var(--bordeaux); }
body.ported .e-con.site-nav.solid{ background:var(--bordeaux); box-shadow:0 1px 0 rgba(0,0,0,.2); padding-top:13px; padding-bottom:13px; }
body.ported .site-nav .brand{ width:auto; }
body.ported .site-nav .brand img{ width:clamp(140px,12vw,184px); height:auto; transition:width .4s ease; }
body.ported .site-nav.solid .brand img{ width:clamp(120px,10vw,158px); }

/* nav links (header + home) */
body.ported .cb-nav .elementor-nav-menu--main .elementor-nav-menu{ display:flex; gap:38px; align-items:center; }
body.ported .cb-nav .elementor-nav-menu--main .elementor-item{ position:relative; padding:6px 0 !important; margin:0;
  font-family:var(--ff-sans); font-size:13px; font-weight:600; letter-spacing:.26em; text-transform:uppercase;
  color:var(--paper); transition:color .3s ease; }
body.ported .cb-nav .elementor-nav-menu--main .elementor-item::after{ content:''; position:absolute; left:0; bottom:0; height:1.5px; width:0;
  background:currentColor; opacity:1 !important; transition:width .42s cubic-bezier(.2,.7,.2,1); }
body.ported .cb-nav .elementor-nav-menu--main .elementor-item:hover{ color:var(--ink); }
body.ported .cb-nav .elementor-nav-menu--main .elementor-item:hover::after{ width:100%; }
body.ported .cb-nav .elementor-nav-menu--main .elementor-item.elementor-item-active::after{ width:100%; }
body.ported .site-nav.solid .cb-nav .elementor-item:hover::after,
body.ported .site-nav.solid .cb-nav .elementor-item.elementor-item-active::after{ background:var(--sage); }
body.ported .cb-nav .elementor-nav-menu--main .elementor-item-active{ color:var(--paper); }

/* mobile toggle + full-screen panel (≤820px, like the source) */
body.ported .cb-nav .elementor-menu-toggle{ position:relative; z-index:70; background:none; padding:8px; color:var(--paper); font-size:26px; }
body.ported .cb-nav .elementor-menu-toggle svg{ fill:var(--paper); }
body.ported .cb-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container{ position:fixed; inset:0; z-index:60; margin:0 !important;
  max-height:none !important; height:100vh; transform:translateX(100%) !important; transform-origin:center; transition:transform .5s cubic-bezier(.2,.7,.2,1) !important;
  background:rgba(20,19,20,.97); display:flex; align-items:center; justify-content:center; }
body.ported .cb-nav .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown.elementor-nav-menu__container{ transform:none !important; }
body.ported .cb-nav .elementor-nav-menu--dropdown .elementor-nav-menu{ display:flex; flex-direction:column; gap:28px; background:none; }
body.ported .cb-nav .elementor-nav-menu--dropdown .elementor-item{ background:none !important; color:var(--paper) !important; justify-content:center;
  font-family:var(--ff-sans); font-size:18px; font-weight:600; letter-spacing:.28em; text-transform:uppercase; padding:6px 0 !important; border:0; }
body.ported .cb-nav .elementor-nav-menu--dropdown .elementor-item-active{ color:var(--bordeaux) !important; }
@media (min-width:821px){
  body.ported .cb-nav .elementor-nav-menu--main{ display:block !important; }
  body.ported .cb-nav .elementor-menu-toggle,
  body.ported .cb-nav .elementor-nav-menu--dropdown{ display:none !important; }
}
@media (max-width:820px){
  body.ported .cb-nav .elementor-nav-menu--main{ display:none !important; }
  body.ported .cb-nav .elementor-menu-toggle{ display:flex !important; }
}

/* ============================================================
   FOOTER (Theme Builder) — .site-foot
   ============================================================ */
body.ported .e-con.site-foot{ border-top:1px solid var(--line); background:var(--paper); }
body.ported .e-con.foot-in{ max-width:1300px; width:100%; margin:0 auto; padding:40px clamp(22px,4vw,72px);
  flex-direction:row; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; }
body.ported .foot-in .foot-logo{ width:auto; }
body.ported .foot-in .foot-logo img{ width:170px; height:auto; }
body.ported .e-con.foot-r{ flex-direction:row; gap:30px; align-items:center; flex-wrap:wrap; width:auto; }
body.ported .cb-foot-nav .elementor-nav-menu{ display:flex; gap:30px; flex-wrap:wrap; }
body.ported .cb-foot-nav .elementor-item{ padding:0 !important; font-family:var(--ff-sans); font-size:12px; font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; color:var(--muted); transition:color .3s ease; }
body.ported .cb-foot-nav .elementor-item::after{ display:none; }
body.ported .cb-foot-nav .elementor-item:hover, body.ported .cb-foot-nav .elementor-item-active{ color:var(--bordeaux); }
body.ported .cb-foot-nav .elementor-menu-toggle, body.ported .cb-foot-nav .elementor-nav-menu--dropdown{ display:none !important; }
body.ported .mono, body.ported .mono .elementor-heading-title{ font-family:"Courier New",monospace; font-size:12px; letter-spacing:.06em; color:var(--muted); text-transform:uppercase; }

/* ============================================================
   SHARED COMPONENTS
   ============================================================ */
body.ported .eyebrow, body.ported .eyebrow .elementor-heading-title{ font-family:var(--ff-sans); font-size:13px; font-weight:700; letter-spacing:.4em; text-transform:uppercase; color:var(--bordeaux); }

/* page hero */
body.ported .e-con.phero{ position:relative; min-height:52svh; flex-direction:column; justify-content:flex-end; overflow:hidden;
  color:var(--paper); padding:132px clamp(22px,4vw,72px) clamp(36px,5vw,60px); background-color:var(--bordeaux); }
body.ported .e-con.phero.tall{ min-height:62svh; }
body.ported .e-con.phero::after{ content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(to bottom, rgba(20,19,20,.12) 0%, transparent 40%, rgba(20,19,20,.4) 100%); }
body.ported .e-con.phero > .e-con, body.ported .e-con.phero > .elementor-widget{ position:relative; z-index:2; }
body.ported .e-con.phero .inner{ max-width:1300px; width:100%; margin:0 auto; }
body.ported .e-con.meta{ flex-direction:row; gap:30px; flex-wrap:wrap; align-items:center; margin-bottom:24px; width:auto; }
body.ported .pill, body.ported .pill .elementor-heading-title{ font-size:11px; font-weight:600; letter-spacing:.28em; text-transform:uppercase;
  color:color-mix(in srgb,var(--paper) 78%, transparent); display:flex; align-items:center; gap:12px; }
body.ported .pill .elementor-heading-title::before{ content:''; width:6px; height:6px; background:var(--bordeaux); border-radius:50%; flex:none; }
body.ported .phero h1{ font-family:var(--ff-display); font-weight:500; margin:0; font-size:clamp(52px,8vw,128px); line-height:.92;
  letter-spacing:-.025em; text-shadow:0 4px 50px rgba(0,0,0,.4); }
body.ported .phero h1 em{ font-weight:400; color:var(--bordeaux); }
body.ported .phero .lead{ margin-top:28px; max-width:60ch; font-size:clamp(16px,1.4vw,21px); line-height:1.7; color:color-mix(in srgb,var(--paper) 90%, transparent); }
body.ported .phero .lead p{ margin:0; }
body.ported .e-con.phero.light{ background-color:var(--paper-pure); background-image:none; color:var(--ink); border-bottom:1px solid var(--line); }
body.ported .e-con.phero.light::after{ display:none; }
body.ported .phero.light h1{ text-shadow:none; }
body.ported .phero.light .pill, body.ported .phero.light .pill .elementor-heading-title{ color:var(--muted); }
body.ported .phero.light .lead{ color:color-mix(in srgb,var(--ink) 78%, var(--paper-pure)); }

/* section wrappers */
body.ported .e-con.wrap{ max-width:1300px; width:100%; margin:0 auto; padding:0 clamp(22px,4vw,72px); }
body.ported .e-con.band{ padding:clamp(60px,8vw,120px) 0; }
body.ported .e-con.band.dark{ background:var(--ink); color:var(--paper); }
body.ported .e-con.band.sage{ background:var(--sabbia); }

body.ported .e-con.sec-head{ flex-direction:row; align-items:flex-end; justify-content:space-between; gap:30px; flex-wrap:wrap; margin-bottom:clamp(34px,4vw,56px); }
body.ported .sec-head > .e-con{ width:auto; }
body.ported .sec-head .eyebrow{ margin-bottom:14px; }
body.ported .sec-head h2{ font-family:var(--ff-display); font-weight:500; font-size:clamp(30px,4vw,58px); line-height:1.02; letter-spacing:-.018em; margin:0; max-width:18ch; }
body.ported .sec-head h2 em{ color:var(--bordeaux); }
body.ported .sec-head .note{ font-size:14px; color:var(--muted); max-width:34ch; line-height:1.65; }
body.ported .sec-head .note p{ margin:0; }
body.ported .band.dark .sec-head .note{ color:color-mix(in srgb,var(--paper) 64%, transparent); }

body.ported .prose p{ font-size:clamp(15px,1.2vw,18px); line-height:1.78; color:color-mix(in srgb,var(--ink) 78%, var(--paper)); margin:0 0 18px; }
body.ported .band.dark .prose p{ color:color-mix(in srgb,var(--paper) 84%, transparent); }
body.ported .prose p:last-child{ margin-bottom:0; }
body.ported .prose .big{ font-family:var(--ff-display); font-weight:400; font-size:clamp(24px,2.6vw,38px); line-height:1.22; letter-spacing:-.01em; color:var(--ink); }
body.ported .band.dark .prose .big{ color:var(--paper); }
body.ported .prose .big em{ color:var(--bordeaux); }

/* buttons — Button widget with class cb-btn (+ light / ghost), optional arrow */
body.ported .cb-btn .elementor-button{ display:inline-flex; align-items:center; gap:14px; padding:18px 34px; border-radius:40px; border:0;
  background:var(--ink); color:var(--paper); font-family:var(--ff-sans); font-size:13px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; line-height:1;
  transition:background .35s ease, transform .35s ease, color .35s ease; }
body.ported .cb-btn .elementor-button:hover{ background:var(--bordeaux); color:var(--paper); transform:translateY(-2px); }
body.ported .cb-btn.arrow .elementor-button::after{ content:''; width:16px; height:16px; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat; }
body.ported .cb-btn.light .elementor-button{ background:var(--paper); color:var(--ink); }
body.ported .cb-btn.light .elementor-button:hover{ background:var(--sage); color:var(--ink); }
body.ported .cb-btn.ghost .elementor-button{ background:transparent; color:var(--ink); box-shadow:inset 0 0 0 1px var(--line-strong); }
body.ported .cb-btn.ghost .elementor-button:hover{ background:var(--ink); color:var(--paper); box-shadow:inset 0 0 0 1px var(--ink); }

/* reveal on scroll */
body.ported .reveal{ opacity:0; transform:translateY(30px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
body.ported .reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ body.ported .reveal{ opacity:1; transform:none; } }

/* CTA band */
body.ported .e-con.cta{ text-align:center; align-items:center; }
body.ported .cta .eyebrow{ margin-bottom:22px; }
body.ported .cta h2{ font-family:var(--ff-display); font-weight:500; font-size:clamp(34px,5.2vw,82px); line-height:1.02; letter-spacing:-.02em; margin:0 auto 34px; max-width:20ch; }
body.ported .cta h2 em{ color:var(--bordeaux); }
body.ported .e-con.btn-row{ flex-direction:row; gap:16px; justify-content:center; flex-wrap:wrap; width:auto; }

/* red-dot cursor */
.cb-dot{ position:fixed; left:0; top:0; z-index:2147483647; width:14px; height:14px; margin:-7px 0 0 -7px; border-radius:50%; background:var(--bordeaux); pointer-events:none; opacity:0; transition:width .2s, height .2s, margin .2s, background-color .2s, opacity .2s; }
.cb-dot.on{ opacity:1; }
.cb-dot.hov{ width:34px; height:34px; margin:-17px 0 0 -17px; background:transparent; box-shadow:inset 0 0 0 1.5px var(--bordeaux); }
html.cb-cursor:not(.elementor-html), html.cb-cursor:not(.elementor-html) *{ cursor:none !important; }

/* ---------- fixes from the Studio comparison ---------- */
body.ported{ line-height:normal; }
body.ported .phero .lead p{ max-width:60ch; }
body.ported .sec-head .note p{ max-width:34ch; }
body.ported .phero .lead p{ margin:0 0 1em; }
body.ported .cb-btn .elementor-button{ line-height:normal; }
body.ported .elementor-nav-menu .elementor-item{ line-height:normal; }
body.ported .elementor-widget-image a{ display:block; }
body.ported .cb-btn .elementor-button-content-wrapper{ min-height:16px; align-items:center; }
body.ported .cb-btn.ghost .elementor-button{ box-shadow:none; border:1px solid var(--line-strong); }
body.ported .cb-btn.ghost .elementor-button:hover{ box-shadow:none; border-color:var(--ink); }
body.ported .cb-btn .elementor-button-content-wrapper{ min-height:17px; }
body.ported .cb-nav .elementor-nav-menu::after, body.ported .cb-home-nav .elementor-nav-menu::after, body.ported .cb-foot-nav .elementor-nav-menu::after{ display:none; content:none; }

/* ============================================================
   MOBILE PARITY (18/10) — differences found at 390 px
   ============================================================ */
/* Hello's own header/footer must never render (home has no Theme Builder header/footer) */
body.ported #site-header, body.ported #site-footer{ display:none !important; }

/* burger = three thin lines like the source, X when open */
body.ported .cb-nav .elementor-menu-toggle, body.ported .cb-home-nav .elementor-menu-toggle{ width:42px; height:34px; padding:8px; font-size:0; box-sizing:border-box;
  background:linear-gradient(currentColor,currentColor) center/26px 2px no-repeat !important; border:0; border-radius:0; }
body.ported .cb-home-nav .elementor-menu-toggle{ width:44px; background-size:28px 2px !important; }
body.ported .cb-nav .elementor-menu-toggle svg, body.ported .cb-home-nav .elementor-menu-toggle svg,
body.ported .cb-nav .elementor-menu-toggle i, body.ported .cb-home-nav .elementor-menu-toggle i{ display:none !important; }
body.ported .cb-nav .elementor-menu-toggle::before, body.ported .cb-nav .elementor-menu-toggle::after,
body.ported .cb-home-nav .elementor-menu-toggle::before, body.ported .cb-home-nav .elementor-menu-toggle::after{ content:''; position:absolute; left:8px; right:8px; height:2px; background:currentColor; transition:transform .3s; }
body.ported .cb-nav .elementor-menu-toggle::before, body.ported .cb-home-nav .elementor-menu-toggle::before{ top:8px; }
body.ported .cb-nav .elementor-menu-toggle::after, body.ported .cb-home-nav .elementor-menu-toggle::after{ top:24px; }
body.ported .cb-nav .elementor-menu-toggle.elementor-active, body.ported .cb-home-nav .elementor-menu-toggle.elementor-active{ background-size:0 2px !important; }
body.ported .elementor-menu-toggle.elementor-active::before{ transform:translateY(8px) rotate(45deg); }
body.ported .elementor-menu-toggle.elementor-active::after{ transform:translateY(-8px) rotate(-45deg); }

/* home: no entrance animation on the menu widget on phones (as the source) — keeps toggle and panel fixed to the screen */
@media (max-width:767px){ body.ported .cb-home-nav.anim{ animation:none !important; opacity:1 !important; transform:none !important; } }

/* project hero: the scroll cue sits out of the flow */
body.ported .e-con.phero > .e-con.scrollcue{ position:absolute; }

/* footer: links and © share one wrapping row (source .r) */
body.ported .foot-r .cb-foot-nav, body.ported .cb-foot-nav .elementor-nav-menu--main, body.ported .cb-foot-nav .elementor-nav-menu--main > .elementor-nav-menu{ display:contents !important; }

/* project gallery note: 13 px, 34ch (also when the text has no <p>) */
body.ported .proj-sh .note{ font-size:13px; line-height:1.6; max-width:34ch !important; }

/* contatti: social icons aligned left */
body.ported .socials .elementor-social-icons-wrapper{ justify-content:flex-start; }
/* project hero lead: source <p> keeps its 1em bottom margin (dynamic text has no <p>) */
body.ported .phero.proj .elementor-widget.lead{ margin-bottom:1em; }
/* home: the brand is centred alone on phones (menu lives in the panel) */
@media (max-width:767px){ body.ported .e-con.cb-home .e-con.frame{ gap:0; } }
/* gallery: no top margin, so the first column aligns with the others in multi-column layout */
body.ported .cb-gallery .gallery .gallery-item{ margin:0 40px 18px !important; }

/* ============================================================
   COOKIE BANNER (Complianz) — brand styling
   ============================================================ */
.cmplz-cookiebanner{ --cmplz_banner_background_color:var(--paper-pure); --cmplz_banner_border_color:var(--line); --cmplz_banner_border_width:1px; --cmplz_banner_border_radius:0;
  --cmplz_text_color:color-mix(in srgb,var(--ink) 78%,var(--paper-pure)); --cmplz_hyperlink_color:var(--bordeaux); --cmplz_text_font_size:13px;
  --cmplz_button_accept_background_color:var(--ink); --cmplz_button_accept_border_color:var(--ink); --cmplz_button_accept_text_color:var(--paper);
  --cmplz_button_deny_background_color:var(--ink); --cmplz_button_deny_border_color:var(--ink); --cmplz_button_deny_text_color:var(--paper);
  --cmplz_button_settings_background_color:transparent; --cmplz_button_settings_border_color:var(--line-strong); --cmplz_button_settings_text_color:var(--ink);
  --cmplz_button_border_radius:40px; --cmplz_category_header_always_active_color:var(--bordeaux); --cmplz_slider_active_color:var(--bordeaux); }
.cmplz-cookiebanner.cmplz-show{ font-family:var(--ff-sans); box-shadow:0 18px 50px rgba(20,19,20,.16); }
.cmplz-cookiebanner .cmplz-title{ font-family:var(--ff-display); font-weight:500; font-size:20px; letter-spacing:-.01em; color:var(--ink); }
.cmplz-cookiebanner .cmplz-message{ line-height:1.65; }
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn{ font-family:var(--ff-sans) !important; font-size:11px !important; font-weight:600; letter-spacing:.18em !important; text-transform:uppercase; height:auto; min-height:44px; padding:12px 18px;
  transition:background .35s ease, color .35s ease, border-color .35s ease; }
.cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover, .cmplz-cookiebanner .cmplz-btn.cmplz-deny:hover{ background:var(--bordeaux); border-color:var(--bordeaux); }
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences:hover, .cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences:hover{ background:var(--ink); border-color:var(--ink); color:var(--paper); }
.cmplz-cookiebanner .cmplz-close{ color:var(--ink); opacity:.7; } .cmplz-cookiebanner .cmplz-close svg{ width:14px; height:14px; }
.cmplz-cookiebanner .cmplz-close:hover{ opacity:1; color:var(--bordeaux); }
.cmplz-cookiebanner .cmplz-links a, .cmplz-cookiebanner .cmplz-link{ font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; text-decoration:none; color:var(--bordeaux); }
.cmplz-cookiebanner .cmplz-category{ background:var(--paper); border-radius:0; }
.cmplz-cookiebanner .cmplz-category .cmplz-category-title{ font-weight:600; color:var(--ink); }
#cmplz-manage-consent .cmplz-manage-consent{ font-family:var(--ff-sans); font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; background:var(--ink); color:var(--paper); border-radius:0; }

/* ============================================================
   LEGAL / PLAIN PAGES (no Elementor layout: Cookie Policy, Privacy…)
   ============================================================ */
body.ported:not(.elementor-page) main#content.site-main{ max-width:860px; margin:0 auto; padding:calc(120px + clamp(48px,6vw,90px)) clamp(22px,4vw,72px) clamp(70px,8vw,120px); }
body.ported:not(.elementor-page) main#content .page-header{ margin:0 0 clamp(30px,4vw,48px); padding-bottom:clamp(24px,3vw,36px); border-bottom:1px solid var(--line); }
body.ported:not(.elementor-page) main#content .entry-title{ font-family:var(--ff-display); font-weight:400; font-size:clamp(40px,5.2vw,72px); line-height:1; letter-spacing:-.02em; color:var(--ink); margin:0; }
body.ported:not(.elementor-page) .page-content{ font-size:15px; line-height:1.75; color:color-mix(in srgb,var(--ink) 80%,var(--paper)); }
body.ported:not(.elementor-page) .page-content h2{ font-family:var(--ff-display); font-weight:500; font-size:clamp(24px,2.4vw,32px); line-height:1.15; color:var(--ink); margin:2.2em 0 .6em; }
body.ported:not(.elementor-page) .page-content h3{ font-family:var(--ff-display); font-weight:500; font-size:clamp(19px,1.7vw,22px); color:var(--ink); margin:1.6em 0 .4em; }
body.ported:not(.elementor-page) .page-content p, body.ported:not(.elementor-page) .page-content ul{ margin:0 0 1em; }
body.ported:not(.elementor-page) .page-content a{ color:var(--bordeaux); text-decoration:underline; text-underline-offset:3px; }
body.ported:not(.elementor-page) .page-content a:hover{ color:var(--ink); }
body.ported .cmplz-document details, body.ported .cmplz-document .cmplz-dropdown{ border:1px solid var(--line); background:var(--paper-pure); margin:0 0 12px; }
body.ported .cmplz-document summary{ padding:14px 18px; cursor:pointer; font-weight:600; color:var(--ink); }
body.ported .cmplz-document table{ width:100%; border-collapse:collapse; font-size:13px; }
body.ported .cmplz-document th, body.ported .cmplz-document td{ text-align:left; padding:8px 10px; border-top:1px solid var(--line); vertical-align:top; }
@media (max-width:820px){ body.ported:not(.elementor-page) main#content.site-main{ padding-top:calc(105px + 40px); } }
body.ported:not(.elementor-page) main#content .page-header .entry-title, body.ported:not(.elementor-page) main#content .page-content{ padding-left:0; padding-right:0; }
body.ported:not(.elementor-page) main#content .page-header, body.ported:not(.elementor-page) main#content .page-content{ max-width:none; width:auto; }

/* footer legal links + form privacy note */
body.ported .site-foot .mono .cb-legal a{ color:inherit; text-decoration:none; transition:color .3s ease; }
body.ported .site-foot .mono .cb-legal a:hover{ color:var(--bordeaux); }
body.ported .cb-form-privacy{ margin:16px 0 0; font-size:12px; line-height:1.6; color:var(--muted); }
body.ported .cb-form-privacy a{ color:var(--bordeaux); text-decoration:underline; text-underline-offset:2px; }

/* ============================================================
   404 (rendered from functions.php)
   ============================================================ */
body.ported .cb-404{ background:var(--paper-pure); }
body.ported .cb-404-hero{ position:relative; overflow:hidden; min-height:min(78svh,760px); display:flex; align-items:flex-end;
  padding:calc(120px + clamp(60px,8vw,120px)) clamp(22px,4vw,72px) clamp(56px,7vw,100px); border-bottom:1px solid var(--line); }
body.ported .cb-404-inner{ position:relative; z-index:2; max-width:1300px; width:100%; margin:0 auto; }
body.ported .cb-404 .eyebrow{ display:inline-block; margin-bottom:26px; }
body.ported .cb-404 h1{ font-family:var(--ff-display); font-weight:400; font-size:clamp(46px,7vw,112px); line-height:.95; letter-spacing:-.025em; color:var(--ink); margin:0; }
body.ported .cb-404 h1 em{ font-style:normal; color:var(--bordeaux); }
body.ported .cb-404-lead{ margin:30px 0 0; max-width:52ch; font-size:clamp(16px,1.4vw,20px); line-height:1.7; color:color-mix(in srgb,var(--ink) 78%,var(--paper-pure)); }
body.ported .cb-404-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:40px; }
body.ported .cb-404-num{ position:absolute; right:clamp(10px,4vw,72px); bottom:-.12em; z-index:1; font-family:var(--ff-display); font-weight:300;
  font-size:clamp(160px,30vw,460px); line-height:1; letter-spacing:-.05em; color:var(--bordeaux-tint); pointer-events:none; user-select:none; }
@media (max-width:620px){ body.ported .cb-404-actions .cb-btn, body.ported .cb-404-actions .elementor-button{ width:100%; justify-content:center; } }
body.ported.cb-404-page main#content.site-main{ max-width:none; margin:0; padding:0; }
@media (max-width:620px){ body.ported .cb-404-num{ top:118px; bottom:auto; right:12px; font-size:130px; } }
