/* Riverside Digital Studio - shared stylesheet.
   Base is the homepage stylesheet, order preserved exactly.
   Interior-page rules are appended only where the selector is new,
   so nothing here can override a homepage rule. */

:root{ color-scheme: light;
    --ink:#141b38; --sub:#525b70; --line:#ccd3e2;
    --accent:#0c8a80; --accent-dark:#0a6f67; --accent-soft:#dcf5f0;
    --bg:#e9ecf3; --bg-alt:#e0e4ee; --card:#f7f8fc; --radius:16px;
    --good:#12b76a; --warn:#f79009;
    --footer-bg:#0b1230; --footer-sub:#9aa3c0; --footer-line:#232a45; --footer-chip:#151c33;
    --btn-ink:#ffffff;
    --grad2:#d7f7f2;
    --logo-grad2:#7c6aef;
    --header-bg: rgba(233,236,243,.92);
    --shadow-mega: 0 18px 38px rgba(20,27,56,.14);
    --shadow-chat: 0 20px 50px rgba(20,27,56,.12);
    --shadow-cta: 0 8px 18px rgba(12,138,128,.3);
    --shadow-float: 0 14px 30px rgba(12,138,128,.38);
    --stars-color:#f5a524;
    --focus-ring:#0b1230; --focus-halo:#ffffff;
    --grad-local: linear-gradient(135deg,#2e2599,#6a63e9);
    --grad-eco: linear-gradient(135deg,#008f86,#18e2cb);
    --grad-booking:linear-gradient(135deg,#0c8a80,#7c6aef);
    --grad-ai:linear-gradient(135deg,#3b2c8f,#0c8a80);
    --spotlight-op:.92;
    --spotlight-pin-op:.85;
  }
  :root[data-theme="dark"]{ color-scheme: dark;
    --ink:#eef1fa; --sub:#9aa3c0; --line:#232a45;
    --accent:#2dd4c8; --accent-dark:#5eead4; --accent-soft:#0d2b34;
    --bg:#05060b; --bg-alt:#0b0f1a; --card:#10131f;
    --good:#34d399; --warn:#fbbf24;
    --footer-bg:#030407; --footer-sub:#8a93a6; --footer-line:#1a2130; --footer-chip:#141b29;
    --btn-ink:#04141a;
    --grad2:#132a3a;
    --logo-grad2:#7c6aef;
    --header-bg: rgba(5,6,11,.86);
    --shadow-mega: 0 20px 50px rgba(0,0,0,.55);
    --shadow-chat: 0 30px 70px rgba(0,0,0,.55);
    --shadow-cta: 0 8px 20px rgba(45,212,200,.35);
    --shadow-float: 0 16px 34px rgba(45,212,200,.45);
    --stars-color:#fbbf24;
    --focus-ring:#ffffff; --focus-halo:#05060b;
    --grad-local: linear-gradient(135deg,#18094e,#6a63e9);
    --grad-eco: linear-gradient(135deg,#003f3c,#18e2cb);
    --grad-booking:linear-gradient(135deg,#0f6f68,#6a63e9);
    --grad-ai:linear-gradient(135deg,#241a63,#0f6f68);
    --spotlight-op:.85;
    --spotlight-pin-op:.8;
  }
  *{box-sizing:border-box;}
  img,svg{max-width:100%;}
  img{height:auto;}

  /* Riva */
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
  .chat-head{position:relative;}
  .chat-reset{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:0;
    color:var(--sub);font-size:17px;cursor:pointer;padding:6px;border-radius:8px;line-height:1;}
  .chat-reset:hover{color:var(--accent);background:var(--bg-alt);}
  .chat-body{min-height:250px;max-height:330px;overflow-y:auto;scroll-behavior:smooth;}
  .bubble{animation:rivaIn .22s ease-out;}
  @keyframes rivaIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
  .chat-choices{display:flex;flex-wrap:wrap;gap:7px;padding:0 16px 12px;}
  .chat-choices:empty{padding:0;}
  .chip-btn{background:var(--accent-soft);border:1px solid var(--accent);color:var(--accent-dark);
    padding:8px 13px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;transition:.14s;}
  .chip-btn:hover{background:var(--accent);color:var(--btn-ink);}
  .chat-input input:disabled,.chat-input button:disabled{opacity:.5;cursor:not-allowed;}
  .riva-summary{background:var(--accent-soft);border:1px solid var(--accent);border-radius:12px;
    padding:12px 14px;margin:8px 16px 4px;font-size:13px;line-height:1.6;}
  .riva-summary b{display:block;margin-bottom:6px;color:var(--accent-dark);font-size:11.5px;
    letter-spacing:.06em;text-transform:uppercase;}
  .riva-summary dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:3px 10px;}
  .riva-summary dt{color:var(--sub);}
  .riva-summary dd{margin:0;font-weight:600;}
  /* dual focus ring: a dark core with a light halo (inverted in dark mode) so at least
     one of the two always clears 3:1, including on the teal CTA and the gradient bands.
     No border-radius here - the outline follows each element's own shape. */
  :focus-visible{
    outline:3px solid var(--focus-ring);
    outline-offset:2px;
    box-shadow:0 0 0 7px var(--focus-halo);
  }
  :focus:not(:focus-visible){outline:none;}
  .skip-link:focus-visible{box-shadow:0 0 0 7px var(--focus-halo);}
  .skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--accent);color:var(--btn-ink);
    padding:12px 20px;border-radius:0 0 10px 0;font-weight:700;font-size:14px;text-decoration:none;}
  .skip-link:focus{left:0;}
  main:focus{outline:none;}
  @media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
      transition-duration:.01ms!important;scroll-behavior:auto!important;}
  }
  body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;line-height:1.55;}
  body, header, .cat-card, .case-card, .tier-card, .blog-card, .social-tile, .press-badge, .chatcard, footer, .magnet, .badgechip{
    transition:background-color .25s ease, border-color .25s ease, color .25s ease, box-shadow .25s ease;
  }
  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1160px;margin:0 auto;padding:0 24px;}
  section{padding:70px 0;}
  h1,h2,h3{margin:0;}
  .eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 8px;}

  header{border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--header-bg);backdrop-filter:blur(6px);z-index:50;}
  .navrow{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:1160px;margin:0 auto;gap:16px;}
  .logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;}
  .logo picture,.hero-logo-wrap picture{display:block;line-height:0;}
  .hero-row picture{grid-area:logo;}
  .logo-mark{width:32px;height:32px;object-fit:contain;display:block;}
  .logo-wordmark{height:20px;width:auto;object-fit:contain;display:block;}
  .logo-r-lockup{height:52px;width:auto;object-fit:contain;display:block;position:relative;top:4px;}
  .hero-logo{width:100%;max-width:280px;height:auto;object-fit:contain;display:block;margin:0 auto;}
  nav{flex:1;}
  nav ul{list-style:none;display:flex;gap:26px;margin:0;padding:0;font-size:14px;font-weight:600;color:var(--sub);}
  nav li{position:relative;}
  nav li.has-mega{padding-bottom:16px;margin-bottom:-16px;}
  .mega-trigger{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:none;
    display:inline-flex;align-items:center;gap:5px;font-weight:600;}
  .mega-trigger .caret{font-size:10px;transition:transform .16s;}
  .mega-trigger[aria-expanded="true"] .caret{transform:rotate(180deg);}
  .has-mega:hover .mega,
  .has-mega:focus-within .mega,
  .mega-trigger[aria-expanded="true"] + .mega{display:grid;}
  .mega{display:none;position:absolute;top:100%;left:-40px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-mega);padding:22px;grid-template-columns:repeat(3,1fr);gap:22px 26px;width:660px;z-index:60;}
  .mega-col{display:flex;flex-direction:column;}
  .mega-blog{grid-template-columns:repeat(3,1fr);width:700px;gap:14px;
    left:50%;right:auto;transform:translateX(-50%);max-width:calc(100vw - 48px);}
  .mega-post{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid var(--line);
    border-radius:12px;background:var(--bg-alt);transition:.16s;}
  .mega-post:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-2px);}
  .mega-cat{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-dark);}
  .mega-post b{font-size:13px;line-height:1.35;color:var(--ink);}
  .mega-post small{font-size:11.5px;color:var(--sub);line-height:1.45;font-weight:400;}
  .mega-post .mega-meta{margin-top:auto;padding-top:4px;font-size:11px;color:var(--sub);font-weight:600;}
  .mega-all{grid-column:1/-1;text-align:center;font-size:13px;font-weight:700;
    color:var(--accent-dark)!important;padding:10px!important;border-top:1px solid var(--line);
    border-radius:0!important;margin-top:2px;}
  .mega-all:hover{background:var(--accent-soft)!important;}
  .mega-head{font-size:13px;font-weight:800;color:var(--ink);letter-spacing:-.01em;margin-bottom:2px;}
  .mega-why{font-size:11px;color:var(--sub);margin:0 0 8px;font-weight:400;line-height:1.35;}
  .mega a{display:block;padding:7px 10px;border-radius:8px;font-size:12.5px;color:var(--sub);font-weight:600;}
  .mega a:hover{background:var(--accent-soft);color:var(--accent-dark);}
  .mega small{display:block;font-weight:400;color:var(--sub);font-size:11px;margin-top:2px;}

  .header-actions{display:flex;align-items:center;gap:14px;}
  .theme-toggle{
    width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--card);
    display:flex;align-items:center;justify-content:center;font-size:17px;cursor:pointer;flex-shrink:0;
  }
  .theme-toggle:hover{border-color:var(--accent);}
  .theme-toggle .icon-sun{display:none;}
  .theme-toggle .icon-moon{display:inline-flex;}
  :root[data-theme="dark"] .theme-toggle .icon-sun{display:inline-flex;}
  :root[data-theme="dark"] .theme-toggle .icon-moon{display:none;}

  .cta-btn{background:var(--accent);color:var(--btn-ink);padding:10px 18px;border-radius:999px;font-weight:700;font-size:14px;box-shadow:var(--shadow-cta);border:none;cursor:pointer;}
  .btn-outline{border:1.5px solid var(--line);padding:10px 18px;border-radius:999px;font-weight:700;font-size:14px;}

  /* hero */
  .hero{padding:60px 0 46px;}
  .hero-row{
    display:grid;
    grid-template-columns:280px 1fr 420px;
    grid-template-areas:
      "logo head chat"
      "sub  sub  chat";
    gap:28px 36px;
    align-items:center;
  }
  .hero-logo{grid-area:logo;}
  .hero-row h1{grid-area:head;font-size:38px;letter-spacing:-.02em;text-align:center;align-self:center;}
  .hero-row .chatcard{grid-area:chat;align-self:stretch;}
  .hero-sub{grid-area:sub;text-align:center;}
  .hero-sub p.lead{color:var(--sub);font-size:16px;max-width:480px;margin:0 auto;}
  .hero-actions{margin-top:24px;display:flex;gap:12px;justify-content:center;}

  .chatcard{border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-chat);overflow:hidden;background:var(--card);}
  .chat-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--bg-alt);}
  .chat-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--logo-grad2));display:flex;align-items:center;justify-content:center;color:var(--btn-ink);font-size:13px;font-weight:800;}
  .chat-head b{font-size:13px;}
  .chat-head span{font-size:11px;color:var(--good);display:block;}
  .chat-body{padding:20px;display:flex;flex-direction:column;gap:12px;min-height:260px;}
  .bubble{max-width:80%;padding:11px 15px;border-radius:14px;font-size:13px;line-height:1.45;}
  .bubble.bot{background:var(--bg-alt);align-self:flex-start;border-bottom-left-radius:4px;}
  .bubble.user{background:var(--accent);color:var(--btn-ink);align-self:flex-end;border-bottom-right-radius:4px;font-weight:600;}
  .typing{display:flex;gap:4px;align-self:flex-start;padding:4px 10px;}
  .typing span{width:6px;height:6px;border-radius:50%;background:var(--sub);opacity:.6;}
  .bubble.audit{background:var(--bg-alt);border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px;width:88%;}
  .audit-row{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;padding:6px 0;border-bottom:1px dashed var(--line);}
  .audit-row:last-child{border-bottom:none;}
  .audit-row .bar{flex:1;height:5px;border-radius:3px;background:var(--line);margin:0 10px;overflow:hidden;}
  .audit-row .bar i{display:block;height:100%;border-radius:3px;transition:width .5s ease;}
  .score-good{color:var(--good);font-weight:800;} .score-warn{color:var(--warn);font-weight:800;}
  .score-bad{color:#e5484d;font-weight:800;}
  .demo-tag{background:var(--warn);color:#fff;font-size:9.5px;letter-spacing:.08em;
    padding:2px 6px;border-radius:4px;margin-left:6px;vertical-align:middle;}
  .audit-head{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--sub);
    font-weight:800;margin-bottom:8px;display:block;}
  .audit-foot{font-size:11px;color:var(--sub);margin-top:9px;padding-top:8px;border-top:1px solid var(--line);}
  .audit-tips{margin:8px 0 0;padding-left:16px;font-size:12px;color:var(--sub);line-height:1.5;}
  .audit-tips li{margin-bottom:3px;}
  .audit-progress{font-size:12px;color:var(--sub);}
  .audit-progress b{color:var(--accent-dark);}
  .chat-input{display:flex;gap:8px;padding:14px 18px;border-top:1px solid var(--line);}
  .chat-input input{flex:1;border:1px solid var(--line);border-radius:999px;padding:9px 14px;font-size:13px;background:var(--bg-alt);color:var(--ink);}
  .chat-input button{background:var(--accent);color:var(--btn-ink);border:none;border-radius:999px;padding:9px 16px;font-weight:700;font-size:13px;}

  /* Floating "Ask Riva" button. A pill that collapses to a circle on small
     screens. No unread badge - there is no unread message. */
  .floatchat{position:fixed;bottom:26px;right:26px;z-index:80;
    display:inline-flex;align-items:center;gap:9px;
    height:56px;padding:0 22px 0 18px;border:none;border-radius:999px;
    background:var(--accent);color:var(--btn-ink);
    font-family:inherit;font-size:15px;font-weight:700;line-height:1;letter-spacing:-.01em;
    text-decoration:none;cursor:pointer;box-shadow:var(--shadow-float);
    transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease, visibility .18s;}
  .floatchat .fc-icon{font-size:21px;line-height:1;}
  .floatchat:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(12,138,128,.45);}
  .floatchat:active{transform:translateY(0);}
  .floatchat.is-hidden{opacity:0;visibility:hidden;transform:translateY(10px) scale(.94);pointer-events:none;}
  @media (max-width:620px){
    .floatchat{width:56px;height:56px;padding:0;justify-content:center;border-radius:50%;}
    .floatchat .fc-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
      overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
    .floatchat{bottom:18px;right:18px;}
  }
  @media print{ .floatchat{display:none;} }

  .trustbar{background:var(--bg-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;}
  .trust-row{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;font-size:13px;color:var(--sub);}
  .stars{color:var(--stars-color);font-weight:700;}
  .badgechip{display:flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line);padding:6px 12px;border-radius:999px;}

  .section-head{max-width:620px;margin-bottom:36px;}
  .section-head.center{margin:0 auto 36px;text-align:center;}
  .section-head h2{font-size:28px;letter-spacing:-.01em;}
  .section-head p{color:var(--sub);margin-top:10px;font-size:15px;}

  /* services catalog */
  .catalog{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
  .cat-card{border:1px solid var(--line);border-radius:var(--radius);padding:24px;background:var(--card);}
  .cat-card.highlight{border-color:var(--accent);background:var(--accent-soft);}
  .cat-icon{width:40px;height:40px;border-radius:10px;background:var(--bg-alt);display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:14px;}
  .cat-card.highlight .cat-icon{background:var(--card);}
  .cat-card h3{font-size:15px;}
  .cat-card p{color:var(--sub);font-size:13px;margin-top:8px;}
  .cat-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:5px;}
  .cat-list li{font-size:12.5px;font-weight:600;color:var(--sub);padding-left:16px;position:relative;line-height:1.4;}
  .cat-list li::before{content:"";position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.65;}
  /* mega-menu deep links: clear the sticky header, then flag the service you picked */
  .cat-list li{scroll-margin-top:120px;border-radius:6px;transition:background-color .3s ease,color .3s ease;}
  .cat-list li:target{background:var(--accent);color:var(--btn-ink);font-weight:800;padding-top:2px;padding-bottom:2px;padding-right:8px;}
  .cat-list li:target::before{background:var(--btn-ink);opacity:1;left:6px;top:9px;}
  .cat-list li:target{padding-left:22px;}
  .cat-card,section[id]{scroll-margin-top:100px;}
  /* Riva sits behind a sticky header - without this the card lands under it */
  .chatcard,#riva,#contact,#work,#about,#pricing{scroll-margin-top:104px;}
  .cat-card .learn{display:inline-block;margin-top:14px;font-size:12px;font-weight:700;color:var(--accent-dark);}
  /* FTC affiliate disclosure. Sits with the link, not the footer, and matches
     it in size - a disclosure the visitor has to hunt for is not a disclosure. */
  .cat-card .aff-note{display:block;margin-top:6px;font-size:12px;font-weight:600;color:var(--sub);line-height:1.4;}

  /* pricing tiers */
  .tier-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
  .tier-card{border:1px solid var(--line);border-radius:var(--radius);padding:24px 20px;background:var(--card);display:flex;flex-direction:column;}
  .tier-card ul{flex:1;}
  .tier-card.popular{border:2px solid var(--accent);position:relative;}
  .tier-flag{position:absolute;top:-12px;left:22px;background:var(--accent);color:var(--btn-ink);font-size:11px;font-weight:700;padding:4px 12px;border-radius:999px;}
  .tier-card h3{font-size:17px;}
  .tier-price{font-size:28px;font-weight:800;margin:12px 0;}
  .tier-price span{font-size:12px;font-weight:600;color:var(--sub);}
  .tier-price .from{font-size:13px;font-weight:600;color:var(--sub);margin-right:2px;}
  .tier-card ul{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--sub);}
  .tier-card ul li:before{content:"✓ ";color:var(--accent-dark);font-weight:800;}
  .tier-btn{display:block;text-align:center;margin-top:18px;background:var(--bg-alt);border:1px solid var(--line);padding:10px;border-radius:10px;font-weight:700;font-size:13px;color:var(--ink);}
  .tier-card.popular .tier-btn{background:var(--accent);color:var(--btn-ink);border:none;}
  @media (max-width:1080px){ .tier-grid{grid-template-columns:repeat(2,1fr);} }

  /* how it works */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .step{text-align:center;padding:0 10px;}
  .step-num{width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--btn-ink);display:flex;align-items:center;justify-content:center;font-weight:800;margin:0 auto 12px;font-size:14px;}
  .step h3{font-size:15px;}
  .step p{color:var(--sub);font-size:13px;margin-top:6px;}

  /* case studies */
  .case-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
  .case-card{border:1px solid var(--line);border-radius:var(--radius);padding:22px;background:var(--card);}
  .case-tag{display:inline-block;font-size:11px;font-weight:700;color:var(--accent-dark);background:var(--accent-soft);padding:4px 10px;border-radius:999px;margin-bottom:12px;}
  .case-card h3{font-size:16px;margin-bottom:6px;}
  .case-card p{color:var(--sub);font-size:13px;}
  .case-card .result{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);font-size:12px;color:var(--sub);}

  /* spotlight bands */
  .spotlight-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .spotlight-card{border-radius:var(--radius);padding:28px;color:#fff;}
  .spotlight-card.local{background:var(--grad-local);}
  .spotlight-card.ada{background:var(--grad-eco);}
  .spotlight-card h3{font-size:20px;margin-bottom:10px;color:#fff;}
  .spotlight-card p{opacity:var(--spotlight-op);font-size:14px;max-width:360px;}
  .spotlight-card.booking{background:var(--grad-booking);}
  .spotlight-card.ai{background:var(--grad-ai);}
  .booking-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:32px;align-items:center;}
  .booking-list{list-style:none;display:grid;gap:12px;}
  .booking-list li{background:rgba(255,255,255,.12);border-radius:10px;padding:12px 14px;}
  .booking-list b{display:block;font-size:14px;margin-bottom:2px;}
  .booking-list span{font-size:13px;opacity:var(--spotlight-op);}
  .booking-link{color:#fff;text-decoration:underline;text-underline-offset:2px;font-weight:600;}
  .booking-link:hover{opacity:.8;}
  a.learn{display:inline-block;}
  .spotlight-card .pin{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;opacity:var(--spotlight-pin-op);margin-bottom:10px;display:block;}

  /* lead magnet */
  .magnet{background:var(--bg-alt);border:1px dashed var(--accent);border-radius:var(--radius);padding:32px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;}
  .magnet h3{font-size:19px;}
  .magnet p{color:var(--sub);font-size:14px;margin-top:6px;max-width:420px;}
  .magnet-form{display:flex;gap:8px;}
  .magnet-form input{padding:12px 14px;border-radius:999px;border:1px solid var(--line);font-size:14px;width:220px;background:var(--bg);color:var(--ink);}
  .magnet-form button{background:var(--accent);color:var(--btn-ink);border:none;padding:12px 20px;border-radius:999px;font-weight:700;font-size:14px;}

  /* awards */
  .press-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:center;padding:10px 0;}
  .press-badge{border:1px solid var(--line);border-radius:10px;padding:10px 18px;font-size:12px;font-weight:700;color:var(--sub);background:var(--card);}

  /* social profiles */
  .social-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;}
  .social-tile{border:1px solid var(--line);border-radius:12px;padding:14px 8px;text-align:center;font-size:12px;font-weight:700;color:var(--sub);background:var(--card);}
  .social-tile .ic{font-size:18px;display:block;margin-bottom:6px;}

  footer{background:var(--footer-bg);color:var(--footer-sub);padding:48px 0 28px;font-size:13px;}
  .foot-grid nav{display:contents;}
  .foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;}
  /* Footer column labels are h3, not h4: the last content heading on most
     pages is an h2, so h4 here would skip a level in the document outline. */
  footer h3{color:#fff;font-size:13px;margin-bottom:12px;}
  footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;}
  .credential-badge{display:inline-flex;align-items:center;gap:8px;background:var(--footer-chip);padding:8px 14px;border-radius:999px;margin-top:14px;font-size:12px;}
  .foot-contact{color:var(--footer-sub);}
  .foot-contact:hover{color:var(--accent);text-decoration:underline;}
  .foot-legal a{color:var(--footer-sub);}
  .foot-legal a:hover{color:var(--accent);text-decoration:underline;}
  .foot-bottom{border-top:1px solid var(--footer-line);margin-top:32px;padding-top:20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}

  @media (max-width:900px){
    .catalog,.tier-grid,.steps,.case-grid,.spotlight-grid,.foot-grid,.booking-grid{grid-template-columns:1fr!important;}
    .hero-row{grid-template-columns:1fr!important;grid-template-areas:"logo" "head" "chat" "sub"!important;}
    .social-grid{grid-template-columns:repeat(3,1fr);}
    nav ul{display:none;}
    .mega,.mega-blog{width:280px;left:0;right:auto;transform:none;max-width:none;grid-template-columns:1fr;gap:12px;}
  }

