  :root{
    /* Fine Lapidary — Maison palette: deep ink, warm ivory, antique gold, a
       single reserved emerald accent. Restrained and flat, in the manner of
       the great jewelry and leather maisons — no busy texture, no clutter. */
    --bg: #faf8f3;
    --bg-alt: #f2efe6;
    --bg-alt-2: #e8e2d2;
    --ink: #0e0e0a;
    --ink-dim: #3c3b34;
    --ink-muted: #716e63;
    --error: #8a333f;
    --brass: #9c7a3d;
    --brass-bright: #a9822f;
    --brass-soft: rgba(169,130,47,0.16);
    --rule: rgba(20,20,15,0.09);
    --rule-strong: rgba(20,20,15,0.16);

    --accent: #0d3d2c;
    --accent-bright: #145c43;
    --accent-soft: rgba(13,61,44,0.12);
    --accent-2: #14140f;
    --accent-2-bright: #34322a;
    --accent-2-soft: rgba(20,20,15,0.08);

    --emerald: #0d3d2c;
    --ruby: #6d1f2b;
    --sapphire: #1c3454;
    --tourmaline: #14584a;
    --spinel: #6d2a45;
    --tanzanite: #33355e;

    --serif: 'Cormorant Garamond', serif;
    --display: 'Bodoni Moda', serif;
    --script: 'Parisienne', cursive;
    --sans: 'Inter', sans-serif;
    --mono: 'IBM Plex Mono', monospace;
  }

  [data-theme="dark"]{
    --bg: #0a0a08;
    --bg-alt: #15140f;
    --bg-alt-2: #1e1c15;
    --ink: #f3efe4;
    --ink-dim: #d8d3c4;
    --ink-muted: #948f7f;
    --error: #d19097;
    --brass: #a9822f;
    --brass-bright: #cba24e;
    --brass-soft: rgba(203,162,78,0.2);
    --rule: rgba(243,239,228,0.1);
    --rule-strong: rgba(243,239,228,0.18);

    --accent: #14584a;
    --accent-bright: #1f7a63;
    --accent-soft: rgba(20,88,74,0.22);
    --accent-2: #f3efe4;
    --accent-2-bright: #cba24e;
    --accent-2-soft: rgba(243,239,228,0.1);
  }

  body,
  .wrap,
  .stones-chart,
  .process-photo,
  .history-slideshow,
  .cookie-banner,
  .cookie-panel-inner{
    transition:background-color 0.4s ease, color 0.4s ease, border-color 0.4s ease;
  }

  *{margin:0;padding:0;box-sizing:border-box;}

  html{scroll-behavior:smooth;}

  body{
    background-color:var(--bg);
    color:var(--ink);
    font-family:var(--serif);
    font-weight:400;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  [data-theme="dark"] body{
    background-color:var(--bg);
  }

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
  }

  a{color:inherit;text-decoration:none;}

  .wrap{
    max-width:1160px;
    margin:0 auto;
    padding:0 40px;
  }

  .eyebrow{
    font-family:var(--serif);
    font-style:italic;
    font-size:13px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--brass-bright);
  }

  .label-muted{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--ink-muted);
  }

  h1,h2,h3{
    font-family:var(--serif);
    font-weight:500;
    letter-spacing:0;
  }

  :focus-visible{
    outline:2px solid var(--brass-bright);
    outline-offset:3px;
  }

  .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;
  }

  /* ---------- NAV ---------- */
  header{
    position:fixed;
    top:0; left:0; right:0;
    z-index:100;
    padding:26px 0;
    transition:background 0.4s ease, padding 0.4s ease, border-color 0.4s ease;
    border-bottom:1px solid transparent;
  }
  header.scrolled{
    background:rgba(255,255,255,0.92);
    backdrop-filter:blur(10px);
    padding:16px 0;
    border-bottom:1px solid var(--rule);
  }
  /* Inner pages open on a photo banner of unpredictable brightness —
     keep the header on a consistent light backing so its dark icons
     stay legible whether or not the visitor has scrolled. */
  body.has-photo-hero header:not(.scrolled){
    background:rgba(250,248,243,0.82);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--rule);
  }
  nav.wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
  .logo{
    display:flex;
    align-items:center;
    gap:11px;
  }
  .logo-mark{flex-shrink:0;}
  .logo-mark .ring{stroke:var(--brass);}
  .logo-mark .inner{stroke:var(--brass-bright); opacity:0.7;}
  .logo-mark-img{
    flex-shrink:0;
    border-radius:50%;
    overflow:hidden;
    background:var(--bg-alt);
    border:1px solid var(--rule-strong);
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .logo-mark-img img{
    width:100%;
    height:100%;
    object-fit:cover;
    transform:scale(1.6) translateY(6%);
  }
  footer .logo-mark-img{width:22px; height:22px;}
  .wordmark{
    font-family:var(--serif);
    font-size:26px;
    letter-spacing:0.05em;
    text-transform:uppercase;
    line-height:1;
  }
  .wordmark em{
    font-family:var(--serif);
    font-style:italic;
    color:var(--brass-bright);
    font-weight:500;
  }
  footer .logo-mark svg{width:22px;height:22px;}
  footer .wordmark{font-size:15px;}
  .navlinks{
    display:flex;
    gap:40px;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:0.14em;
    text-transform:uppercase;
  }
  .navlinks a{
    color:var(--ink-dim);
    position:relative;
    padding-bottom:4px;
  }
  .navlinks a::after{
    content:'';
    position:absolute;
    left:0; bottom:0;
    width:0; height:1px;
    background:var(--brass-bright);
    transition:width 0.3s ease;
  }
  .navlinks a:hover::after{width:100%;}
  .nav-cta{
    border:1px solid var(--accent-2-soft);
    color:var(--accent-2);
    padding:9px 18px;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    transition:background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
  }
  .nav-cta:hover{background:var(--accent-2-soft); border-color:var(--accent-2); color:var(--accent-2-bright);}
  .navlinks-mobile{display:none;}

  /* ---------- ICON NAV (new minimal header) ---------- */
  .icon-nav{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
  }
  .icon-nav-left,
  .icon-nav-right{
    display:flex;
    align-items:center;
    gap:26px;
  }
  .icon-nav-logo{
    display:flex;
    align-items:center;
    gap:10px;
  }
  .icon-btn{
    display:flex;
    align-items:center;
    gap:9px;
    font-family:var(--mono);
    font-size:14.5px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--ink-dim);
    background:transparent;
    border:none;
    cursor:pointer;
    padding:0;
  }
  .icon-btn svg{width:24px; height:24px; flex-shrink:0;}
  .icon-btn:hover{color:var(--brass-bright);}
  @media (max-width:900px){
    .icon-btn .icon-label{display:none;}
    .icon-nav-left,.icon-nav-right{gap:18px;}
    .icon-nav-logo .wordmark{font-size:19px;}
  }
  @media (max-width:480px){
    .icon-nav-left .icon-btn[aria-label="Home"]{display:none;}
    .icon-nav-left,.icon-nav-right{gap:14px;}
  }
  @media (max-width:560px){
    .icon-nav-logo{display:none;}
  }

  /* ---------- SEARCH OVERLAY ---------- */
  .search-overlay{
    position:fixed;
    inset:0;
    background:rgba(30,28,26,0.5);
    z-index:300;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding-top:120px;
  }
  .search-overlay[hidden]{display:none;}
  .search-box{
    background:var(--bg);
    width:min(600px, 90vw);
    padding:30px;
    border-radius:6px;
    box-shadow:0 30px 80px rgba(30,28,26,0.3);
  }
  .search-box form{
    display:flex;
    gap:10px;
    border-bottom:2px solid var(--brass);
    padding-bottom:14px;
  }
  .search-box input{
    flex:1;
    border:none;
    background:transparent;
    font-family:var(--serif);
    font-size:22px;
    color:var(--ink);
    outline:none;
  }
  .search-box button{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    background:var(--brass);
    color:#fffaf3;
    border:none;
    padding:10px 18px;
    cursor:pointer;
    border-radius:2px;
  }
  .search-results{
    margin-top:18px;
    max-height:300px;
    overflow-y:auto;
  }
  .search-results a{
    display:block;
    padding:12px 0;
    border-bottom:1px solid var(--rule);
    color:var(--ink-dim);
  }
  .search-results a:hover{color:var(--brass-bright);}
  .search-empty{
    margin-top:16px;
    font-size:14px;
    color:var(--ink-muted);
  }

  /* ---------- TOP VIDEO BANNER (full-bleed) ---------- */
  .top-video-banner-outer{
    position:relative;
    min-height:100vh;
    min-height:100svh;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-end;
    width:100%;
    padding:0 40px 60px;
    text-align:center;
    overflow:hidden;
  }
  .top-video-banner{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    overflow:hidden;
    background:#1a1814;
  }
  .top-video-banner::after{
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.05) 50%, rgba(0,0,0,0.55) 100%);
  }
  .top-video-banner video,
  .top-video-banner img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  .cinematic-hero-content{
    position:relative;
    z-index:1;
    max-width:840px;
  }
  .cinematic-hero-content .eyebrow{
    color:var(--brass-bright);
    text-shadow:0 2px 14px rgba(0,0,0,0.5);
  }
  .cinematic-hero-content h1{
    font-size:clamp(40px,7vw,84px);
    line-height:1.05;
    color:#fff;
    margin:18px 0 22px;
    text-shadow:0 4px 34px rgba(0,0,0,0.5);
  }
  .cinematic-hero-content p.sub{
    font-size:clamp(15px,1.8vw,19px);
    font-weight:300;
    color:rgba(255,255,255,0.9);
    max-width:620px;
    margin:0 auto 38px;
    text-shadow:0 2px 18px rgba(0,0,0,0.45);
  }
  .btn-outline-light{
    display:inline-flex;
    align-items:center;
    border:1px solid rgba(255,255,255,0.55);
    color:#fff;
    padding:14px 28px;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    transition:background 0.3s ease, border-color 0.3s ease;
  }
  .btn-outline-light:hover{background:rgba(255,255,255,0.14); border-color:#fff;}

  .hero-signature{
    position:absolute;
    right:40px;
    bottom:28px;
    z-index:1;
    font-family:var(--serif);
    font-style:italic;
    font-weight:400;
    font-size:14px;
    letter-spacing:0.04em;
    color:rgba(255,255,255,0.62);
    text-shadow:0 2px 12px rgba(0,0,0,0.45);
    pointer-events:none;
  }
  @media (max-width:700px){
    .hero-signature{right:24px; bottom:18px; font-size:12px;}
    .top-video-banner-outer{min-height:78vh; min-height:78svh;}
  }
  [dir="rtl"] .hero-signature{right:auto; left:40px;}
  @media (max-width:700px){
    [dir="rtl"] .hero-signature{left:24px;}
  }

  .top-video-quote{
    position:relative;
    z-index:1;
    margin-top:0;
    font-family:var(--serif);
    font-style:italic;
    font-weight:600;
    font-size:clamp(15px,3.2vw,40px);
    line-height:1.3;
    color:#fff;
    text-shadow:0 2px 20px rgba(0,0,0,0.4);
    max-width:100%;
    white-space:nowrap;
  }
  @media (max-width:900px){
    .top-video-banner-outer{padding:0 24px 40px;}
    .top-video-quote{white-space:normal; max-width:90%;}
  }

  /* ---------- HERO ---------- */
  .hero{
    display:flex;
    flex-direction:column;
    justify-content:center;
    position:relative;
    padding-top:60px;
    padding-bottom:80px;
    background:
      radial-gradient(ellipse 60% 50% at 80% 10%, rgba(168,137,90,0.06), transparent 60%),
      radial-gradient(ellipse 50% 40% at 10% 90%, rgba(30,28,26,0.03), transparent 60%);
  }
  .hero-eyebrow{margin-bottom:28px;}
  .hero h1{
    font-size:clamp(38px, 6vw, 74px);
    max-width:920px;
    line-height:1.08;
    color:var(--ink);
  }
  .hero h1 em{
    font-style:italic;
    color:var(--brass-bright);
    font-weight:400;
  }
  .hero p.sub{
    max-width:560px;
    margin-top:28px;
    font-size:17px;
    color:var(--ink-dim);
    font-weight:300;
  }
  .hero-actions{
    margin-top:44px;
    display:flex;
    gap:20px;
    align-items:center;
  }
  .btn-primary{
    background:var(--accent);
    color:#fffaf3;
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    padding:15px 30px;
    font-weight:500;
    transition:background 0.3s ease, transform 0.3s ease;
    display:inline-block;
  }
  .btn-primary:hover{background:var(--accent-bright); transform:translateY(-1px);}
  .btn-text{
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--ink-dim);
    border-bottom:1px solid var(--rule-strong);
    padding-bottom:3px;
    transition:color 0.3s ease, border-color 0.3s ease;
  }
  .btn-text:hover{color:var(--brass-bright); border-color:var(--brass-bright);}

