
  :root{
    --black:#0e0b12;
    --panel:#17121c;
    --panel-2:#1e1824;
    --line:rgba(197,160,89,0.3);
    --line-soft:rgba(240,232,216,0.1);
    --gold:#c5a059;
    --gold-light:#eeddb0;
    --gold-deep:#8f7231;
    --cream:#f3ecdd;
    --muted:#a79f92;
    --muted-dim:#6b6459;
    --serif:'Fraunces', serif;
    --crest:'Cinzel', serif;
    --sans:'Jost', sans-serif;
  }

  *{margin:0;padding:0;box-sizing:border-box;}
  html,body{height:100%;}
  body{
    background:var(--black);
    color:var(--cream);
    font-family:var(--sans);
    font-weight:300;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit;text-decoration:none;}
  img,svg{display:block;max-width:100%;}
  ul{list-style:none;}
  ::selection{background:var(--gold);color:var(--black);}
  :focus-visible{outline:1px solid var(--gold-light);outline-offset:4px;}

  .wrap{max-width:1180px;margin:0 auto;padding:0 44px;width:100%;}

  h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-0.01em;color:var(--cream);}
  em{font-style:italic;color:var(--gold-light);font-weight:400;}

  .foil{
    background:linear-gradient(100deg, var(--gold-deep) 10%, var(--gold-light) 35%, var(--gold) 50%, var(--gold-light) 65%, var(--gold-deep) 90%);
    background-size:220% auto;-webkit-background-clip:text;background-clip:text;color:transparent;
    animation:foilshift 7s ease-in-out infinite;
  }
  @keyframes foilshift{0%,100%{background-position:0% 50%;}50%{background-position:100% 50%;}}

  .crest-label{font-family:var(--crest);font-size:10.5px;font-weight:500;letter-spacing:0.3em;text-transform:uppercase;color:var(--gold);}
  .eyebrow{display:flex;align-items:center;gap:16px;margin-bottom:22px;}
  .eyebrow .rule{width:34px;height:1px;background:var(--gold);display:inline-block;}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }

  /* ============ PAGE SECTIONS ============ */
  /* .snap-container is now a plain wrapper — the page itself scrolls normally.
     Only full-bleed photo moments (hero / service overview / quote / contact) force
     a full viewport height; ordinary content sections size to their own content so
     short sections don't leave large empty gaps above/below. */
  .panel{
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:center;
    overflow-x:hidden;
    padding:90px 0;
  }
  /* Only the section that opens a page (always one of these) needs to clear
     the fixed header; every other section just needs normal breathing room. */
  .hero, .service-panel, .quote-panel, .contact-panel{
    min-height:100vh;
    min-height:100dvh;
  }
  /* Only the page's actual opening section needs to clear the fixed header —
     every page's first section carries id="hero" (about.html uses "intro"). */
  #hero, #intro{
    padding-top:160px;
  }
  .panel-inner{position:relative;z-index:2;width:100%;}
  .panel-photo{
    position:absolute;inset:0;z-index:0;
    background-size:cover;background-position:center;
  }
  .panel-photo::before{
    content:"";position:absolute;inset:0;
    background:var(--tint, transparent);
    mix-blend-mode:overlay;
    opacity:0.58;
  }
  .panel-photo::after{
    content:"";position:absolute;inset:0;
    background:
      linear-gradient(180deg, rgba(17,13,21,0.7) 0%, rgba(17,13,21,0.24) 30%, rgba(17,13,21,0.34) 60%, rgba(17,13,21,0.8) 100%),
      radial-gradient(ellipse 58% 48% at 50% 46%, rgba(17,13,21,0.16), rgba(17,13,21,0.48) 100%);
  }
  /* legibility insurance now that the wash is lighter — shadow does the work instead */
  .panel-inner h1, .panel-inner h2, .panel-inner h3,
  .panel-inner .tagline, .panel-inner .desc, .panel-inner p.lead,
  .panel-inner .crest-label, .panel-inner .service-grid li,
  .panel-inner blockquote, .panel-inner cite, .panel-inner .panel-index,
  .panel-inner .register span, .panel-inner .eyebrow{
    text-shadow:0 2px 16px rgba(5,4,3,0.85), 0 1px 4px rgba(5,4,3,0.9);
  }
  .foil{text-shadow:none;filter:drop-shadow(0 2px 14px rgba(5,4,3,0.75));}
  .watermark{
    position:absolute;
    font-family:var(--serif);
    font-style:italic;
    font-size:min(46vw,620px);
    line-height:1;
    color:var(--cream);
    opacity:0.035;
    top:50%;left:50%;
    transform:translate(-50%,-50%);
    pointer-events:none;
    white-space:nowrap;
    z-index:1;
    user-select:none;
  }

  /* ============ NAV ============ */
  header{position:fixed;top:0;left:0;right:0;z-index:150;padding:30px 0;transition:padding 0.5s ease, background 0.5s ease, border-color 0.5s ease;border-bottom:1px solid transparent;}
  header.scrolled{padding:16px 0;background:rgba(8,7,10,0.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--line-soft);}
  body:has(.nav-links.open) header{background:rgba(8,7,10,0.96);backdrop-filter:blur(16px);border-bottom:1px solid var(--line-soft);}
  nav.wrap{display:flex;align-items:center;justify-content:space-between;}
  .brand{display:flex;align-items:center;gap:14px;}
  .crest-mark{height:46px;width:auto;flex-shrink:0;object-fit:contain;}
  .brand-text{font-family:var(--crest);line-height:1.3;}
  .brand-text b{font-size:15px;letter-spacing:0.14em;color:var(--cream);font-weight:500;display:block;}
  .brand-text small{font-size:8.5px;letter-spacing:0.3em;color:var(--gold);text-transform:uppercase;}

  .nav-links{display:flex;align-items:center;gap:40px;}
  .nav-links a, .nav-links button{
    font-family:var(--sans);font-size:12px;letter-spacing:0.14em;text-transform:uppercase;
    color:var(--muted);position:relative;padding:4px 0;background:none;border:none;cursor:pointer;
    transition:color 0.4s ease;
  }
  .nav-links a::after, .nav-links button::after{content:"";position:absolute;bottom:-2px;left:50%;width:0;height:1px;background:var(--gold);transition:all 0.4s ease;}
  .nav-links a:hover, .nav-links button:hover{color:var(--gold-light);}
  .nav-links a:hover::after, .nav-links button:hover::after{width:100%;left:0;}

  .nav-cta{display:flex;align-items:center;gap:26px;position:relative;z-index:120;}
  .phone-link{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--gold-light);display:none;}

  .btn{
    font-family:var(--crest);font-size:10.5px;font-weight:500;letter-spacing:0.2em;text-transform:uppercase;
    padding:15px 30px;border:1px solid var(--gold);color:var(--gold-light);background:transparent;
    cursor:pointer;position:relative;overflow:hidden;transition:color 0.5s ease, border-color 0.5s ease, letter-spacing 0.5s ease;white-space:nowrap;
  }
  .btn::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,var(--gold-deep),var(--gold-light),var(--gold));transform:translateX(-101%);transition:transform 0.55s cubic-bezier(.65,0,.15,1);z-index:-1;}
  .btn:hover{color:var(--black);letter-spacing:0.26em;}
  .btn:hover::before{transform:translateX(0);}
  .btn.ghost{border-color:var(--line-soft);color:var(--muted);}
  .btn.ghost:hover{color:var(--gold-light);border-color:var(--gold);}
  .btn.ghost::before{display:none;}

  .menu-toggle{display:none;background:none;border:none;width:26px;height:18px;position:relative;cursor:pointer;}
  .menu-toggle span{position:absolute;left:0;right:0;height:1px;background:var(--gold-light);transition:transform 0.35s cubic-bezier(.65,0,.15,1), opacity 0.25s ease, top 0.35s ease;}
  .menu-toggle span:nth-child(1){top:0;}
  .menu-toggle span:nth-child(2){top:8px;}
  .menu-toggle span:nth-child(3){top:16px;}
  .menu-toggle.open span:nth-child(1){top:8px;transform:rotate(45deg);}
  .menu-toggle.open span:nth-child(2){opacity:0;}
  .menu-toggle.open span:nth-child(3){top:8px;transform:rotate(-45deg);}

  /* ============ SIDE DOT NAV ============ */
  .dot-nav{
    position:fixed;right:38px;top:50%;transform:translateY(-50%);
    z-index:90;display:flex;flex-direction:column;gap:20px;align-items:flex-end;
  }
  .dot-nav button{
    background:none;border:none;cursor:pointer;
    display:flex;align-items:center;gap:12px;padding:2px 0;
  }
  .dot-nav .dot-label{
    font-family:var(--crest);font-size:9px;letter-spacing:0.16em;text-transform:uppercase;
    color:var(--muted-dim);opacity:0;transform:translateX(6px);
    transition:opacity 0.3s ease, transform 0.3s ease, color 0.3s ease;
    white-space:nowrap;
  }
  .dot-nav button:hover .dot-label{opacity:1;transform:translateX(0);color:var(--gold-light);}
  .dot-nav .dot{width:6px;height:6px;border-radius:50%;border:1px solid var(--muted-dim);transition:all 0.4s ease;flex-shrink:0;}
  .dot-nav button.active .dot{background:var(--gold);border-color:var(--gold);box-shadow:0 0 0 3px rgba(197,160,89,0.18);}
  .dot-nav button.active .dot-label{color:var(--gold-light);opacity:1;transform:translateX(0);}

  /* ============ HERO ============ */
  .hero{
    text-align:center;align-items:center;
    background:radial-gradient(ellipse 60% 50% at 50% 20%, rgba(197,160,89,0.09), transparent 65%), radial-gradient(ellipse 90% 60% at 50% 100%, rgba(197,160,89,0.05), transparent 70%), var(--black);
  }
  .hero::before,.hero::after{content:"";position:absolute;top:0;bottom:0;width:1px;background:linear-gradient(var(--line-soft), transparent 30%, transparent 70%, var(--line-soft));z-index:1;}
  .hero::before{left:44px;}
  .hero::after{right:44px;}

  .crest-draw{width:auto;height:88px;margin:0 auto 30px;position:relative;z-index:2;}
  .crest-draw img{
    height:100%;width:auto;margin:0 auto;
    opacity:0;transform:scale(0.9);
    filter:drop-shadow(0 4px 18px rgba(5,4,3,0.6));
    animation:mark-in 1.1s cubic-bezier(.16,1,.3,1) forwards 0.15s;
  }
  @keyframes draw{to{stroke-dashoffset:0;}}
  @keyframes fadein{to{opacity:1;}}

  .hero .crest-label{margin-bottom:26px;position:relative;z-index:2;display:block;}
  .hero h1{font-size:clamp(34px,5.6vw,74px);line-height:1.08;max-width:900px;margin:0 auto 26px;position:relative;z-index:2;}
  .hero p.lead{font-size:16px;color:var(--muted);max-width:500px;margin:0 auto 40px;position:relative;z-index:2;}
  .hero-actions{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;position:relative;z-index:2;}
  .register{margin-top:50px;display:flex;gap:40px;flex-wrap:wrap;justify-content:center;position:relative;z-index:2;}
  .register span{font-family:var(--crest);font-size:9px;letter-spacing:0.22em;color:var(--muted-dim);text-transform:uppercase;}

  .marquee-band{position:absolute;bottom:0;left:0;right:0;border-top:1px solid var(--line-soft);padding:20px 0;overflow:hidden;white-space:nowrap;z-index:2;background:rgba(20,17,23,0.5);}
  .marquee-track{display:inline-flex;animation:scroll-left 32s linear infinite;}
  .marquee-track span{font-family:var(--crest);font-size:10px;letter-spacing:0.28em;color:var(--muted-dim);text-transform:uppercase;padding:0 30px;display:inline-flex;align-items:center;gap:30px;}
  .marquee-track span::after{content:"◆";color:var(--gold);font-size:6px;}
  @keyframes scroll-left{from{transform:translateX(0);}to{transform:translateX(-50%);}}

  /* ============ SECTION HEAD ============ */
  .section-head{max-width:600px;margin:0 auto 46px;text-align:center;}
  .section-head .eyebrow{justify-content:center;}
  .section-head .eyebrow .rule{display:none;}
  .section-head h2{font-size:clamp(28px,3.6vw,44px);line-height:1.15;}
  .section-head p{color:var(--muted);margin-top:16px;font-size:14.5px;}

  .reveal{opacity:0;transform:translateY(26px);transition:opacity 0.9s cubic-bezier(.16,1,.3,1), transform 0.9s cubic-bezier(.16,1,.3,1);}
  .reveal.in{opacity:1;transform:translateY(0);}

  /* ============ SERVICE PANELS ============ */
  .service-panel .panel-inner{max-width:820px;margin:0 auto;text-align:center;}
  .service-panel .crest-label{display:block;margin-bottom:14px;}
  .service-panel h2{font-size:clamp(30px,4.4vw,54px);margin-bottom:8px;}
  .service-panel .tagline{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--gold-light);display:block;margin-bottom:18px;}
  .service-panel .desc{color:var(--muted);font-size:14.5px;max-width:480px;margin:0 auto 36px;}

  .service-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 40px;text-align:left;max-width:640px;margin:0 auto;}
  .service-grid li{font-size:13px;color:var(--cream);opacity:0.85;position:relative;padding-left:18px;}
  .service-grid li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:1px;background:var(--gold);}

  .panel-index{font-family:var(--crest);font-size:10px;letter-spacing:0.2em;color:var(--muted-dim);text-transform:uppercase;margin-top:40px;}

  /* ============ QUOTE PANEL ============ */
  .quote-panel{text-align:center;}
  .quote-panel blockquote{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(22px,3.6vw,42px);line-height:1.4;max-width:780px;margin:0 auto 26px;color:var(--cream);}
  .quote-panel cite{font-family:var(--crest);font-style:normal;font-size:10px;letter-spacing:0.24em;text-transform:uppercase;color:var(--gold);}

  /* ============ PROCESS PANEL ============ */
  .process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);max-width:1080px;margin:0 auto;}
  .process-step{background:var(--black);padding:38px 30px;}
  .process-step .roman{font-family:var(--crest);font-size:11px;letter-spacing:0.14em;color:var(--gold);display:block;margin-bottom:20px;}
  .process-step h4{font-family:var(--serif);font-size:18px;margin-bottom:10px;font-weight:400;}
  .process-step p{font-size:12.5px;color:var(--muted);line-height:1.55;}

  /* ============ WHY / PILLARS PANEL ============ */
  .pillars{display:grid;grid-template-columns:repeat(4,1fr);max-width:980px;margin:0 auto;border:1px solid var(--line-soft);}
  .pillar{padding:40px 30px;border-left:1px solid var(--line-soft);text-align:center;}
  .pillar:first-child{border-left:none;}
  .pillar-icon{width:26px;height:26px;margin:0 auto 18px;color:var(--gold);}
  .pillar h4{font-family:var(--crest);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold-light);margin-bottom:10px;font-weight:500;}
  .pillar p{font-size:12px;color:var(--muted);line-height:1.55;}

  /* ============ CONTACT PANEL ============ */
  .contact-panel{text-align:center;}
  .contact-panel .crest-draw{margin:0 auto 26px;width:auto;height:56px;}
  .contact-panel h2{font-size:clamp(30px,4.6vw,52px);max-width:760px;margin:0 auto 18px;line-height:1.15;}
  .contact-panel > .panel-inner > p{color:var(--muted);max-width:440px;margin:0 auto 38px;font-size:14.5px;}
  .cta-actions{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;margin-bottom:56px;}

  .contact-row{display:flex;gap:46px;justify-content:center;flex-wrap:wrap;padding-top:40px;border-top:1px solid var(--line-soft);max-width:900px;margin:0 auto;}
  .contact-item h5{font-family:var(--crest);font-size:9px;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;}
  .contact-item a,.contact-item span{font-size:13px;color:var(--muted);display:block;}
  .contact-item a:hover{color:var(--gold-light);}

  .legal{margin-top:44px;font-size:11px;color:var(--muted-dim);display:flex;justify-content:center;gap:16px;flex-wrap:wrap;}
  .legal .tag{font-family:var(--crest);letter-spacing:0.12em;text-transform:uppercase;font-size:9px;}

  /* ============ RESPONSIVE ============ */
  @media (max-width:980px){
    .pillars{grid-template-columns:repeat(2,1fr);}
    .pillar:nth-child(3){border-left:none;}
    .process-grid{grid-template-columns:repeat(2,1fr);}
    .dot-nav{right:22px;}
    .dot-nav .dot-label{display:none;}
  }
  @media (max-width:900px){
    .wrap{padding:0 22px;}
    .hero::before,.hero::after{display:none;}
    .panel{padding:56px 0;}
    #hero, #intro{padding-top:110px;}

    /* header: tighten so logo + button + menu never collide */
    header{padding:20px 0;}
    header.scrolled{padding:14px 0;}
    nav.wrap{padding:0 20px;gap:10px;}
    .brand{gap:9px;min-width:0;}
    .crest-mark{height:34px;width:auto;}
    .brand-text b{font-size:12px;letter-spacing:0.08em;white-space:nowrap;}
    .brand-text small{display:none;}
    .nav-cta{gap:12px;}
    .nav-cta .btn{display:none;}

    .nav-links{
      position:fixed;top:0;right:0;height:100vh;width:min(300px,82vw);
      background:var(--panel);flex-direction:column;justify-content:center;align-items:flex-start;
      gap:30px;padding:0 40px;transform:translateX(101%);
      transition:transform 0.5s cubic-bezier(.65,0,.15,1);border-left:1px solid var(--line);
      z-index:110;
    }
    .nav-links.open{transform:translateX(0);}
    .menu-toggle{display:block;flex-shrink:0;}
    .phone-link{display:none !important;}
    .dot-nav{display:none;}

    /* hero: let the marquee sit in normal flow instead of pinned to the bottom edge */
    .hero{padding-bottom:36px;}
    .hero .panel-inner{padding:0 22px;}
    .hero h1{font-size:clamp(30px,8.4vw,44px);}
    .hero p.lead{font-size:14.5px;padding:0 6px;}
    .register{gap:16px 22px;margin-top:36px;}
    .register span{font-size:8px;}
    .marquee-band{
      position:static;
      margin-top:40px;
      background:transparent;
      border-top:1px solid var(--line-soft);
      padding:16px 0;
    }

    .service-panel .panel-inner{padding:0 22px;}
    .service-grid{grid-template-columns:1fr;max-width:320px;gap:10px;}
    .watermark{font-size:34vw;opacity:0.03;}

    .pillars{grid-template-columns:1fr;}
    .pillar{border-left:none !important;border-top:1px solid var(--line-soft);}
    .pillar:first-child{border-top:none;}
    .process-grid{grid-template-columns:1fr;}

    .contact-row{gap:26px 20px;padding-top:32px;}
    .contact-item{flex:1 1 40%;min-width:130px;}
    .cta-actions{margin-bottom:40px;}
    .legal{flex-direction:column;gap:8px;}
  }

  @media (max-width:380px){
    .brand-text b{font-size:10.5px;}
    .crest-mark{height:30px;width:auto;}
  }

  /* ============ NAV DROPDOWN (multi-page) ============ */
  .nav-links .mobile-cta{display:none;}
  @media (max-width:900px){
    .nav-links .mobile-cta{display:inline-flex;margin-top:10px;width:100%;}
    .nav-links .mobile-cta .btn,
    .nav-links a.btn{
      display:block;width:100%;box-sizing:border-box;text-align:center;
      color:var(--gold-light);font-size:9.5px;letter-spacing:0.14em;white-space:normal;
      padding:14px 16px;border:1px solid var(--gold);
    }
    .nav-links a.btn:hover{color:var(--black);}
  }
  .nav-links li{position:relative;}
  .nav-links .dropdown{
    position:absolute;top:100%;left:0;transform:translateY(6px);
    background:var(--panel);border:1px solid var(--line-soft);
    min-width:210px;padding:10px 0;
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity 0.3s ease, transform 0.3s ease;
    z-index:120;
  }
  .nav-links li:hover .dropdown,
  .nav-links li:focus-within .dropdown{
    opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);
  }
  .dropdown a{
    display:block;padding:11px 22px;font-size:11.5px;letter-spacing:0.1em;text-transform:none;
    color:var(--muted);white-space:nowrap;transition:color 0.25s ease, background 0.25s ease;
  }
  .dropdown a:hover{color:var(--gold-light);background:rgba(197,160,89,0.06);}
  .nav-links a.active, .nav-links button.active{color:var(--gold-light);}

  @media (max-width:900px){
    .nav-links .dropdown{
      position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;
      background:transparent;border:none;padding:6px 0 0 16px;display:none;min-width:0;
    }
    .nav-links li.mobile-open .dropdown{display:block;}
    .nav-links .dropdown a{padding:10px 0;font-size:12px;letter-spacing:0.08em;}
  }

  /* ============ SERVICE TEASER CARDS (home) ============ */
  .service-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;max-width:840px;margin:0 auto;}
  .service-card{
    position:relative;aspect-ratio:3/4;overflow:hidden;
    border:1px solid var(--line-soft);
    display:flex;flex-direction:column;justify-content:flex-end;
    padding:30px 26px;text-align:left;
    transition:border-color 0.4s ease;
  }
  .service-card:hover{border-color:var(--gold);}
  .service-card .card-bg{
    position:absolute;inset:0;background-size:cover;background-position:center;
    transition:transform 0.7s cubic-bezier(.16,1,.3,1);
    z-index:0;
  }
  .service-card:hover .card-bg{transform:scale(1.07);}
  .service-card .card-tint{position:absolute;inset:0;background:var(--tint,transparent);mix-blend-mode:overlay;opacity:0.55;z-index:0;}
  .service-card .card-shade{
    position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(17,13,21,0.15) 0%, rgba(17,13,21,0.35) 45%, rgba(17,13,21,0.88) 100%);
    z-index:0;
  }
  .service-card .card-content{position:relative;z-index:1;}
  .service-card .card-num{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--gold-light);display:block;margin-bottom:10px;text-shadow:0 2px 10px rgba(5,4,3,0.8);}
  .service-card h3{font-size:22px;margin-bottom:8px;text-shadow:0 2px 10px rgba(5,4,3,0.8);}
  .service-card p{font-size:12.5px;color:var(--muted);margin-bottom:16px;text-shadow:0 2px 10px rgba(5,4,3,0.8);}
  .service-card .card-link{
    font-family:var(--crest);font-size:9.5px;letter-spacing:0.18em;text-transform:uppercase;
    color:var(--gold-light);display:inline-flex;align-items:center;gap:8px;
  }
  .service-card .card-link .arrow{transition:transform 0.35s ease;}
  .service-card:hover .card-link .arrow{transform:translateX(5px);}

  @media (max-width:980px){ .service-cards{grid-template-columns:1fr;max-width:460px;} .service-card{aspect-ratio:16/10;} }

  /* ============ MINI CROSS-LINK CARDS (service pages) ============ */
  .mini-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:640px;margin:0 auto;}
  @media (max-width:900px){ .mini-cards{grid-template-columns:1fr;max-width:340px;} }

  /* ============ CONTACT DETAIL PAGE ============ */
  .contact-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);max-width:760px;margin:0 auto;}
  .contact-detail-grid .contact-item{background:var(--black);padding:34px 30px;text-align:left;}
  @media (max-width:900px){ .contact-detail-grid{grid-template-columns:1fr;} }

  /* ============ SIMPLE TEXT PANEL (about/services body copy) ============ */
  .text-block{max-width:680px;margin:0 auto;text-align:left;}
  .text-block p{color:var(--muted);font-size:14.5px;margin-bottom:18px;}
  .text-block p:last-child{margin-bottom:0;}

  .crest-draw.small{width:auto;height:56px;margin:0 auto 26px;}

  /* ============ PRELOADER (globe opening animation) ============ */
  .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}

  #preloader{
    position:fixed;inset:0;z-index:9999;
    display:flex;align-items:center;justify-content:center;
    background:
      radial-gradient(ellipse 60% 55% at 50% 45%, rgba(197,160,89,0.1), transparent 70%),
      var(--black);
    opacity:1;visibility:visible;
    transition:opacity 0.9s cubic-bezier(.65,0,.15,1), visibility 0.9s;
  }
  #preloader.is-hidden{opacity:0;visibility:hidden;pointer-events:none;}
  body.is-loading{overflow:hidden;height:100%;}

  .preloader-inner{display:flex;flex-direction:column;align-items:center;text-align:center;}

  .globe-mark{
    width:auto;height:150px;max-width:70vw;
    opacity:0;transform:scale(0.88);
    filter:drop-shadow(0 0 26px rgba(197,160,89,0.25));
    animation:mark-in 1.4s cubic-bezier(.16,1,.3,1) forwards 0.2s;
  }
  @keyframes mark-in{to{opacity:1;transform:scale(1);}}

  .preloader-word{
    margin-top:34px;
    font-family:var(--crest);color:var(--gold-light);
    font-size:clamp(17px,2.6vw,25px);font-weight:500;
    letter-spacing:0.02em;line-height:1.5;
    opacity:0;filter:blur(6px);
    animation:word-in 1s ease forwards 1.35s;
  }
  .preloader-word .pw-line{display:block;letter-spacing:0.5em;}
  .preloader-word .pw-line2{color:var(--gold);font-size:0.86em;letter-spacing:0.6em;}
  @keyframes word-in{to{opacity:1;filter:blur(0);}}

  .preloader-tag{
    display:block;margin-top:16px;
    font-family:var(--sans);font-size:10px;letter-spacing:0.32em;text-transform:uppercase;
    color:var(--muted-dim);
    opacity:0;
    animation:tag-in 0.9s ease forwards 1.85s;
  }
  @keyframes tag-in{to{opacity:1;}}

  .preloader-bar{
    margin-top:38px;width:150px;height:1px;background:var(--line-soft);
    position:relative;overflow:hidden;
  }
  .preloader-bar span{
    position:absolute;inset:0 100% 0 0;background:var(--gold);
    animation:bar-fill 2.2s cubic-bezier(.65,0,.15,1) forwards 0.1s;
  }
  @keyframes bar-fill{to{right:0;}}

  /* self-dismissing safety net in case JS never fires */
  #preloader{animation:preloader-failsafe 0s linear 5.5s forwards;}
  @keyframes preloader-failsafe{to{opacity:0;visibility:hidden;pointer-events:none;}}

  @media (prefers-reduced-motion: reduce){
    .globe-mark{animation-duration:0.6s;}
  }
  @media (max-width:520px){
    .globe-mark{height:110px;}
    .preloader-word{font-size:15px;}
    .preloader-word .pw-line{letter-spacing:0.36em;}
    .preloader-word .pw-line2{letter-spacing:0.42em;}
  }