/* ---- interior pages ---- */
.has-mega:hover .mega{display:grid;}
/* blog */
  .blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.blog-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--card);}
.blog-thumb{height:110px;background:linear-gradient(135deg,var(--accent-soft),var(--grad2));}
.blog-body{padding:18px;}
.blog-cat{font-size:11px;font-weight:700;color:var(--accent-dark);text-transform:uppercase;letter-spacing:.05em;}
.blog-body h4{font-size:15px;margin:8px 0 0;}
@media (max-width:900px){
    .catalog,.tier-grid,.steps,.case-grid,.blog-grid,.spotlight-grid,.foot-grid,.booking-grid{grid-template-columns:1fr!important;}
    .hero-row{grid-template-columns:1fr!important;grid-template-areas:"logo" "head" "chat" "sub"!important;}
    .social-grid{grid-template-columns:repeat(3,1fr);}
    nav ul{display:none;}
    .mega{width:280px;left:0;grid-template-columns:1fr;gap:14px;}
  }
/* legal / content pages */
  .legal{max-width:820px;margin:0 auto;padding:0 24px;}
.legal h1{font-size:34px;letter-spacing:-.02em;margin-bottom:8px;}
.legal .sub{color:var(--sub);font-size:17px;margin:0 0 18px;line-height:1.6;}
.legal .meta{color:var(--sub);font-size:14px;margin:0 0 6px;}
.legal h2{font-size:19px;margin:34px 0 10px;letter-spacing:-.01em;scroll-margin-top:90px;}
.legal h3{font-size:15.5px;margin:20px 0 6px;}
.legal p{font-size:15px;line-height:1.7;margin:0 0 12px;}
.legal ul{font-size:15px;line-height:1.7;padding-left:22px;margin:0 0 14px;}
.legal li{margin-bottom:6px;}
.legal a{color:var(--accent-dark);font-weight:600;}
.legal a:hover{text-decoration:underline;}
.legal .tldr{background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius);padding:20px 22px;margin:22px 0 26px;}
.legal .tldr p{margin:0;}
.legal table{width:100%;border-collapse:collapse;margin:8px 0 18px;font-size:13.5px;}
.legal th{background:var(--accent);color:var(--btn-ink);text-align:left;padding:9px 12px;font-size:12.5px;}
.legal td{border:1px solid var(--line);padding:9px 12px;color:var(--sub);vertical-align:top;}
.legal td:first-child{color:var(--ink);font-weight:600;}
.legal .toc{background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;margin-bottom:14px;}
.legal .toc a{display:inline-block;font-size:13.5px;margin:3px 14px 3px 0;}
.legal .back{display:inline-block;font-size:14px;margin-bottom:24px;}
.sitemap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:26px;margin-top:8px;}
.sitemap-grid h3{margin-top:0;color:var(--accent-dark);}
.sitemap-grid ul{list-style:none;padding:0;font-size:14px;}
.sitemap-grid li{margin-bottom:7px;}
.sitemap-grid .soon{color:var(--sub);font-weight:400;}
@media(max-width:820px){ .sitemap-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:640px){
    .sitemap-grid{grid-template-columns:1fr;}
    .legal table,.legal thead,.legal tbody,.legal tr,.legal td,.legal th{display:block;width:100%;}
    .legal thead{display:none;} .legal td{border-top:0;}
    .legal tr{border-top:1px solid var(--line);margin-bottom:10px;}
  }