.btn-outline{
  display:inline-flex;
  align-items:center;
  border:1px solid var(--rule-strong);
  color:var(--ink);
  padding:14px 28px;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  transition:background 0.3s ease, border-color 0.3s ease;
}
.btn-outline:hover{background:var(--bg-alt); border-color:var(--ink-dim);}

  /* materials passport strip */
  .passport{
    margin-top:88px;
    display:flex;
    flex-wrap:wrap;
    gap:0;
    border-top:1px solid var(--rule);
  }
  .passport-item{
    flex:1 1 150px;
    padding:22px 24px 0 0;
    border-right:1px solid var(--rule);
    display:flex;
    align-items:center;
    gap:14px;
  }
  .passport-item:last-child{border-right:none;}
  .facet{
    width:34px;
    height:34px;
    flex-shrink:0;
    clip-path:polygon(22% 0%, 78% 0%, 100% 22%, 100% 78%, 78% 100%, 22% 100%, 0% 78%, 0% 22%);
    position:relative;
    box-shadow:0 0 0 1px rgba(0,0,0,0.2) inset;
  }
  .facet::after{
    content:'';
    position:absolute;
    top:0; left:0; right:0; height:45%;
    background:linear-gradient(to bottom, rgba(255,255,255,0.35), transparent);
    clip-path:inherit;
  }
  .facet.emerald{background:var(--emerald);}
  .facet.ruby{background:var(--ruby);}
  .facet.sapphire{background:var(--sapphire);}
  .facet.tourmaline{background:var(--tourmaline);}
  .facet.spinel{background:var(--spinel);}
  .facet.tanzanite{background:var(--tanzanite);}

  /* photo chip — circular, for hero passport strip */
  .facet-chip{
    width:38px; height:38px;
    border-radius:50%;
    flex-shrink:0;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    box-shadow:0 0 0 1px rgba(0,0,0,0.3) inset, 0 0 0 1px var(--rule);
  }
  .facet-chip img{width:82%;height:82%;object-fit:contain;}
  .facet-chip.emerald{background:var(--emerald);}
  .facet-chip.ruby{background:var(--ruby);}
  .facet-chip.sapphire{background:var(--sapphire);}
  .facet-chip.tourmaline{background:var(--tourmaline);}
  .facet-chip.spinel{background:var(--spinel);}
  .facet-chip.tanzanite{background:var(--tanzanite);}

  /* photo frame — for stone grid cards */
  .stone-photo{
    aspect-ratio:1/1;
    width:100%;
    margin-bottom:24px;
    background:var(--bg-alt-2);
    border:1px solid var(--rule);
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    position:relative;
  }
  .stone-photo::before{
    content:'';
    position:absolute;
    inset:0;
    box-shadow:inset 0 0 40px rgba(0,0,0,0.5);
    pointer-events:none;
  }
  .stone-photo img{
    max-width:78%;
    max-height:78%;
    object-fit:contain;
    filter:drop-shadow(0 14px 22px rgba(60,53,44,0.22));
    transition:transform 0.6s ease;
  }
  .stone-card:hover .stone-photo img{transform:scale(1.06);}

  .passport-name{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--ink-muted);
  }

  /* ---------- SECTION SCAFFOLD ---------- */
  section{padding:90px 0;}
  .section-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:40px;
    margin-bottom:44px;
    border-bottom:1px solid var(--rule);
    padding-bottom:28px;
  }
  .section-head h2{
    font-size:clamp(28px,3.4vw,44px);
    font-weight:400;
  }
  .section-head .num{
    font-family:var(--mono);
    font-size:12px;
    color:var(--ink-muted);
    letter-spacing:0.1em;
  }

  html.js-ready .reveal{opacity:0; transform:translateY(24px); transition:opacity 0.8s ease, transform 0.8s ease;}
  html.js-ready .reveal.in-view{opacity:1; transform:translateY(0);}

  /* ---------- ABOUT ---------- */
  .about-grid{
    display:block;
  }
  .about-text p{
    color:var(--ink-dim);
    font-size:16px;
    max-width:640px;
    margin-bottom:20px;
  }
  .about-text p:first-child{
    font-size:19px;
    color:var(--ink);
    line-height:1.65;
  }
  .ledger{
    border-top:1px solid var(--rule-strong);
  }
  .ledger-row{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    padding:22px 0;
    border-bottom:1px solid var(--rule);
  }
  .ledger-row .k{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--ink-muted);
  }
  .ledger-row .v{
    font-family:var(--serif);
    font-size:20px;
    color:var(--brass-bright);
    text-align:right;
  }

  /* ---------- STONES CHART ---------- */
  .stones-story{
    max-width:980px;
    margin-bottom:64px;
  }
  .stones-story-lead{
    font-family:var(--serif);
    font-style:italic;
    font-weight:700;
    font-size:clamp(26px,3.4vw,38px);
    color:var(--ink);
    margin-bottom:36px;
    line-height:1.35;
    padding-left:26px;
    border-left:3px solid var(--brass);
    max-width:820px;
  }
  .stones-story-body{
    column-count:2;
    column-gap:56px;
    column-rule:1px solid var(--rule);
  }
  .stones-story-body p{
    font-family:var(--sans);
    font-size:15.5px;
    line-height:1.8;
    color:var(--ink-dim);
    font-weight:300;
    margin-bottom:22px;
    break-inside:avoid;
  }
  .stones-story-close{
    font-family:var(--serif);
    font-size:20px;
    letter-spacing:0.03em;
    color:var(--brass-bright);
    font-weight:600;
    margin-top:34px;
    padding-top:28px;
    border-top:1px solid var(--rule-strong);
  }
  @media (max-width:800px){
    .stones-story-body{column-count:1;}
    .stones-story-lead{padding-left:20px;}
  }
  .stones-chart{
    border:1px solid var(--rule-strong);
    border-radius:6px;
    overflow:hidden;
    background:#ffffff;
    box-shadow:0 16px 40px rgba(61,42,36,0.12);
  }
  .stones-chart img{
    width:100%;
    height:auto;
    display:block;
  }

  /* ---------- DISCRETION BAND ---------- */
  .discretion{
    padding:120px 0;
    text-align:center;
    border-top:1px solid var(--rule);
    border-bottom:1px solid var(--rule);
    background:var(--bg-alt-2);
  }
  .discretion blockquote{
    font-family:var(--serif);
    font-style:italic;
    font-weight:600;
    font-size:clamp(26px,3.6vw,40px);
    max-width:780px;
    margin:0 auto;
    line-height:1.4;
    color:var(--ink);
  }
  .discretion .attrib{
    margin-top:26px;
  }

  /* ---------- MANUFACTURING ---------- */
  .capabilities-grid{
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:80px;
  }
  .capabilities-text p{
    color:var(--ink-dim);
    font-size:16px;
    max-width:400px;
  }
  .capabilities-list{
    list-style:none;
    padding:0;
    margin:0;
    border-top:1px solid var(--rule);
  }
  .capabilities-list li{
    position:relative;
    padding:18px 0 18px 30px;
    border-bottom:1px solid var(--rule);
    font-size:15px;
    color:var(--ink-dim);
  }
  .capabilities-list li::before{
    content:'';
    position:absolute;
    left:0; top:27px;
    width:14px; height:1px;
    background:var(--brass);
  }

  /* ---------- CLIENTELE ---------- */
  .clientele-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--rule);
    border-top:1px solid var(--rule);
    border-bottom:1px solid var(--rule);
  }
  .clientele-item{
    background:var(--bg);
    padding:36px 34px;
  }
  .clientele-item .eyebrow{margin-bottom:14px; display:block;}
  .clientele-item h3{
    font-size:20px;
    margin-bottom:12px;
    font-weight:400;
  }
  .clientele-item p{
    color:var(--ink-dim);
    font-size:14.5px;
  }

  /* ---------- FAQ ---------- */
  .faq-list{
    max-width:820px;
    margin-left:auto;
    margin-right:auto;
  }
  .faq-item{
    border-bottom:1px solid var(--rule);
    padding:26px 0;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  .faq-num{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:0.1em;
    color:var(--brass-bright);
    margin-bottom:10px;
  }
  .faq-item summary{
    font-family:var(--serif);
    font-size:19px;
    cursor:pointer;
    list-style:none;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:14px;
    color:var(--ink);
    width:100%;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary::after{
    content:'+';
    font-family:var(--sans);
    font-size:22px;
    font-weight:300;
    color:var(--brass-bright);
    flex-shrink:0;
    transition:transform 0.3s ease;
  }
  .faq-item[open] summary::after{transform:rotate(45deg);}
  .faq-item p{
    color:var(--ink-dim);
    font-size:15px;
    max-width:640px;
    margin-top:16px;
  }

  /* ---------- CERTIFICATION ---------- */
  .cert-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:60px;
  }
  .cert-item .mark{
    width:60px; height:60px;
    border:1.5px solid var(--brass);
    background:var(--bg-alt);
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    margin-bottom:24px;
    color:var(--brass-bright);
  }
  .cert-item .mark svg{width:30px; height:30px;}
  .cert-item h3{
    font-size:19px;
    margin-bottom:12px;
    font-weight:400;
  }
  .cert-item p{
    color:var(--ink-dim);
    font-size:14.5px;
    max-width:340px;
  }

  /* ---------- CONTACT ---------- */
  .contact-grid{
    display:flex;
    flex-direction:column;
    gap:60px;
  }
  .contact-lead h2{
    font-size:clamp(30px,4vw,50px);
    margin-bottom:24px;
    max-width:560px;
    margin-left:auto;
    margin-right:auto;
  }
  .contact-lead p{
    color:var(--ink-dim);
    max-width:440px;
    margin-bottom:36px;
  }

  .enquiry-form{max-width:440px; margin:0 auto; text-align:left;}
  .form-row{margin-bottom:20px;}
  .form-row label{
    display:block;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--ink-muted);
    margin-bottom:8px;
  }
  .form-row input,
  .form-row textarea{
    width:100%;
    background:var(--bg-alt);
    border:1px solid var(--rule-strong);
    color:var(--ink);
    font-family:var(--sans);
    font-size:16px;
    font-weight:300;
    padding:13px 14px;
    border-radius:2px;
    transition:border-color 0.3s ease, background 0.3s ease;
  }
  .form-row input:focus,
  .form-row textarea:focus{
    border-color:var(--brass);
    background:var(--bg);
    outline:none;
  }
  .form-row textarea{resize:vertical; min-height:100px;}
  .enquiry-form .btn-primary{
    border:none;
    cursor:pointer;
    font-family:var(--mono);
  }
  .form-note{
    margin-top:18px;
    font-size:13px;
    color:var(--ink-muted);
  }
  .form-note a:hover{color:var(--brass-bright);}
  .form-status{
    margin-top:18px;
    font-family:var(--mono);
    font-size:12.5px;
    letter-spacing:0.02em;
    color:var(--brass-bright);
  }
  .form-status.error{color:var(--error);}
  .contact-details .row{
    display:flex;
    gap:20px;
    align-items:center;
    justify-content:center;
    padding:22px 0;
    border-top:1px solid var(--rule);
  }
  .contact-details .row:last-child{border-bottom:1px solid var(--rule);}
  .row-icon{
    width:40px; height:40px;
    flex-shrink:0;
    border-radius:50%;
    border:1.5px solid var(--brass);
    background:var(--bg-alt);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--brass-bright);
  }
  .row-icon svg{width:18px; height:18px;}
  .contact-details .row > div:last-child{
    display:flex;
    align-items:baseline;
    gap:14px;
    flex-wrap:wrap;
  }
  .contact-details .k{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--ink-muted);
    flex-shrink:0;
    min-width:70px;
  }
  .contact-details .v{
    font-size:16px;
    color:var(--ink);
  }
  .contact-details .v a:hover{color:var(--brass-bright);}

  /* ---------- FOOTER ---------- */
  footer{
    padding:44px 0;
    border-top:1px solid var(--rule);
  }
  footer .wrap{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:16px;
  }
  footer .wordmark{font-size:15px;}
  footer .foot-note{
    font-family:var(--mono);
    font-size:11px;
    color:var(--ink-muted);
    letter-spacing:0.06em;
  }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:900px){
    .wrap{padding:0 24px;}
    .navlinks{display:none;}
    .about-grid,.contact-grid,.capabilities-grid{grid-template-columns:1fr; gap:50px;}
    .cert-grid,.clientele-grid{grid-template-columns:1fr; gap:44px;}
    .clientele-grid{gap:1px;}
    section{padding:64px 0;}
    .passport-item{flex:1 1 45%;}
  }
  @media (max-width:560px){
    .hero{padding-top:50px;}
    .hero-actions{flex-direction:column; align-items:flex-start; gap:16px;}
  }

