/* ============================================================
   Coolon — Shared design system (hero-matched redesign)
   Loaded LAST on every page so it overrides each page's inline
   styles. Recolors the legacy palette toward the hero's
   navy / cream / steel / teal language and adds the fixed
   left rail + circular menu orb + overlay nav.
   Content and pricing are unchanged.
   ============================================================ */

/* ---- Palette remap: shift the red accent to steel-blue ---- */
:root{
  --vermilion:      #2f6d9e;
  --vermilion-deep: #244f73;
  --cyan:           #2f6d9e;
  /* rail / chrome tokens */
  --cx-rail:   156px;
  --cx-cream:  #f4efe6;
  --cx-navy:   #1c2c47;
  --cx-navy-2: #20304d;
  --cx-teal:   #6d8c9c;
  --cx-steel:  #2f6d9e;
  --cx-ink:    #23211d;
}

/* ---- Hide the legacy top header (replaced by the rail chrome) ---- */
.site-header{ display:none !important; }

/* ===== Left fixed rail ===== */
.cx-rail{ position:fixed; top:0; left:0; bottom:0; width:var(--cx-rail); background:var(--cx-cream); z-index:150; display:flex; flex-direction:column; box-shadow:1px 0 0 rgba(0,0,0,.07); }
.cx-rail__brand{ padding:28px 0 22px; text-align:center; display:block; }
.cx-rail__name{ display:block; font-family:'Cormorant Garamond',serif; font-size:30px; font-weight:600; color:var(--cx-ink); line-height:1; }
.cx-rail__tag{ display:block; margin-top:7px; font-family:'Inter',sans-serif; font-size:8.5px; letter-spacing:.32em; color:#6b6256; text-transform:uppercase; }
.cx-rail__nav{ flex:1; writing-mode:vertical-rl; display:flex; flex-direction:row; align-items:center; justify-content:center; gap:9px; padding:14px 0; }
.cx-rail__nav a{ font-family:'Shippori Mincho',serif; font-size:13px; font-weight:600; letter-spacing:.08em; color:var(--cx-ink); transition:color .3s; text-decoration:none; }
.cx-rail__nav a:hover{ color:var(--cx-steel); }
.cx-rail__slash{ color:#bdb4a3; font-size:10px; }
.cx-rail__contact{ background:var(--cx-navy); color:#fff; padding:26px 0 24px; display:flex; flex-direction:column; align-items:center; gap:12px; transition:background .3s; text-decoration:none; }
.cx-rail__contact:hover{ background:#243760; }
.cx-rail__mail{ width:44px; height:44px; border:1px solid rgba(244,239,230,.5); border-radius:50%; display:flex; align-items:center; justify-content:center; }
.cx-rail__mail svg{ width:18px; height:18px; }
.cx-rail__contact-label{ font-family:'Inter',sans-serif; font-size:10px; letter-spacing:.3em; }

/* ===== Orb (hamburger) ===== */
.cx-orb{ position:fixed; top:24px; right:30px; width:62px; height:62px; border-radius:50%; background:var(--cx-navy-2); border:none; cursor:pointer; z-index:160; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; transition:background .3s; }
.cx-orb:hover{ background:#2a3d61; }
.cx-orb span{ width:22px; height:1.6px; background:var(--cx-cream); display:block; transition:transform .35s, opacity .25s; }
#siteHeader.nav-open .cx-orb{ background:#2a3d61; }
#siteHeader.nav-open .cx-orb span:nth-child(1){ transform:translateY(6.6px) rotate(45deg); }
#siteHeader.nav-open .cx-orb span:nth-child(2){ opacity:0; }
#siteHeader.nav-open .cx-orb span:nth-child(3){ transform:translateY(-6.6px) rotate(-45deg); }

/* ===== Full-screen overlay nav ===== */
#mainNav.cx-overlay{ position:fixed; inset:0; background:rgba(24,38,63,.975); display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transform:none; transition:opacity .42s ease, visibility .42s; z-index:158; padding:0; backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); }
#siteHeader.nav-open #mainNav.cx-overlay{ opacity:1; visibility:visible; }
#mainNav.cx-overlay ul{ display:flex; flex-direction:column; gap:2px; list-style:none; text-align:center; max-width:none; width:auto; margin:0; padding:0; }
#mainNav.cx-overlay li{ width:auto; }
#mainNav.cx-overlay a{ font-family:'Cormorant Garamond',serif; font-weight:500; font-size:clamp(26px,3.4vw,42px); line-height:1.2; letter-spacing:.04em; color:#ede7db; text-transform:none; padding:6px 18px; display:inline-block; transition:color .3s, letter-spacing .3s; text-decoration:none; }
#mainNav.cx-overlay a::before{ display:none; content:none; }
#mainNav.cx-overlay a:hover, #mainNav.cx-overlay a.active{ color:#8fb6cf; letter-spacing:.1em; }

/* ===== Rail offset for page content ===== */
@media(min-width:1024px){ body{ padding-left:var(--cx-rail); } }

/* ===== Mobile: rail collapses to a top bar ===== */
@media(max-width:1023px){
  .cx-rail{ flex-direction:row; bottom:auto; width:100%; height:62px; align-items:center; padding:0 18px; box-shadow:0 1px 0 rgba(0,0,0,.07); }
  .cx-rail__brand{ padding:0; text-align:left; }
  .cx-rail__name{ font-size:24px; }
  .cx-rail__tag{ margin-top:2px; }
  .cx-rail__nav, .cx-rail__contact{ display:none; }
  .cx-orb{ top:13px; right:18px; width:46px; height:46px; gap:4px; }
  .cx-orb span{ width:18px; }
}