/* blog */
  .post{max-width:760px;margin:0 auto;padding:0 24px;}
.post .back{display:inline-block;font-size:14px;margin-bottom:22px;color:var(--accent-dark);font-weight:600;}
.post .back:hover{text-decoration:underline;}
.post .kicker{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
    color:var(--accent-dark);background:var(--accent-soft);padding:5px 11px;border-radius:999px;margin-bottom:14px;}
.post h1{font-size:clamp(28px,4.4vw,40px);letter-spacing:-.025em;line-height:1.15;margin-bottom:14px;}
.post .byline{color:var(--sub);font-size:13.5px;margin:0 0 26px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.post .byline span{display:inline-flex;align-items:center;gap:5px;}
.tldr{background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius);padding:22px 24px;margin:0 0 34px;}
.tldr h2{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-dark);margin:0 0 10px;}
.tldr p{font-size:15px;line-height:1.65;margin:0;}
.post h2{font-size:23px;margin:38px 0 12px;letter-spacing:-.015em;scroll-margin-top:90px;}
.post h3{font-size:17px;margin:26px 0 8px;}
.post p{font-size:16.5px;line-height:1.75;margin:0 0 16px;}
.post ul,.post ol{font-size:16.5px;line-height:1.75;padding-left:24px;margin:0 0 18px;}
.post li{margin-bottom:8px;}
.post a{color:var(--accent-dark);font-weight:600;}
.post a:hover{text-decoration:underline;}
.post strong{font-weight:700;}
.pull{border-left:4px solid var(--accent);padding:4px 0 4px 20px;margin:26px 0;font-size:19px;
    line-height:1.55;color:var(--ink);font-weight:600;letter-spacing:-.01em;}