/* ---------- ACCESSIBILITY: SKIP LINK ---------- */
.skip-link{
  position:absolute;
  top:-100px;
  left:16px;
  background:var(--brass-bright);
  color:#fffaf3;
  padding:12px 20px;
  z-index:1000;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  border-radius:2px;
  transition:top 0.2s ease;
}
.skip-link:focus{top:16px;}

/* ---------- MOBILE NAV ---------- */
.nav-toggle{
  display:none;
  width:40px; height:40px;
  border:1px solid var(--rule-strong);
  background:transparent;
  border-radius:2px;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  flex-shrink:0;
}
.nav-toggle span{
  position:relative;
  width:18px; height:1.5px;
  background:var(--ink);
  display:block;
}
.nav-toggle span::before,
.nav-toggle span::after{
  content:'';
  position:absolute;
  left:0;
  width:18px; height:1.5px;
  background:var(--ink);
  transition:transform 0.25s ease, top 0.25s ease;
}
.nav-toggle span::before{top:-6px;}
.nav-toggle span::after{top:6px;}
.nav-toggle[aria-expanded="true"] span{background:transparent;}
.nav-toggle[aria-expanded="true"] span::before{top:0; transform:rotate(45deg);}
.nav-toggle[aria-expanded="true"] span::after{top:0; transform:rotate(-45deg);}

.mobile-nav{
  display:block;
  position:fixed;
  top:0; right:0; bottom:0;
  width:min(320px, 84vw);
  background:var(--bg);
  z-index:99;
  padding:100px 32px 40px;
  box-shadow:-20px 0 50px rgba(74,44,52,0.18);
  transform:translateX(100%);
  transition:transform 0.35s ease;
  overflow-y:auto;
}
.mobile-nav.open{transform:translateX(0);}
.mobile-nav a{
  display:block;
  font-family:var(--serif);
  font-size:24px;
  padding:14px 0;
  border-bottom:1px solid var(--rule);
  color:var(--ink);
}
.mobile-nav .nav-cta{
  display:inline-block;
  margin-top:28px;
}
.nav-scrim{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(74,44,52,0.35);
  z-index:98;
  opacity:0;
  transition:opacity 0.3s ease;
}
.nav-scrim.open{display:block; opacity:1;}

