
  :root{
    --ink:#221f1b;
    --ink-soft:#4a4540;
    --bone:#f4eedf;
    --bone-deep:#e9dfc7;
    --paper:#faf6ec;
    --oxford:#33587d;
    --oxford-deep:#223e59;
    --oxford-line: rgba(34,62,89,0.16);
    --indigo:#262c46;
    --indigo-deep:#1c2138;
    --indigo-line: rgba(244,238,223,0.14);
    --copper:#b5622a;
    --copper-light:#d98c56;
    --cream:#f1e8d2;
    --serif: 'Source Serif 4', Georgia, serif;
    --sans: 'Public Sans', -apple-system, sans-serif;
    --maxw: 1180px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:var(--sans);
    color:var(--ink);
    background:var(--bone);
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  h1,h2,h3{font-family:var(--serif);margin:0;font-weight:600;letter-spacing:-0.01em;}
  p{margin:0;line-height:1.65;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
  :focus-visible{outline:2px solid var(--copper);outline-offset:3px;}
  .eyebrow{
    display:inline-flex;align-items:center;gap:10px;
    font-family:var(--serif);font-style:italic;font-size:0.95rem;
    color:var(--oxford);margin-bottom:14px;
  }
  .eyebrow .rule{width:26px;height:1px;background:currentColor;display:inline-block;}

  /* ---------- photo tint (unifies stock photography to the palette) ---------- */
  .tint{position:relative;overflow:hidden;background:#000;}
  .tint img{filter:grayscale(0.12) contrast(1.05) saturate(0.92);width:100%;height:100%;object-fit:cover;}
  .tint::after{content:"";position:absolute;inset:0;mix-blend-mode:multiply;pointer-events:none;}
  .tint-oxford::after{background:linear-gradient(155deg, #33587d 0%, transparent 68%);opacity:.5;}
  .tint-indigo::after{background:linear-gradient(155deg, #b5622a 0%, transparent 62%);opacity:.4;}
  .tint-ink::after{background:linear-gradient(155deg, #221f1b 0%, transparent 70%);opacity:.35;}

  /* ---------- NAV ---------- */
  .nav{
    position:sticky;top:0;z-index:50;
    background:rgba(244,238,223,0.94);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--bone-deep);
  }
  .nav-inner{
    max-width:var(--maxw);margin:0 auto;padding:5px 28px;
    display:flex;align-items:center;justify-content:space-between;gap:16px;
  }
  .brand{display:flex;align-items:center;gap:10px;}
  .brand img{
      max-width:140px;
  }
  .brand-tag{
    width:34px;height:34px;border:1.5px solid var(--ink);
    display:flex;align-items:center;justify-content:center;
    font-family:var(--serif);font-weight:700;font-size:0.85rem;
    background:var(--ink);color:var(--bone);flex-shrink:0;
  }
  .brand-name{font-family:var(--serif);font-size:1.15rem;font-weight:600;}
  .nav-links{display:flex;align-items:center;gap:24px;font-size:0.95rem;}
  .nav-links a{padding:4px 0;border-bottom:1px solid transparent;transition:border-color .15s ease;}
  .nav-links a:hover{border-color:var(--copper);}
  .nav-call{
    display:flex;align-items:center;gap:8px;font-size:0.92rem;font-weight:600;
    color:var(--oxford-deep);white-space:nowrap;
  }
  .btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:11px 22px;font-family:var(--sans);font-weight:600;font-size:0.92rem;
    border-radius:3px;border:1.5px solid transparent;cursor:pointer;
    transition:transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
  }
  .btn-copper{background:var(--copper);color:var(--paper);}
  .btn-copper:hover{background:var(--copper-light);transform:translateY(-1px);}
  .btn-outline-ink{border-color:var(--ink);color:var(--ink);background:transparent;}
  .btn-outline-ink:hover{background:var(--ink);color:var(--bone);}
  .btn-outline-cream{border-color:var(--cream);color:var(--cream);background:transparent;}
  .btn-outline-cream:hover{background:var(--cream);color:var(--indigo-deep);}

  @media (max-width:760px){ .nav-links{display:none;} }

  /* ---------- HERO ---------- */
  .hero{ display:grid;grid-template-columns:1fr 1fr; min-height:82vh; position:relative; }
  .hero-half{
    position:relative;overflow:hidden;
    display:flex;flex-direction:column;justify-content:flex-end;
    padding:40px;min-height:420px;
  }
  .hero-half img{ position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
  .hero-half.oxford{ background:var(--oxford-deep); animation:slideInLeft .9s cubic-bezier(.2,.7,.2,1) both; }
  .hero-half.bottomline{ background:var(--indigo-deep); animation:slideInRight .9s cubic-bezier(.2,.7,.2,1) both; }
  .hero-tint{ position:absolute;inset:0; }
  .oxford .hero-tint{background:linear-gradient(180deg, rgba(34,62,89,0.18) 0%, rgba(34,62,89,0.9) 100%);}
  .bottomline .hero-tint{background:linear-gradient(180deg, rgba(28,33,56,0.18) 0%, rgba(28,33,56,0.92) 100%);}
  .hero-label{ position:relative;z-index:2;font-family:var(--serif);color:var(--cream); font-size:clamp(1.6rem,3vw,2.4rem);margin-bottom:8px; }
  .hero-sub{ position:relative;z-index:2;color:rgba(241,232,210,0.85);font-size:0.95rem;max-width:340px; }
  .hero-center{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
    z-index:5;text-align:center;width:min(700px,86vw); padding:0 12px;
  }
  .hero-headline{ font-size:clamp(2.1rem,5.4vw,3.8rem);color:var(--paper); text-shadow:0 2px 24px rgba(0,0,0,0.4); line-height:1.05; }
  .hero-stitch{
    position:absolute;top:0;bottom:0;left:50%;width:2px;
    background-image:repeating-linear-gradient(to bottom, var(--copper) 0 10px, transparent 10px 20px);
    z-index:4;
  }
  @keyframes slideInLeft{from{clip-path:inset(0 100% 0 0);}to{clip-path:inset(0 0 0 0);}}
  @keyframes slideInRight{from{clip-path:inset(0 0 0 100%);}to{clip-path:inset(0 0 0 0);}}
  @media (prefers-reduced-motion: reduce){ .hero-half.oxford, .hero-half.bottomline{animation:none;} }
  @media (max-width:820px){
    .hero{grid-template-columns:1fr;}
    .hero-stitch{display:none;}
    .hero-center{position:static;transform:none;padding:36px 20px 36px;width:auto;}
    .hero-headline{color:var(--ink);text-shadow:none;}
  }

  /* ---------- FACT STRIP ---------- */
  .facts{ background:var(--ink);padding:26px 0; }
  .facts-inner{ display:flex;justify-content:space-between;flex-wrap:wrap;gap:18px; }
  .fact{ display:flex;align-items:center;gap:10px;color:var(--cream);font-size:0.92rem;font-weight:500; }
  .fact strong{font-family:var(--serif);color:var(--copper-light);font-size:1.05rem;font-weight:600;}

  /* ---------- STITCH DIVIDER ---------- */
  .stitch-divider{
    height:2px;max-width:var(--maxw);margin:0 auto;
    background-image:repeating-linear-gradient(to right, var(--copper) 0 10px, transparent 10px 20px);
    opacity:0.55;
  }

  /* ---------- ABOUT ---------- */
  .about{ padding:100px 0 90px;background:var(--paper); }
  .about-grid{ display:grid;grid-template-columns:0.9fr 1.1fr;gap:60px;align-items:center;margin-bottom:88px; }
  .about-media{ aspect-ratio:5/6;border-radius:2px; }
  .about-heading{ font-size:clamp(2.1rem,3.8vw,3rem);margin-bottom:20px; }
  .about-copy{ color:var(--ink-soft);max-width:480px; }
  .about-copy + .about-copy{margin-top:14px;}

  .what-we-do h3.section-sub{ font-size:clamp(1.6rem,2.6vw,2.1rem);margin-bottom:36px;text-align:center; }
  .do-grid{ display:grid;grid-template-columns:repeat(3,1fr);gap:28px; }
  .do-card{ background:var(--bone);border:1px solid var(--bone-deep);border-radius:4px;padding:30px 26px; }
  .do-icon{ width:38px;height:38px;color:var(--copper);margin-bottom:18px; }
  .do-card h4{ font-family:var(--serif);font-size:1.25rem;margin-bottom:10px;font-weight:600; }
  .do-card p{ color:var(--ink-soft);font-size:0.94rem; }

  @media (max-width:860px){
    .about-grid{grid-template-columns:1fr;gap:32px;}
    .about-media{order:-1;aspect-ratio:16/10;}
    .do-grid{grid-template-columns:1fr;}
  }

  /* ---------- PRODUCT SECTIONS ---------- */
  .section{padding:100px 0;}
  .section-oxford{
    background:
      repeating-linear-gradient(0deg, rgba(51,88,125,0.05) 0px, rgba(51,88,125,0.05) 2px, transparent 2px, transparent 6px),
      repeating-linear-gradient(90deg, rgba(51,88,125,0.05) 0px, rgba(51,88,125,0.05) 2px, transparent 2px, transparent 6px),
      var(--bone);
  }
  .section-bottomline{
    background:
      repeating-linear-gradient(115deg, rgba(241,232,210,0.05) 0px, rgba(241,232,210,0.05) 3px, transparent 3px, transparent 14px),
      var(--indigo);
    color:var(--cream);
  }
  .product-grid{ display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;margin-bottom:64px; }
  .section-bottomline .product-grid{grid-template-columns:1.05fr 0.95fr;}
  .product-media{ position:relative;border-radius:2px;overflow:hidden;aspect-ratio:4/5; }
  .product-media::after{ content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.08); }
  .product-heading{font-size:clamp(2.1rem,3.6vw,3rem);margin-bottom:18px;}
  .product-copy{max-width:480px;color:var(--ink-soft);margin-bottom:28px;}
  .section-bottomline .product-copy{color:rgba(241,232,210,0.82);}
  .section-bottomline .eyebrow{color:var(--copper-light);}
  .feature-list{list-style:none;margin:0 0 32px;padding:0;display:grid;gap:14px;}
  .feature-list li{ display:flex;gap:12px;font-size:0.98rem;padding-bottom:14px; border-bottom:1px solid var(--oxford-line); }
  .section-bottomline .feature-list li{border-bottom:1px solid var(--indigo-line);}
  .feature-list li:last-child{border-bottom:none;padding-bottom:0;}
  .feature-list strong{font-weight:600;min-width:118px;flex-shrink:0;}
  .feature-list span{color:var(--ink-soft);}
  .section-bottomline .feature-list span{color:rgba(241,232,210,0.75);}

  @media (max-width:820px){
    .product-grid, .section-bottomline .product-grid{grid-template-columns:1fr;gap:36px;}
    .product-media{order:-1;aspect-ratio:16/10;}
  }

  /* ---------- GALLERY (lightbox grid) ---------- */
  .gallery-heading{ display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap; }
  .gallery-heading h3{ font-family:var(--serif);font-size:1.4rem;font-weight:600; }
  .gallery-heading span{ font-size:0.85rem;color:var(--ink-soft); }
  .section-bottomline .gallery-heading span{color:rgba(241,232,210,0.65);}
  .gallery-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:10px;
  }
  .gitem{ border:none;padding:0;cursor:pointer;position:relative;overflow:hidden;border-radius:2px;background:none;aspect-ratio:3/4; }
  .gitem img{ width:100%;height:100%;object-fit:cover;transition:transform .35s ease; }
  .gitem:hover img{transform:scale(1.06);}
  .gitem::before{
    content:"";position:absolute;inset:0;background:rgba(20,20,20,0);transition:background .2s ease;z-index:2;
  }
  .gitem:hover::before{background:rgba(20,20,20,0.12);}
  .gitem .zoom-mark{
    position:absolute;bottom:10px;right:10px;width:26px;height:26px;border-radius:50%;
    background:rgba(20,18,15,0.55);color:#fff;display:flex;align-items:center;justify-content:center;
    opacity:0;transition:opacity .2s ease;z-index:3;
  }
  .gitem:hover .zoom-mark{opacity:1;}

  @media (max-width:700px){
    .gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px;}
  }

  /* ---------- LIGHTBOX ---------- */
  .lightbox{
    position:fixed;inset:0;background:rgba(15,13,11,0.94);z-index:200;
    display:flex;align-items:center;justify-content:center;
    opacity:0;pointer-events:none;transition:opacity .2s ease;
  }
  .lightbox.open{opacity:1;pointer-events:auto;}
  .lightbox-fig{max-width:88vw;max-height:82vh;display:flex;flex-direction:column;align-items:center;gap:14px;}
  .lightbox-fig img{max-width:88vw;max-height:74vh;object-fit:contain;border-radius:2px;}
  .lightbox-caption{color:var(--cream);font-family:var(--serif);font-style:italic;font-size:1rem;text-align:center;}
  .lightbox-counter{color:rgba(241,232,210,0.55);font-size:0.82rem;font-family:var(--sans);text-align:center;}
  .lightbox-close, .lightbox-prev, .lightbox-next{
    position:absolute;background:rgba(244,238,223,0.08);border:1px solid rgba(244,238,223,0.3);
    color:var(--cream);border-radius:50%;width:44px;height:44px;cursor:pointer;
    display:flex;align-items:center;justify-content:center;font-size:1.3rem;transition:background .15s ease;
  }
  .lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover{background:rgba(244,238,223,0.2);}
  .lightbox-close{top:24px;right:24px;}
  .lightbox-prev{left:24px;top:50%;transform:translateY(-50%);}
  .lightbox-next{right:24px;top:50%;transform:translateY(-50%);}
  @media (max-width:700px){
    .lightbox-prev{left:8px;} .lightbox-next{right:8px;} .lightbox-close{top:12px;right:12px;}
  }

  /* ---------- ENQUIRY ---------- */
  .enquire{padding:100px 0;background:var(--paper);}
  .enquire-grid{ display:grid;grid-template-columns:0.85fr 1.15fr;gap:56px;align-items:start; }
  .enquire-info h2{font-size:clamp(2rem,3.4vw,2.7rem);margin-bottom:16px;}
  .enquire-info p{color:var(--ink-soft);margin-bottom:28px;max-width:400px;}
  .contact-line{ display:flex;align-items:center;gap:12px;padding:14px 0; border-top:1px solid var(--bone-deep);font-size:0.98rem;font-weight:500; }
  .contact-icon{width:20px;height:20px;flex-shrink:0;color:var(--copper);}
  .quick-actions{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap;}

  .form-card{ background:var(--bone);border:1px solid var(--bone-deep);border-radius:4px;padding:40px; }
  .segmented{ display:flex;border:1.5px solid var(--ink);border-radius:3px;overflow:hidden; margin-bottom:28px;width:fit-content; }
  .segmented button{ font-family:var(--sans);font-weight:600;font-size:0.9rem; padding:10px 24px;border:none;background:transparent;color:var(--ink); cursor:pointer;transition:background .15s ease,color .15s ease; }
  .segmented button.active{background:var(--ink);color:var(--bone);}
  .segmented button:not(:last-child){border-right:1.5px solid var(--ink);}

  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;}
  .field{margin-bottom:18px;}
  .field label{display:block;font-size:0.85rem;font-weight:600;margin-bottom:7px;color:var(--ink-soft);}
  .field input, .field textarea, .field select{
    width:100%;padding:12px 14px;font-family:var(--sans);font-size:0.96rem;
    border:1.5px solid var(--bone-deep);border-radius:3px;background:var(--paper);color:var(--ink);
  }
  .field input:focus, .field textarea:focus{border-color:var(--oxford);}
  .field textarea{resize:vertical;min-height:90px;}

  .chip-row{display:flex;gap:10px;flex-wrap:wrap;}
  .chip{
    padding:9px 16px;border:1.5px solid var(--bone-deep);border-radius:20px;
    font-size:0.88rem;font-weight:600;cursor:pointer;background:var(--paper);
    transition:border-color .15s ease,background .15s ease,color .15s ease;
  }
  .chip.selected{background:var(--oxford);border-color:var(--oxford);color:var(--paper);}

  .bulk-only{display:none;}
  .bulk-only.show{display:block;}

  .form-note{font-size:0.82rem;color:var(--ink-soft);margin-top:6px;}
  .submit-row{display:flex;align-items:center;gap:18px;margin-top:8px;flex-wrap:wrap;}
  .form-status{font-size:0.9rem;color:var(--oxford-deep);font-weight:600;}

  @media (max-width:900px){
    .enquire-grid{grid-template-columns:1fr;}
    .field-row{grid-template-columns:1fr;}
    .form-card{padding:28px;}
  }

  /* ---------- FOOTER ---------- */
  footer{background:var(--ink);color:var(--bone);padding:56px 0 28px;}
  .footer-grid{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;margin-bottom:36px;}
  .footer-brand .brand-name{color:var(--bone);}
  .footer-brand p{color:rgba(244,238,223,0.6);margin-top:10px;max-width:320px;font-size:0.92rem;}
  .footer-cols{display:flex;gap:56px;flex-wrap:wrap;}
  .footer-col h4{font-family:var(--sans);font-size:0.85rem;font-weight:700;margin-bottom:14px;color:var(--copper-light);}
  .footer-col a, .footer-col span{display:block;font-size:0.92rem;color:rgba(244,238,223,0.82);margin-bottom:10px;}
  .footer-bottom{
    border-top:1px solid rgba(244,238,223,0.14);padding-top:22px;
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
    font-size:0.82rem;color:rgba(244,238,223,0.5);
  }