figure{margin:30px 0;}
figure svg{width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);}
figcaption{font-size:13px;color:var(--sub);margin-top:9px;text-align:center;line-height:1.5;}
.post table{width:100%;border-collapse:collapse;margin:8px 0 22px;font-size:14px;}
.post th{background:var(--accent);color:var(--btn-ink);text-align:left;padding:10px 12px;font-size:12.5px;}
.post td{border:1px solid var(--line);padding:10px 12px;color:var(--sub);vertical-align:top;}
.post td:first-child{color:var(--ink);font-weight:600;}
.post .sources{border-top:1px solid var(--line);margin-top:40px;padding-top:20px;font-size:13.5px;color:var(--sub);}
.post .sources h3{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--sub);margin:0 0 10px;}
.post .sources a{font-weight:500;}
.cta-box{background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--radius);padding:26px;margin:38px 0 0;text-align:center;}
.cta-box h2,.cta-box h3{margin:0 0 8px;font-size:19px;}
.cta-box p{font-size:15px;color:var(--sub);margin:0 auto 16px;max-width:52ch;}
.next-up{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:34px;}
.next-up a{display:block;border:1px solid var(--line);border-radius:var(--radius);padding:18px;background:var(--card);
    text-decoration:none;transition:.16s;}
.next-up a:hover{border-color:var(--accent);transform:translateY(-2px);text-decoration:none;}
.next-up .lbl{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--sub);font-weight:700;}
.next-up strong{display:block;margin-top:6px;font-size:15px;color:var(--ink);line-height:1.35;}
/* blog index */
  .idx-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.idx-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--card);
    display:flex;flex-direction:column;text-decoration:none;transition:.18s;}