@media (max-width:900px){
}

/* ---------- COOKIE CONSENT ---------- */
.cookie-banner{
  position:fixed;
  left:20px; right:20px; bottom:20px;
  max-width:560px;
  margin:0 auto;
  background:var(--bg-alt);
  border:1px solid var(--rule-strong);
  border-radius:6px;
  padding:26px 28px;
  box-shadow:0 24px 60px rgba(74,44,52,0.22);
  z-index:200;
}
.cookie-banner[hidden]{display:none;}
.cookie-banner h2{
  font-size:18px;
  margin-bottom:10px;
}
.cookie-banner p{
  font-size:14px;
  color:var(--ink-dim);
  margin-bottom:18px;
}
.cookie-banner p a{
  color:var(--brass-bright);
  text-decoration:underline;
}
.cookie-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.cookie-btn{
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  padding:11px 18px;
  border-radius:2px;
  cursor:pointer;
  border:1px solid var(--brass);
  background:transparent;
  color:var(--ink);
}
.cookie-btn.primary{background:var(--brass); color:#fffaf3; border-color:var(--brass);}
.cookie-btn:hover{background:var(--brass-soft);}
.cookie-btn.primary:hover{background:var(--brass-bright); border-color:var(--brass-bright);}

.cookie-panel{
  position:fixed;
  inset:0;
  background:rgba(74,44,52,0.4);
  z-index:210;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.cookie-panel[hidden]{display:none;}
.cookie-panel-inner{
  background:var(--bg);
  border-radius:8px;
  max-width:520px;
  width:100%;
  max-height:86vh;
  overflow-y:auto;
  padding:34px;
  box-shadow:0 30px 80px rgba(74,44,52,0.3);
}
.cookie-panel-inner h2{font-size:22px; margin-bottom:8px;}
.cookie-panel-inner > p{font-size:14px; color:var(--ink-dim); margin-bottom:24px;}
.cookie-category{
  border-top:1px solid var(--rule);
  padding:18px 0;
}
.cookie-category:last-of-type{border-bottom:1px solid var(--rule); margin-bottom:24px;}
.cookie-category-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin-bottom:6px;
}
.cookie-category-head h3{
  font-family:var(--serif);
  font-weight:600;
  font-size:16px;
  color:var(--ink);
}
.cookie-category p{font-size:13px; color:var(--ink-dim);}

/* accessible toggle switch */
.switch{position:relative; display:inline-block; width:42px; height:24px; flex-shrink:0;}
.switch input{position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer;}
.switch .track{
  position:absolute; inset:0;
  background:var(--rule-strong);
  border-radius:20px;
  transition:background 0.2s ease;
}
.switch .thumb{
  position:absolute; top:3px; left:3px;
  width:18px; height:18px;
  background:#fffaf3;
  border-radius:50%;
  transition:transform 0.2s ease;
}
.switch input:checked + .track{background:var(--brass);}
.switch input:checked + .track .thumb{transform:translateX(18px);}
.switch input:focus-visible + .track{outline:2px solid var(--brass-bright); outline-offset:2px;}
.switch input:disabled + .track{opacity:0.5; cursor:not-allowed;}

.cookie-panel-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:8px;
}

/* ---------- RESPONSIBILITY PAGE ---------- */
.policy-hero{
  padding:150px 0 60px;
}
.policy-hero.below-banner{
  padding:64px 0 20px;
  text-align:center;
}
.policy-hero.below-banner .sub,
.policy-hero.below-banner .hero-quote{
  margin-left:auto;
  margin-right:auto;
}
.policy-hero .eyebrow{margin-bottom:22px;}
.policy-hero h1{
  font-size:clamp(34px,5vw,58px);
  max-width:820px;
  line-height:1.12;
}
.policy-hero p.sub{
  font-family:var(--serif);
  max-width:640px;
  margin-top:24px;
  font-size:19px;
  color:var(--ink-dim);
}
.hero-quote{
  max-width:640px;
  margin-top:30px;
  padding-top:22px;
  border-top:1px solid var(--rule-strong);
  font-family:var(--serif);
  font-style:italic;
  font-weight:500;
  font-size:clamp(18px,2vw,22px);
  line-height:1.5;
  color:var(--brass-bright);
}
.hero-quote span{
  display:block;
  margin-top:10px;
  font-family:var(--serif);
  font-style:normal;
  font-size:14px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--ink-muted);
}
.policy-notice{
  margin-top:32px;
  padding:18px 22px;
  background:var(--bg-alt);
  border:1px solid var(--rule-strong);
  border-radius:4px;
  max-width:640px;
  font-size:13.5px;
  color:var(--ink-dim);
}
.policy-block{
  border-top:1px solid var(--rule);
  padding:56px 0;
}
.policy-block:last-of-type{border-bottom:1px solid var(--rule);}
.policy-block-head{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:40px;
}
.policy-block-head .num{
  font-family:var(--mono);
  font-size:12px;
  color:var(--ink-muted);
  letter-spacing:0.1em;
  padding-top:4px;
}
.policy-block h2{font-size:26px; margin-bottom:16px;}
.policy-block p{color:var(--ink-dim); font-size:15.5px; max-width:680px; margin-bottom:14px;}
.policy-block ul{color:var(--ink-dim); font-size:15px; max-width:680px; padding-left:20px; margin-top:10px;}
.policy-block ul li{margin-bottom:8px;}
@media (max-width:700px){
  .policy-block-head{grid-template-columns:1fr; gap:12px;}
}

/* ---------- FOOTER LINKS ---------- */
.footer-wrap{
  flex-wrap:wrap;
  gap:16px;
}
.footer-links{
  display:flex;
  gap:24px;
  font-family:var(--serif);
  font-size:15px;
  letter-spacing:0.02em;
  color:var(--ink-dim);
}
.footer-links a:hover{color:var(--brass-bright);}

/* ---------- WORKSHOP GALLERY ---------- */
.workshop-gallery{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:3px;
  margin-top:70px;
}
.workshop-gallery figure{
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
  margin:0;
  background:var(--bg-alt-2);
}
.workshop-gallery img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform 0.7s ease;
}
.workshop-gallery figure:hover img{transform:scale(1.06);}
.workshop-gallery figcaption{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:14px 16px;
  background:linear-gradient(to top, rgba(30,15,20,0.72), transparent);
  color:#fdf6f8;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  line-height:1.4;
}
@media (max-width:900px){
  .workshop-gallery{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
  .workshop-gallery{grid-template-columns:1fr;}
  .workshop-gallery figure{aspect-ratio:4/3;}
}

/* ---------- PROCESS STEPS ---------- */
.process-steps{
  display:flex;
  flex-direction:column;
  gap:56px;
  margin-top:80px;
}
.process-step{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:44px;
  align-items:center;
}
.process-photo-wrap{
  display:flex;
  flex-direction:column;
  align-items:center;
}
.process-photo{
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  border:2px solid var(--brass);
  border-radius:4px;
  background:#fff;
  padding:3px;
  box-shadow:0 8px 20px rgba(61,42,36,0.14);
}
.process-photo-caption{
  margin-top:9px;
  font-family:var(--mono);
  font-size:9.5px;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--ink-muted);
  text-align:center;
  line-height:1.4;
}
.process-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border-radius:2px;
  transition:transform 0.6s ease;
}
.process-step:hover .process-photo img{transform:scale(1.05);}
.process-step-num{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:0.1em;
  color:var(--brass-bright);
  margin-bottom:10px;
}
.process-step h3{
  font-size:22px;
  margin-bottom:12px;
  font-weight:400;
}
.process-step p{
  color:var(--ink-dim);
  font-size:15px;
  max-width:560px;
}
@media (max-width:700px){
  .process-step{grid-template-columns:1fr; gap:16px;}
  .process-photo{max-width:260px;}
}

@media (max-width:900px){
  .process-steps{gap:40px;}
}

/* ---------- GEMSTONE JOURNEY CHART ---------- */
.journey-chart{
  border:1px solid var(--rule-strong);
  border-radius:6px;
  overflow:hidden;
  background:#ffffff;
  box-shadow:0 16px 40px rgba(61,42,36,0.12);
}
.journey-chart img{
  width:100%;
  height:auto;
  display:block;
}

/* ---------- FOOTER SOCIAL ICONS ---------- */
.social-links{
  display:flex;
  gap:16px;
  align-items:center;
}
.social-links a{
  color:var(--ink-dim);
  display:flex;
  transition:color 0.2s ease;
}
.social-links a:hover{color:var(--brass-bright);}
.social-links svg{width:19px; height:19px;}