.idx-card:hover{border-color:var(--accent);transform:translateY(-3px);}
.idx-card .thumb{aspect-ratio:16/9;border-bottom:1px solid var(--line);}
.idx-card .thumb svg{width:100%;height:100%;display:block;}
.idx-card .body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1;}
.idx-card .cat{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-dark);}
/* Card titles are h2 on the blog index (top-level items under the page h1)
   and h3 inside the newsletter section, so both need the same look. */
.idx-card h2,.idx-card h3{font-size:17px;line-height:1.35;margin:0;color:var(--ink);font-weight:700;}
.idx-card p{font-size:14px;color:var(--sub);margin:0;line-height:1.55;}
.idx-card .meta{margin-top:auto;padding-top:8px;font-size:12.5px;color:var(--sub);}
@media(max-width:900px){ .idx-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:640px){ .idx-grid,.next-up{grid-template-columns:1fr;} .post p,.post ul,.post ol{font-size:16px;}
    .post table,.post thead,.post tbody,.post tr,.post td,.post th{display:block;width:100%;}
    .post thead{display:none;} .post td{border-top:0;} .post tr{border-top:1px solid var(--line);margin-bottom:10px;} }
/* legal page */
  .legal{max-width:820px;margin:0 auto;padding:0 24px;}
@media(max-width:640px){ .legal table,.legal thead,.legal tbody,.legal tr,.legal td,.legal th{display:block;width:100%;}
    .legal thead{display:none;} .legal td{border-top:0;} .legal tr{border-top:1px solid var(--line);margin-bottom:10px;} }

/* ============================================================
   Start a Project - intake form
   ============================================================ */
.form-head{max-width:760px;}
.form-head h1{font-size:clamp(30px,5vw,44px);letter-spacing:-.02em;}
.form-head .lede{color:var(--sub);font-size:17px;line-height:1.6;margin-top:14px;}
.contact-strip{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-wrap:wrap;gap:10px 26px;
  font-size:14px;font-weight:600;color:var(--sub);}
.contact-strip li{display:flex;align-items:center;gap:7px;}
.contact-strip a{color:var(--accent-dark);}
.contact-strip a:hover{text-decoration:underline;}

.form-intro{max-width:760px;border-left:3px solid var(--accent);padding:2px 0 2px 20px;margin-bottom:34px;}
.form-intro h2{font-size:22px;letter-spacing:-.01em;}
.form-intro p{color:var(--sub);font-size:15px;line-height:1.65;margin-top:10px;}
.form-intro .form-time{font-size:13px;font-weight:700;color:var(--accent-dark);margin-top:14px;}

.rds-form{max-width:820px;}
.rds-form fieldset{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);
  padding:26px 26px 30px;margin:0 0 22px;}
.rds-form > fieldset > legend{font-size:17px;font-weight:800;color:var(--ink);padding:0 10px;
  letter-spacing:-.01em;}