/* ---------- LANGUAGE SWITCHER ---------- */
.lang-switch{
  position:relative;
  margin-left:8px;
}
.lang-current{
  font-family:var(--mono);
  font-size:13.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  background:transparent;
  border:1px solid var(--rule-strong);
  padding:10px 16px;
  cursor:pointer;
  color:var(--ink);
}
.lang-current:hover{border-color:var(--brass);}
.lang-menu{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  background:var(--bg);
  border:1px solid var(--rule-strong);
  box-shadow:0 14px 34px rgba(30,28,26,0.14);
  min-width:140px;
  display:none;
  flex-direction:column;
  z-index:50;
}
.lang-switch.open .lang-menu{display:flex;}
.lang-menu a{
  padding:11px 16px;
  font-size:14px;
  color:var(--ink-dim);
  border-bottom:1px solid var(--rule);
}
.lang-menu a:last-child{border-bottom:none;}
.lang-menu a:hover{background:var(--bg-alt); color:var(--brass-bright);}
@media (max-width:900px){
  .lang-switch{display:none;}
}
.mobile-lang-switch{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:26px;
  padding-top:20px;
  border-top:1px solid var(--rule);
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:0.08em;
}
.mobile-lang-switch a{color:var(--ink-dim); padding:6px 0;}
.mobile-lang-switch a:hover{color:var(--brass-bright);}

.mobile-legal-links{
  display:flex;
  flex-direction:column;
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid var(--rule);
}
.mobile-legal-links a{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--ink-muted);
  padding:9px 0;
  border-bottom:none;
}
.mobile-legal-links a:hover{color:var(--brass-bright);}

/* ---------- RTL SUPPORT (Arabic) ---------- */
[dir="rtl"]{
  text-align:right;
}
[dir="rtl"] .nav-cta{
  margin-left:0;
  margin-right:8px;
}
[dir="rtl"] .lang-switch{
  margin-left:0;
  margin-right:8px;
}
[dir="rtl"] .lang-menu{
  right:auto;
  left:0;
}
[dir="rtl"] .process-step{
  direction:rtl;
}
[dir="rtl"] .hero-actions,
[dir="rtl"] .navlinks,
[dir="rtl"] .footer-links,
[dir="rtl"] .cookie-actions,
[dir="rtl"] .social-links{
  direction:rtl;
}
[dir="rtl"] .capabilities-list li,
[dir="rtl"] .policy-block ul,
[dir="rtl"] .stones-story-body,
[dir="rtl"] .about-text,
[dir="rtl"] .clientele-item,
[dir="rtl"] .cert-item,
[dir="rtl"] .faq-item{
  text-align:right;
}
[dir="rtl"] .capabilities-list li::before{
  left:auto;
  right:0;
}
[dir="rtl"] .stones-story-lead{
  border-left:none;
  border-right:3px solid var(--brass);
  padding-left:0;
  padding-right:26px;
}
[dir="rtl"] .contact-details .row,
[dir="rtl"] .process-step,
[dir="rtl"] .policy-block-head{
  direction:rtl;
}
[dir="rtl"] .row-icon{
  margin-left:20px;
  margin-right:0;
}
[dir="rtl"] .mobile-nav{
  right:auto;
  left:0;
  box-shadow:20px 0 50px rgba(30,28,26,0.18);
}
[dir="rtl"] .mobile-nav.open{
  transform:translateX(0);
}
[dir="rtl"] .mobile-nav{
  transform:translateX(-100%);
}
[dir="rtl"] .skip-link{
  left:auto;
  right:16px;
}
[dir="rtl"] .faq-item summary{
  flex-direction:row-reverse;
}
[dir="rtl"] .section-head{
  flex-direction:row-reverse;
}
[dir="rtl"] blockquote,
[dir="rtl"] .stones-story-close,
[dir="rtl"] .capabilities-text p,
[dir="rtl"] .hero p.sub,
[dir="rtl"] .top-video-quote{
  text-align:right;
}

/* Arabic font override */
[dir="rtl"] body,
[dir="rtl"] h1,
[dir="rtl"] h2,
[dir="rtl"] h3,
[dir="rtl"] .wordmark,
[dir="rtl"] .eyebrow,
[dir="rtl"] .label-muted,
[dir="rtl"] .num,
[dir="rtl"] blockquote,
[dir="rtl"] .btn-primary,
[dir="rtl"] .btn-text,
[dir="rtl"] .nav-cta{
  font-family:'Cairo', sans-serif;
}
[dir="rtl"] h1 em,
[dir="rtl"] .wordmark em{
  font-style:normal;
  font-weight:700;
}

/* ---------- STONES CHARTS GRID (multiple shape reference charts) ---------- */
.stones-charts-grid{
  display:flex;
  flex-direction:column;
  gap:28px;
  width:100%;
}
.stones-charts-grid .stones-chart{
  margin:0;
  overflow:hidden;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  border:1px solid var(--rule-strong);
  border-radius:6px;
  box-shadow:0 16px 40px rgba(61,42,36,0.12);
}
.stones-charts-grid .stones-chart img{
  width:100%;
  height:auto;
  object-fit:contain;
}

/* ---------- HISTORY TIMELINE ---------- */
.history-timeline{
  border-top:1px solid var(--rule-strong);
}
.history-row{
  display:grid;
  grid-template-columns:140px 1fr;
  gap:32px;
  align-items:baseline;
  padding:22px 0;
  border-bottom:1px solid var(--rule);
}
.history-year{
  font-family:var(--mono);
  font-size:18px;
  color:var(--brass-bright);
  letter-spacing:0.02em;
}
.history-text{
  font-size:16px;
  color:var(--ink-dim);
  font-weight:300;
}
@media (max-width:600px){
  .history-row{grid-template-columns:1fr; gap:6px;}
}

/* ---------- CHAPTER LEDE (narrative bridge sentences) ---------- */
.chapter-lede{
  font-family:var(--serif);
  font-style:italic;
  font-size:19px;
  color:var(--ink-dim);
  max-width:600px;
  margin-bottom:32px;
  line-height:1.5;
}

/* ---------- HISTORY SLIDESHOW ---------- */
.history-slideshow{
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 20px 50px rgba(30,28,26,0.14);
  border:1px solid var(--rule-strong);
}
.history-slides{
  position:relative;
  min-height:380px;
}
.history-slide{
  display:none;
  grid-template-columns:1fr 1fr;
  min-height:380px;
}
.history-slide.active{display:grid;}

/* History slideshow is now text-only (no images) — center and widen the content */
#historySlideshow .history-slide.active{
  display:flex;
  align-items:center;
  justify-content:center;
}
#historySlideshow .history-slide-text{
  max-width:640px;
  text-align:center;
  align-items:center;
  padding:64px 48px;
}
#historySlideshow .history-slide-text p{
  max-width:520px;
}
#historySlideshow .history-badge{
  margin-left:auto;
  margin-right:auto;
}