.rds-form fieldset.sub{background:var(--bg-alt);border-style:dashed;padding:18px 20px 20px;margin:0 0 20px;}
.rds-form fieldset.sub legend{font-size:13.5px;font-weight:700;color:var(--ink);padding:0 8px;}

.field{margin-bottom:20px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.field label{display:block;font-size:14px;font-weight:700;color:var(--ink);margin-bottom:7px;line-height:1.4;}
.field small{display:block;font-size:12.5px;color:var(--sub);margin-top:6px;line-height:1.5;}
.req{display:inline-block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;
  color:var(--accent-dark);background:var(--bg-alt);border:1px solid var(--line);
  border-radius:999px;padding:1px 7px;margin-left:6px;vertical-align:1px;}

.rds-form input[type=text],.rds-form input[type=email],.rds-form input[type=tel],
.rds-form input[type=url],.rds-form input[type=date],.rds-form select,.rds-form textarea{
  width:100%;box-sizing:border-box;font:inherit;font-size:15px;color:var(--ink);
  background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:11px 13px;
  transition:border-color .15s ease, box-shadow .15s ease;}
.rds-form textarea{resize:vertical;min-height:76px;line-height:1.55;}
.rds-form input:hover,.rds-form select:hover,.rds-form textarea:hover{border-color:var(--accent);}
.rds-form input:focus,.rds-form select:focus,.rds-form textarea:focus{
  border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-halo);}
.rds-form input::placeholder,.rds-form textarea::placeholder{color:var(--sub);opacity:.62;}
.rds-form select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:38px;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),
                   linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 19px) calc(50% + 2px),calc(100% - 14px) calc(50% + 2px);
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;}