.history-slide-text{
  padding:50px 48px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:var(--bg);
}
.history-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  font-family:var(--mono);
  font-size:14px;
  border:1px solid currentColor;
  margin-bottom:22px;
  color:var(--brass-bright);
}
.history-slide-year{
  font-family:var(--serif);
  font-size:44px;
  font-weight:600;
  color:var(--brass-bright);
  margin-bottom:16px;
  line-height:1;
}
.history-slide-text h3{
  font-size:21px;
  font-weight:500;
  margin-bottom:14px;
  line-height:1.35;
  color:var(--ink);
}
.history-slide-text p{
  font-size:14.5px;
  color:var(--ink-dim);
  line-height:1.6;
  max-width:360px;
}
.history-slide-media{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  border:6px solid var(--bg);
  outline:2px solid var(--brass);
  outline-offset:-6px;
}
.history-slide-media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.history-icon{
  width:120px;
  height:120px;
  color:rgba(255,255,255,0.55);
}
/* badge + media color themes, matching the reference palette */
.history-slide[data-badge="navy"] .history-badge{color:#1c2b45; border-color:#1c2b45;}
.history-slide[data-badge="navy"] .history-slide-year{color:#1c2b45;}
.media-navy{background:linear-gradient(135deg,#1c2b45,#3a4d6b);}

.history-slide[data-badge="green"] .history-badge{color:#2d5a3d; border-color:#2d5a3d;}
.history-slide[data-badge="green"] .history-slide-year{color:#2d5a3d;}

.history-slide[data-badge="sage"] .history-badge{color:#4a7a5c; border-color:#4a7a5c;}
.history-slide[data-badge="sage"] .history-slide-year{color:#4a7a5c;}
.media-sage{background:linear-gradient(135deg,#5c8a6d,#8fae94);}

.history-slide[data-badge="gold"] .history-badge{color:#b98a2e; border-color:#b98a2e;}
.history-slide[data-badge="gold"] .history-slide-year{color:#b98a2e;}
.media-gold{background:linear-gradient(135deg,#b98a2e,#d9b45f);}

.history-slide[data-badge="rust"] .history-badge{color:#b0602e; border-color:#b0602e;}
.history-slide[data-badge="rust"] .history-slide-year{color:#b0602e;}
.media-rust{background:linear-gradient(135deg,#a85c30,#c98a5c);}

.history-slide[data-badge="purple"] .history-badge{color:#6b4c8a; border-color:#6b4c8a;}
.history-slide[data-badge="purple"] .history-slide-year{color:#6b4c8a;}
.media-purple{background:linear-gradient(135deg,#5f4a7a,#8a6ba8);}

.history-slide[data-badge="teal"] .history-badge{color:#2d6b7a; border-color:#2d6b7a;}
.history-slide[data-badge="teal"] .history-slide-year{color:#2d6b7a;}
.media-teal{background:linear-gradient(135deg,#265b68,#4d8a99);}

.history-slide[data-badge="darkteal"] .history-badge{color:#1f5c4a; border-color:#1f5c4a;}
.history-slide[data-badge="darkteal"] .history-slide-year{color:#1f5c4a;}
.media-darkteal{background:linear-gradient(135deg,#1a4d3d,#2d7a5f);}

.history-controls{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 24px;
  background:var(--bg-alt);
  border-top:1px solid var(--rule);
}
.history-dots{
  display:flex;
  gap:8px;
}
.history-dots button{
  width:8px;
  height:8px;
  border-radius:50%;
  border:none;
  background:var(--rule-strong);
  cursor:pointer;
  padding:0;
}
.history-dots button.active{background:var(--brass-bright); width:22px; border-radius:4px; transition:width 0.25s ease;}
.history-arrow{
  width:36px;
  height:36px;
  border-radius:50%;
  border:1px solid var(--rule-strong);
  background:var(--bg);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  color:var(--ink-dim);
  margin-left:10px;
}
.history-arrow:hover{border-color:var(--brass); color:var(--brass-bright);}

@media (max-width:800px){
  .history-slide{grid-template-columns:1fr;}
  .history-slide-media{min-height:200px;}
  .history-slide-text{padding:36px 28px;}
}

/* ---------- STONES SLIDESHOW (reuses .history-slide* structure) ---------- */
.stone-origin-label{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--ink-muted);
  margin-bottom:16px;
}
#stonesSlideshow .history-slide-media img{
  max-width:70%;
  max-height:70%;
  width:auto;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 14px 22px rgba(0,0,0,0.35));
}
.media-emerald{background:radial-gradient(circle at 50% 45%, #4a8f6a, #1f4a34);}
.media-ruby{background:radial-gradient(circle at 50% 45%, #b0334a, #4a1420);}
.media-sapphire{background:radial-gradient(circle at 50% 45%, #3f5f9e, #16233f);}
.media-tourmaline{background:radial-gradient(circle at 50% 45%, #2fa89a, #103d38);}
.media-spinel{background:radial-gradient(circle at 50% 45%, #c65a80, #4a1c30);}
.media-tanzanite{background:radial-gradient(circle at 50% 45%, #5a5fae, #201f47);}

.history-slide[data-badge="emerald"] .history-badge,
.history-slide[data-badge="emerald"] .history-slide-year{color:#2e6b4f; border-color:#2e6b4f;}
.history-slide[data-badge="ruby"] .history-badge,
.history-slide[data-badge="ruby"] .history-slide-year{color:#9e2b3e; border-color:#9e2b3e;}
.history-slide[data-badge="sapphire"] .history-badge,
.history-slide[data-badge="sapphire"] .history-slide-year{color:#2c4d7a; border-color:#2c4d7a;}
.history-slide[data-badge="tourmaline"] .history-badge,
.history-slide[data-badge="tourmaline"] .history-slide-year{color:#1c8f86; border-color:#1c8f86;}
.history-slide[data-badge="spinel"] .history-badge,
.history-slide[data-badge="spinel"] .history-slide-year{color:#b84b67; border-color:#b84b67;}
.history-slide[data-badge="tanzanite"] .history-badge,
.history-slide[data-badge="tanzanite"] .history-slide-year{color:#4a5fa0; border-color:#4a5fa0;}

/* ============================================================
   PLAYFUL MICRO-INTERACTIONS
   ============================================================ */

/* ---------- STAT COUNTER STRIP ---------- */
.stat-strip{
  display:flex;
  gap:56px;
  margin-top:56px;
  flex-wrap:wrap;
}
.stat-item{text-align:left;}
.stat-number{
  font-family:var(--serif);
  font-size:clamp(32px,4vw,44px);
  font-weight:600;
  color:var(--accent);
  line-height:1;
  display:inline-block;
}
.stat-label{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--ink-muted);
  margin-top:8px;
}

/* ---------- BOUNCY BUTTON HOVERS ---------- */
.btn-primary{
  transition:transform 0.35s cubic-bezier(0.34,1.56,0.64,1), background 0.25s ease, box-shadow 0.3s ease;
}
.btn-primary:hover{
  transform:translateY(-3px) scale(1.03);
  box-shadow:0 14px 30px rgba(14,91,67,0.35);
}
.btn-primary:active{transform:translateY(-1px) scale(0.98);}

.icon-btn{transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1), color 0.2s ease;}
.icon-btn:hover{transform:translateY(-2px);}
.icon-btn:hover svg{animation:wiggle 0.5s ease;}
@keyframes wiggle{
  0%,100%{transform:rotate(0deg);}
  25%{transform:rotate(-8deg);}
  75%{transform:rotate(8deg);}
}

/* ---------- MAGNETIC BUTTON (cursor pull) ---------- */
.btn-magnetic{will-change:transform;}

/* ---------- GEMSTONE IMAGE SHIMMER ---------- */
.history-slide-media,
.stone-photo,
.process-photo{
  position:relative;
  overflow:hidden;
}
.history-slide-media::after,
.stone-photo::after,
.process-photo::after{
  content:'';
  position:absolute;
  top:0; left:-150%;
  width:60%; height:100%;
  background:linear-gradient(115deg, transparent, rgba(255,255,255,0.25), transparent);
  transform:skewX(-20deg);
  transition:left 0.9s ease;
  pointer-events:none;
}
.history-slide:hover .history-slide-media::after,
.stone-card:hover .stone-photo::after,
.process-step:hover .process-photo::after{
  left:150%;
}

/* ---------- PLAYFUL NAV UNDERLINE ---------- */
.mobile-nav a{position:relative; overflow:hidden;}
.mobile-nav a::before{
  content:'';
  position:absolute;
  left:0; bottom:12px;
  width:0; height:2px;
  background:var(--brass);
  transition:width 0.3s cubic-bezier(0.34,1.56,0.64,1);
}
.mobile-nav a:hover::before{width:40px;}

/* ---------- SLIDESHOW DOT POP ---------- */
.history-dots button{
  transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1), width 0.25s ease, background 0.25s ease;
}
.history-dots button.active{animation:dotPop 0.4s ease;}
@keyframes dotPop{
  0%{transform:scale(1);}
  40%{transform:scale(1.4);}
  100%{transform:scale(1);}
}

/* ---------- LOGO WIGGLE ON HOVER ---------- */
.logo-mark-img{transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1);}
.logo:hover .logo-mark-img{transform:rotate(-8deg) scale(1.08);}

/* ---------- STONE CHART HOVER LIFT ---------- */
.stones-chart{transition:transform 0.35s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.3s ease;}
.stones-chart:hover{transform:translateY(-6px); box-shadow:0 24px 50px rgba(61,42,36,0.18);}

/* ---------- CHAPTER BADGE POP ON SLIDE ENTER ---------- */
.history-slide.active .history-badge{
  animation:badgePop 0.5s cubic-bezier(0.34,1.56,0.64,1);
}
@keyframes badgePop{
  0%{transform:scale(0.5); opacity:0;}
  60%{transform:scale(1.15);}
  100%{transform:scale(1); opacity:1;}
}

@media (prefers-reduced-motion: reduce){
  .icon-btn:hover svg{animation:none;}
  .history-dots button.active{animation:none;}
  .history-slide.active .history-badge{animation:none;}
  .history-slide-media::after,
  .stone-photo::after,
  .process-photo::after{display:none;}
}

/* ---------- DARK MODE TOGGLE ---------- */
#themeToggle svg{transition:opacity 0.2s ease, transform 0.4s cubic-bezier(0.34,1.56,0.64,1);}
#themeToggle:hover svg{transform:rotate(20deg);}

/* ---------- REAL EMERALD OVERLAY (1985 history slide) ---------- */
.history-slide-media-emerald-overlay{position:relative;}
.emerald-overlay-img{
  position:absolute !important;
  bottom:8%;
  right:6%;
  width:34% !important;
  height:auto !important;
  max-width:34% !important;
  object-fit:contain !important;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,0.5));
  transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1) !important;
}
.history-slide:hover .emerald-overlay-img{transform:scale(1.08) rotate(-3deg);}

/* ============================================================
   MORE HOVER ANIMATIONS ACROSS OTHER SECTIONS
   ============================================================ */

/* Manufacturing capabilities list */
.capabilities-list li{
  transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1), padding-left 0.3s ease, color 0.3s ease, border-color 0.3s ease;
  cursor:default;
}
.capabilities-list li:hover{
  transform:translateX(6px);
  padding-left:38px;
  border-color:var(--brass);
  color:var(--ink);
}
.capabilities-list li::before{transition:width 0.3s ease, background 0.3s ease;}
.capabilities-list li:hover::before{width:22px; background:var(--brass-bright);}

/* Trust / certification items */
.cert-item{transition:transform 0.35s cubic-bezier(0.34,1.56,0.64,1);}
.cert-item:hover{transform:translateY(-8px);}
.cert-item .mark{transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1), background 0.3s ease, border-color 0.3s ease;}
.cert-item:hover .mark{
  transform:scale(1.12) rotate(8deg);
  background:var(--brass-soft);
  border-color:var(--brass);
}

/* Clientele items */
.clientele-item{
  transition:background 0.3s ease, transform 0.3s cubic-bezier(0.34,1.56,0.64,1);
}
.clientele-item:hover{
  background:var(--bg-alt);
  transform:translateY(-4px);
}
.clientele-item .eyebrow{transition:letter-spacing 0.3s ease;}
.clientele-item:hover .eyebrow{letter-spacing:0.16em;}
.clientele-icon{
  width:60px;
  height:60px;
  border-radius:50%;
  border:1.5px solid var(--brass);
  background:var(--bg-alt);
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 22px;
  color:var(--brass-bright);
  transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1), background 0.3s ease;
}
.clientele-icon svg{width:28px; height:28px;}
.clientele-item:hover .clientele-icon{
  transform:scale(1.1) rotate(-6deg);
  background:var(--brass-soft);
}

/* FAQ accordion */
.faq-item summary{transition:color 0.25s ease, padding-left 0.25s ease;}
.faq-item summary:hover{color:var(--brass-bright); padding-left:6px;}
.faq-item summary::after{transition:transform 0.35s cubic-bezier(0.34,1.56,0.64,1), color 0.25s ease;}
.faq-item summary:hover::after{color:var(--brass-bright);}
.faq-item[open] summary::after{transform:rotate(135deg);}
.faq-item p{
  animation:faqReveal 0.35s ease;
}
@keyframes faqReveal{
  from{opacity:0; transform:translateY(-6px);}
  to{opacity:1; transform:translateY(0);}
}

/* Footer social icons */
.social-links a{transition:transform 0.35s cubic-bezier(0.34,1.56,0.64,1), color 0.2s ease;}
.social-links a:hover{transform:translateY(-3px) scale(1.15);}

/* Contact form inputs */
.form-row input,
.form-row textarea{
  transition:border-color 0.25s ease, background 0.25s ease, transform 0.2s ease;
}
.form-row input:focus,
.form-row textarea:focus{transform:translateY(-2px);}

/* Contact detail rows */
.contact-details .row{transition:transform 0.3s ease;}
.contact-details .row:hover{transform:translateX(6px);}
.contact-details .row .row-icon{transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1), background 0.3s ease;}
.contact-details .row:hover .row-icon{transform:rotate(-8deg) scale(1.08); background:var(--brass-soft);}

/* Stat items get a subtle hover too */
.stat-item{transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1);}
.stat-item:hover{transform:translateY(-4px);}

@media (prefers-reduced-motion: reduce){
  .capabilities-list li:hover,
  .cert-item:hover,
  .clientele-item:hover,
  .social-links a:hover,
  .contact-details .row:hover,
  .stat-item:hover{transform:none;}
  .faq-item p{animation:none;}
}

/* ============================================================
   CHAT WIDGET
   ============================================================ */
.chat-bubble{
  position:fixed;
  bottom:24px;
  right:24px;
  width:60px;
  height:60px;
  border-radius:50%;
  background:var(--brass);
  border:none;
  color:#fffaf3;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 12px 30px rgba(168,137,90,0.4);
  z-index:250;
  transition:transform 0.35s cubic-bezier(0.34,1.56,0.64,1), background 0.25s ease;
  animation:chatPulse 3s ease-in-out infinite;
}
.chat-bubble:hover{transform:scale(1.08); background:var(--brass-bright);}
.chat-bubble svg{width:26px; height:26px;}
.chat-bubble-close{display:none;}
.chat-bubble[aria-expanded="true"] .chat-bubble-icon{display:none;}
.chat-bubble[aria-expanded="true"] .chat-bubble-close{display:block;}
@keyframes chatPulse{
  0%, 100%{box-shadow:0 12px 30px rgba(168,137,90,0.4);}
  50%{box-shadow:0 12px 30px rgba(168,137,90,0.65), 0 0 0 8px rgba(168,137,90,0.12);}
}

.chat-panel{
  position:fixed;
  bottom:96px;
  right:24px;
  width:min(360px, calc(100vw - 48px));
  height:min(480px, calc(100vh - 160px));
  background:var(--bg);
  border-radius:12px;
  box-shadow:0 30px 70px rgba(30,28,26,0.28);
  border:1px solid var(--rule-strong);
  display:flex;
  flex-direction:column;
  z-index:249;
  overflow:hidden;
  transform-origin:bottom right;
  animation:chatPanelOpen 0.3s cubic-bezier(0.34,1.56,0.64,1);
}
.chat-panel[hidden]{display:none;}
@keyframes chatPanelOpen{
  from{opacity:0; transform:scale(0.85) translateY(20px);}
  to{opacity:1; transform:scale(1) translateY(0);}
}
.chat-panel-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 18px;
  background:var(--bg-alt);
  border-bottom:1px solid var(--rule);
}
.chat-panel-title{
  font-family:var(--serif);
  font-size:15px;
  color:var(--ink);
}
.chat-panel-subtitle{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.04em;
  color:var(--ink-muted);
  margin-top:2px;
}
.chat-panel-messages{
  flex:1;
  overflow-y:auto;
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.chat-msg{
  max-width:82%;
  padding:11px 14px;
  border-radius:14px;
  font-size:13.5px;
  line-height:1.5;
  animation:chatMsgIn 0.25s ease;
}
@keyframes chatMsgIn{
  from{opacity:0; transform:translateY(8px);}
  to{opacity:1; transform:translateY(0);}
}
.chat-msg-bot{
  background:var(--bg-alt);
  color:var(--ink-dim);
  align-self:flex-start;
  border-bottom-left-radius:4px;
}
.chat-msg-user{
  background:var(--brass);
  color:#fffaf3;
  align-self:flex-end;
  border-bottom-right-radius:4px;
}
.chat-typing{
  display:flex;
  gap:4px;
  padding:12px 14px;
  align-self:flex-start;
}
.chat-typing span{
  width:6px; height:6px;
  border-radius:50%;
  background:var(--ink-muted);
  animation:chatTypingBounce 1.2s infinite ease-in-out;
}
.chat-typing span:nth-child(2){animation-delay:0.15s;}
.chat-typing span:nth-child(3){animation-delay:0.3s;}
@keyframes chatTypingBounce{
  0%,60%,100%{transform:translateY(0); opacity:0.5;}
  30%{transform:translateY(-5px); opacity:1;}
}
.chat-panel-input{
  display:flex;
  gap:8px;
  padding:14px;
  border-top:1px solid var(--rule);
  background:var(--bg);
}
.chat-panel-input input{
  flex:1;
  border:1px solid var(--rule-strong);
  border-radius:20px;
  padding:10px 16px;
  font-family:var(--sans);
  font-size:13.5px;
  background:var(--bg-alt);
  color:var(--ink);
  outline:none;
  transition:border-color 0.2s ease;
}
.chat-panel-input input:focus{border-color:var(--brass);}
.chat-panel-input button{
  width:38px; height:38px;
  border-radius:50%;
  border:none;
  background:var(--brass);
  color:#fffaf3;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  flex-shrink:0;
  transition:background 0.2s ease, transform 0.3s cubic-bezier(0.34,1.56,0.64,1);
}
.chat-panel-input button:hover{background:var(--brass-bright); transform:scale(1.08);}
.chat-panel-input button svg{width:17px; height:17px;}

@media (max-width:480px){
  .chat-panel{
    right:16px;
    bottom:88px;
    width:calc(100vw - 32px);
  }
  .chat-bubble{right:16px; bottom:16px;}
}
@media (prefers-reduced-motion: reduce){
  .chat-bubble{animation:none;}
  .chat-panel{animation:none;}
  .chat-msg{animation:none;}
}

/* ============================================================
   INTERACTIVE VISION QUOTE
   ============================================================ */
.vision-quote{
  max-width:760px;
  border-left:3px solid var(--brass);
  padding-left:36px;
}
.vision-quote-trigger{
  display:flex;
  align-items:center;
  gap:24px;
  background:none;
  border:none;
  padding:0;
  cursor:pointer;
  text-align:left;
  width:100%;
}
.vision-quote-gem{
  width:44px;
  height:44px;
  flex-shrink:0;
  color:var(--brass);
  transition:transform 0.6s cubic-bezier(0.34,1.56,0.64,1), color 0.3s ease;
}
.vision-quote-trigger:hover .vision-quote-gem{
  transform:rotate(90deg) scale(1.1);
  color:var(--brass-bright);
}
.vision-quote[data-open="true"] .vision-quote-gem{
  transform:rotate(180deg);
  color:var(--brass-bright);
}
.vision-quote-text{
  font-family:var(--serif);
  font-style:italic;
  font-weight:700;
  font-size:clamp(24px,3.4vw,36px);
  line-height:1.3;
  color:var(--ink);
  transition:color 0.3s ease;
}
.vision-quote-trigger:hover .vision-quote-text{color:var(--brass-bright);}
.vision-quote-more{
  max-height:0;
  overflow:hidden;
  transition:max-height 0.5s cubic-bezier(0.4,0,0.2,1), opacity 0.4s ease, margin-top 0.4s ease;
  opacity:0;
  margin-top:0;
}
.vision-quote[data-open="true"] .vision-quote-more{
  max-height:200px;
  opacity:1;
  margin-top:22px;
}
.vision-quote-more p{
  font-size:16px;
  color:var(--ink-dim);
  line-height:1.7;
  max-width:600px;
}
.vision-quote-hint{
  display:block;
  margin-top:14px;
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--ink-muted);
}

@media (prefers-reduced-motion: reduce){
  .vision-quote-gem{transition:none;}
  .vision-quote-more{transition:none;}
}

/* ============================================================
   CENTER-ALIGNED CONTENT (site-wide text alignment)
   ============================================================ */
.section-head{
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:12px;
}
.section-head .num{margin-top:4px;}

.hero-copy{
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.hero p.sub{margin-left:auto; margin-right:auto;}
.hero-actions{justify-content:center;}
.stat-strip{justify-content:center;}
.stat-item{text-align:center;}

.chapter-lede{margin-left:auto; margin-right:auto; text-align:center;}

.vision-quote{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
  border-left:none;
  padding-left:0;
  border-top:3px solid var(--brass);
  padding-top:28px;
}
.vision-quote-trigger{
  flex-direction:column;
  text-align:center;
  align-items:center;
}

.capabilities-text{text-align:center; margin-left:auto; margin-right:auto;}
.capabilities-text p{margin-left:auto; margin-right:auto;}
.capabilities-list{text-align:left; max-width:600px; margin:0 auto;}

#historySlideshow .history-slide-text{text-align:center;}

.cert-item{text-align:center;}
.cert-item .mark{margin-left:auto; margin-right:auto;}

.clientele-item{text-align:center;}

.faq-item summary{
  justify-content:center !important;
  text-align:center;
}
.faq-item{text-align:center;}
.faq-item p{margin-left:auto; margin-right:auto; text-align:center;}

.contact-lead{text-align:center;}
.contact-lead p{margin-left:auto; margin-right:auto;}
.contact-details .row{justify-content:center; text-align:left;}

.discretion blockquote{text-align:center;}

footer .wrap{justify-content:center; text-align:center; flex-direction:column; gap:20px;}

@media (max-width:900px){
  .section-head{text-align:center;}
}

.section-eyebrow{
  display:block;
  margin-bottom:6px;
}

/* ---------- GLOBAL OFFICES ---------- */
.offices-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--rule);
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.office-item{
  background:var(--bg);
  padding:36px 30px;
  text-align:center;
  transition:background 0.3s ease, transform 0.3s cubic-bezier(0.34,1.56,0.64,1);
}
.office-item:hover{
  background:var(--bg-alt);
  transform:translateY(-4px);
}
.office-city{
  font-family:var(--serif);
  font-size:26px;
  color:var(--brass-bright);
  margin-bottom:6px;
}
.office-label{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--ink-muted);
  margin-bottom:16px;
}
.office-item p{
  font-size:14.5px;
  color:var(--ink-dim);
  max-width:280px;
  margin:0 auto;
}
@media (max-width:800px){
  .offices-grid{grid-template-columns:1fr;}
}

/* ============================================================
   INNER-PAGE PHOTO HERO (About, History, Stones, Manufacturing,
   Clientele, Offices, FAQ) — shorter version of the homepage's
   cinematic hero, reusing the same underlying image treatment.
   ============================================================ */
.page-hero-banner{
  min-height:50vh;
  padding:0 40px 56px;
}
.page-hero-banner .cinematic-hero-content{max-width:720px;}
.page-hero-banner .cinematic-hero-content h1{
  font-size:clamp(32px,4.6vw,52px);
  margin:16px 0 0;
}
@media (max-width:700px){
  .page-hero-banner{min-height:40vh; padding:0 24px 40px;}
}

/* ============================================================
   HERO INTRO (the photo now carries no text at all — this is
   where the headline copy and CTAs live, quietly, below it)
   ============================================================ */
.hero-intro{
  max-width:780px;
  text-align:center;
  padding:56px 40px 8px;
}
.hero-intro .eyebrow{display:block; margin-bottom:22px;}
.hero-intro-lead{
  font-family:var(--display);
  font-weight:600;
  font-style:italic;
  font-size:clamp(26px,3.4vw,40px);
  line-height:1.3;
  color:var(--ink);
  margin-bottom:18px;
}
.hero-intro-sub{
  font-family:var(--display);
  font-size:clamp(17px,1.9vw,20px);
  line-height:1.65;
  color:var(--ink-dim);
  font-weight:500;
}
.hero-intro .hero-actions{
  margin-top:40px;
  display:flex;
  gap:18px;
  align-items:center;
  justify-content:center;
}
@media (max-width:700px){
  .hero-intro{padding:52px 24px 4px;}
  .hero-intro .hero-actions{flex-direction:column; align-items:stretch;}
}

/* ============================================================
   MAISON STATEMENT (single quiet line, homepage only)
   ============================================================ */
.maison-statement{
  max-width:1080px;
  text-align:center;
  padding:50px 40px 50px;
}
.maison-statement-quote{
  font-family:var(--serif);
  font-style:italic;
  font-weight:400;
  font-size:clamp(17px,2vw,25px);
  line-height:1.5;
  color:var(--ink);
  white-space:nowrap;
}
@media (max-width:960px){
  .maison-statement-quote{
    white-space:normal;
    font-size:clamp(20px,3.4vw,30px);
  }
}
.maison-statement-sig{
  display:block;
  margin-top:26px;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--brass-bright);
}

/* ============================================================
   GEMSTONE SHOWCASE (homepage)
   ============================================================ */
.stone-showcase{
  padding:20px 40px 120px;
  text-align:center;
}
.stone-showcase-head{margin-bottom:56px;}
.stone-showcase-head h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(28px,3.6vw,44px);
  margin-top:14px;
  color:var(--ink);
}
.stone-showcase-note{
  font-family:var(--serif);
  margin-top:16px;
  font-size:17px;
  color:var(--ink-muted);
}
.stone-showcase-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:0;
  max-width:920px;
  margin:0 auto;
  border-top:1px solid var(--rule);
  border-left:1px solid var(--rule);
}
.stone-showcase-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding:32px 12px;
  border-right:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  transition:background 0.35s ease;
}
.stone-showcase-item:hover{background:var(--bg-alt);}
.stone-showcase-item img{
  width:56px;
  height:56px;
  object-fit:contain;
  filter:drop-shadow(0 6px 14px rgba(20,20,15,0.14));
  transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1);
}
.stone-showcase-item:hover img{transform:translateY(-4px) scale(1.05);}
.stone-showcase-item span{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--ink-dim);
}
.stone-showcase-link{
  display:inline-block;
  margin-top:52px;
}
@media (max-width:820px){
  .stone-showcase-grid{grid-template-columns:repeat(3,1fr);}
  .maison-statement{padding:36px 24px 36px;}
  .stone-showcase{padding:10px 24px 80px;}
}
@media (max-width:480px){
  .stone-showcase-grid{grid-template-columns:repeat(2,1fr);}
}

/* Quiet secondary link row inside the closing enquiry band */
.maison-links{
  margin-top:36px;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px 28px;
}
.maison-links a{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.72);
  border-bottom:1px solid rgba(255,255,255,0.3);
  padding-bottom:2px;
  transition:color 0.3s ease, border-color 0.3s ease;
}
.maison-links a:hover{color:#fff; border-color:#fff;}

/* ============================================================
   FULL-BLEED STORY TEASERS (homepage → sub-page pattern)
   ============================================================ */
.story-teaser{
  position:relative;
  min-height:64vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  overflow:hidden;
}
.story-teaser::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(15,13,10,0.55), rgba(15,13,10,0.72));
}
.story-teaser-content{
  position:relative;
  z-index:1;
  text-align:center;
  max-width:640px;
  padding:60px 32px;
  color:#fff;
}
.story-teaser-content .eyebrow{color:#e8c896;}
.story-teaser-content h2{
  color:#fff;
  font-size:clamp(30px,4.4vw,50px);
  margin:14px 0 18px;
  line-height:1.15;
}
.story-teaser-content p{
  font-family:var(--serif);
  color:rgba(255,255,255,0.85);
  font-size:19px;
  max-width:520px;
  margin:0 auto 32px;
  line-height:1.55;
}
.story-teaser-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:#fff;
  border:1px solid rgba(255,255,255,0.6);
  padding:15px 32px;
  transition:background 0.3s ease, transform 0.35s cubic-bezier(0.34,1.56,0.64,1), border-color 0.3s ease;
}
.story-teaser-btn:hover{
  background:rgba(255,255,255,0.12);
  border-color:#fff;
  transform:translateY(-3px);
}
.story-teaser-btn svg{width:16px; height:16px; transition:transform 0.3s ease;}
.story-teaser-btn:hover svg{transform:translateX(4px);}

@media (max-width:700px){
  .story-teaser{min-height:52vh;}
  .story-teaser-content{padding:40px 24px;}
}
@media (prefers-reduced-motion: reduce){
  .story-teaser-btn:hover{transform:none;}
}

/* ---------- CLIENTELE IMAGE GRID (replaces text link on homepage teaser) ---------- */
.clientele-image-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-top:28px;
}
.clientele-image-item{
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
  border-radius:4px;
}
.clientele-image-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 0.5s ease;
}
.clientele-image-item:hover img{transform:scale(1.08);}
.clientele-image-item span{
  position:absolute;
  bottom:0; left:0; right:0;
  padding:14px 10px;
  background:linear-gradient(0deg, rgba(0,0,0,0.75), transparent);
  color:#fff;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.05em;
  text-transform:uppercase;
  text-align:center;
}
@media (max-width:700px){
  .clientele-image-grid{grid-template-columns:repeat(2,1fr);}
}