.opt{display:flex;align-items:flex-start;gap:9px;font-size:14px;font-weight:600;color:var(--ink);
  margin-bottom:9px;cursor:pointer;line-height:1.45;}
.opt input{width:17px;height:17px;margin:1px 0 0;accent-color:var(--accent);flex:none;cursor:pointer;}
.opt:hover{color:var(--accent-dark);}
.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px 18px;}

.consent{border-top:1px solid var(--line);padding-top:20px;}
.consent .opt{font-weight:600;font-size:14px;}
.consent a{color:var(--accent-dark);text-decoration:underline;}

.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

.form-actions{margin-top:26px;}
.form-actions .cta-btn{font-size:15px;padding:14px 30px;border:none;cursor:pointer;font-family:inherit;}
.form-actions .cta-btn:disabled{opacity:.6;cursor:default;}
.form-note{font-size:13px;color:var(--sub);margin-top:14px;line-height:1.55;}

.has-error input,.has-error select,.has-error textarea{border-color:#c0392b;box-shadow:0 0 0 3px rgba(192,57,43,.15);}
.has-error > label,.has-error > legend{color:#c0392b;}

.form-status{margin-top:18px;font-size:15px;line-height:1.6;border-radius:var(--radius);}
.form-status:empty{display:none;}
.form-status p{margin-top:8px;}
.form-status.is-busy{padding:14px 18px;background:var(--bg-alt);border:1px solid var(--line);color:var(--sub);}
.form-status.is-bad{padding:16px 18px;background:rgba(192,57,43,.08);border:1px solid rgba(192,57,43,.35);}
.form-status.is-ok{padding:26px 24px;background:var(--bg-alt);border:2px solid var(--accent);font-size:16px;}
.form-status a{color:var(--accent-dark);font-weight:700;text-decoration:underline;}

@media (max-width:760px){
  .field-row,.check-grid{grid-template-columns:1fr;}
  .rds-form fieldset{padding:20px 18px 24px;}
  .contact-strip{gap:8px 18px;font-size:13px;}
}

/* --- inline email / phone validation --- */
.field-msg{margin:7px 0 0;font-size:12.5px;line-height:1.5;font-weight:600;}
.field-msg:empty{display:none;}
.field-msg.is-bad{color:#c0392b;}
.field-msg.is-good{color:var(--accent-dark);}
.field-msg.is-good::before{content:"\2713\00a0";font-weight:800;}
.field.is-bad input{border-color:#c0392b;}
.field.is-bad input:focus{box-shadow:0 0 0 3px rgba(192,57,43,.18);}
.field.is-good input{border-color:var(--accent);}
.fix-btn{font:inherit;font-size:12.5px;font-weight:800;color:var(--accent-dark);background:var(--accent-soft);
  border:1px solid var(--accent);border-radius:6px;padding:1px 7px;cursor:pointer;}
.fix-btn:hover{background:var(--accent);color:var(--btn-ink);}
:root[data-theme="dark"] .field-msg.is-bad{color:#ff8a7a;}
:root[data-theme="dark"] .field.is-bad input{border-color:#ff8a7a;}
:root[data-theme="dark"] .field.is-bad input:focus{box-shadow:0 0 0 3px rgba(255,138,122,.22);}

/* --- checklist request form --- */
.magnet-form{align-items:center;}
.magnet-form input{font-family:inherit;transition:border-color .15s ease;}
.magnet-form input:hover{border-color:var(--accent);}
.magnet-form input:disabled{opacity:.55;}
.magnet-form button{font-family:inherit;cursor:pointer;transition:transform .15s ease, opacity .15s ease;}
.magnet-form button:hover{transform:translateY(-1px);}
.magnet-form button:disabled{opacity:.6;cursor:default;transform:none;}
.hp-inline{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;}
.magnet-msg{margin:14px 0 0;font-size:14px;line-height:1.6;font-weight:600;}
.magnet-msg:empty{display:none;}
.magnet-msg.is-busy{color:var(--sub);font-weight:600;}
.magnet-msg.is-bad{color:#c0392b;}
.magnet-msg.is-ok{color:var(--ink);background:var(--accent-soft);border:1px solid var(--accent);
  border-radius:12px;padding:16px 18px;font-weight:600;}
.magnet-msg a{color:var(--accent-dark);text-decoration:underline;font-weight:700;}
.magnet-fine{margin:12px 0 0;font-size:12.5px;color:var(--sub);line-height:1.55;}
.magnet-fine a{color:var(--accent-dark);text-decoration:underline;}
:root[data-theme="dark"] .magnet-msg.is-bad{color:#ff8a7a;}
@media (max-width:620px){
  .magnet-form{width:100%;flex-direction:column;align-items:stretch;}
  .magnet-form input{width:100%;}
}

/* --- Turnstile widget slot --- */
.turnstile-slot{margin:18px 0 0;min-height:0;}
.turnstile-slot:empty{display:none;}
.turnstile-slot iframe{max-width:100%;}
.magnet .turnstile-slot,.magnet + .turnstile-slot{margin-top:14px;}
#tsChecklist{max-width:320px;}
