:root{
    --red:#E2131C;
    --red-deep:#970F17;
    --red-dark:#690a10;
    --yellow:#FFC72C;
    --ink:#1B1512;
    --navy:#0b1440;
    --paper:#EFEBE1;
    --paper-2:#E4DFCF;
    --card:#FFFFFF;
    --muted:#6b6255;
    --line: rgba(27,21,18,0.12);
    --maxw: 1160px;
    --radius: 10px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; scroll-padding-top:76px;}
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:'Inter', system-ui, sans-serif;
    font-size:16px; line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%; display:block;}
  a{color:inherit;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
  h1,h2,h3{margin:0; font-family:'Poppins',sans-serif;}
  p{margin:0 0 1em;}
  button{font-family:inherit;}

  /* ---------- signage-style wordmark ---------- */
  .signtype{
    font-family:'Poppins', sans-serif; font-weight:800; font-style:italic;
    letter-spacing:-0.01em;
  }
  .signtype .stroke-white{
    color:#fff;
    -webkit-text-stroke: 1.5px var(--ink);
    text-stroke: 1.5px var(--ink);
    text-shadow: 2px 2px 0 var(--ink);
  }
  .signtype .fill-yellow{
    color:var(--yellow);
    -webkit-text-stroke: 1.2px var(--ink);
    text-shadow: 2px 2px 0 var(--ink);
  }

  /* ---------- header ---------- */
  header.bar{
    position:sticky; top:0; z-index:60;
    background:var(--navy); border-bottom:3px solid var(--yellow);
  }
  header.bar .wrap{
    display:flex; align-items:center; justify-content:space-between;
    gap:18px; padding:10px 24px;
  }
  .brandmark{display:flex; align-items:center; gap:10px; min-width:0;}
  .logo-badge{
    width:44px; height:44px; border-radius:10px; background:#fff;
    display:flex; align-items:center; justify-content:center; flex:none;
    padding:5px; box-shadow:0 2px 6px rgba(0,0,0,0.35);
  }
  .logo-badge img{width:100%; height:100%; object-fit:contain;}
  .brand-word{
    font-family:'Poppins',sans-serif; font-weight:800; font-style:normal;
    font-size:1.18rem; line-height:1.2; color:#fff; white-space:nowrap;
    overflow:hidden; text-overflow:ellipsis; letter-spacing:-0.01em;
  }
  .brand-word b{font-weight:800;}
  .brand-word small{
    display:block; font-family:'Inter',sans-serif; font-style:normal; font-weight:500;
    font-size:0.74rem; letter-spacing:0.01em; color:#aab0c8; -webkit-text-stroke:0; text-shadow:none;
  }
  nav.mainnav{display:flex; align-items:center; gap:26px;}
  nav.mainnav a{
    color:#e8e2d2; text-decoration:none; font-size:0.92rem; font-weight:500;
  }
  nav.mainnav a:hover{color:#fff;}
  .callbtn{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--yellow); color:var(--ink);
    padding:9px 16px; border-radius:7px;
    font-weight:700; font-size:0.86rem; text-decoration:none; white-space:nowrap;
  }
  .callbtn:hover{filter:brightness(0.95);}
  a:focus-visible, button:focus-visible, input:focus-visible{
    outline:2px solid var(--red); outline-offset:2px;
  }
  .navtoggle{display:none;}

  /* ---------- hero ---------- */
  .hero{
    position:relative; color:#fff; overflow:hidden;
    background-color:var(--ink);
  }
  .hero-bg{
    position:absolute; inset:0; z-index:0;
    background-color:#5c3a1e;
    background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%20900%20560%27%3E%0A%20%20%3Cdefs%3E%0A%20%20%20%20%3ClinearGradient%20id%3D%27wg%27%20x1%3D%270%27%20y1%3D%270%27%20x2%3D%271%27%20y2%3D%271%27%3E%0A%20%20%20%20%20%20%3Cstop%20offset%3D%270%25%27%20stop-color%3D%27%238a5a34%27/%3E%0A%20%20%20%20%20%20%3Cstop%20offset%3D%2745%25%27%20stop-color%3D%27%236b4423%27/%3E%0A%20%20%20%20%20%20%3Cstop%20offset%3D%27100%25%27%20stop-color%3D%27%23432a15%27/%3E%0A%20%20%20%20%3C/linearGradient%3E%0A%20%20%20%20%3ClinearGradient%20id%3D%27plank%27%20x1%3D%270%27%20y1%3D%270%27%20x2%3D%270%27%20y2%3D%271%27%3E%0A%20%20%20%20%20%20%3Cstop%20offset%3D%270%25%27%20stop-color%3D%27%23000000%27%20stop-opacity%3D%270.16%27/%3E%0A%20%20%20%20%20%20%3Cstop%20offset%3D%276%25%27%20stop-color%3D%27%23000000%27%20stop-opacity%3D%270%27/%3E%0A%20%20%20%20%20%20%3Cstop%20offset%3D%2794%25%27%20stop-color%3D%27%23000000%27%20stop-opacity%3D%270%27/%3E%0A%20%20%20%20%20%20%3Cstop%20offset%3D%27100%25%27%20stop-color%3D%27%23000000%27%20stop-opacity%3D%270.16%27/%3E%0A%20%20%20%20%3C/linearGradient%3E%0A%20%20%20%20%3Cfilter%20id%3D%27grain%27%20x%3D%27-5%25%27%20y%3D%27-5%25%27%20width%3D%27110%25%27%20height%3D%27110%25%27%3E%0A%20%20%20%20%20%20%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%270.010%200.11%27%20numOctaves%3D%274%27%20seed%3D%2711%27%20result%3D%27n%27/%3E%0A%20%20%20%20%20%20%3CfeColorMatrix%20in%3D%27n%27%20type%3D%27matrix%27%20values%3D%270.3%200.3%200.3%200%200%20%200.22%200.22%200.22%200%200%20%200.12%200.12%200.12%200%200%20%200%200%200%200.5%200%27/%3E%0A%20%20%20%20%3C/filter%3E%0A%20%20%3C/defs%3E%0A%20%20%3Crect%20width%3D%27900%27%20height%3D%27560%27%20fill%3D%27url%28%23wg%29%27/%3E%0A%20%20%3Crect%20width%3D%27900%27%20height%3D%27560%27%20filter%3D%27url%28%23grain%29%27%20opacity%3D%270.5%27/%3E%0A%20%20%3Cg%20stroke%3D%27%232a1a0c%27%20stroke-width%3D%272.4%27%20opacity%3D%270.4%27%3E%0A%20%20%20%20%3Cline%20x1%3D%27168%27%20y1%3D%270%27%20x2%3D%27168%27%20y2%3D%27560%27/%3E%0A%20%20%20%20%3Cline%20x1%3D%27346%27%20y1%3D%270%27%20x2%3D%27346%27%20y2%3D%27560%27/%3E%0A%20%20%20%20%3Cline%20x1%3D%27524%27%20y1%3D%270%27%20x2%3D%27524%27%20y2%3D%27560%27/%3E%0A%20%20%20%20%3Cline%20x1%3D%27702%27%20y1%3D%270%27%20x2%3D%27702%27%20y2%3D%27560%27/%3E%0A%20%20%3C/g%3E%0A%20%20%3Cg%20stroke%3D%27%232a1a0c%27%20stroke-width%3D%271%27%20opacity%3D%270.18%27%3E%0A%20%20%20%20%3Cline%20x1%3D%2784%27%20y1%3D%270%27%20x2%3D%2784%27%20y2%3D%27560%27/%3E%0A%20%20%20%20%3Cline%20x1%3D%27257%27%20y1%3D%270%27%20x2%3D%27257%27%20y2%3D%27560%27/%3E%0A%20%20%20%20%3Cline%20x1%3D%27435%27%20y1%3D%270%27%20x2%3D%27435%27%20y2%3D%27560%27/%3E%0A%20%20%20%20%3Cline%20x1%3D%27613%27%20y1%3D%270%27%20x2%3D%27613%27%20y2%3D%27560%27/%3E%0A%20%20%20%20%3Cline%20x1%3D%27790%27%20y1%3D%270%27%20x2%3D%27790%27%20y2%3D%27560%27/%3E%0A%20%20%3C/g%3E%0A%20%20%3Crect%20width%3D%27900%27%20height%3D%27560%27%20fill%3D%27url%28%23plank%29%27/%3E%0A%3C/svg%3E");
    background-size:cover;
    background-position:center;
  }
  .hero .bgphoto{
    position:absolute; inset:0; z-index:1;
  }
  @media (min-width:981px){
    .hero .bgphoto::after{
      content:""; position:absolute; inset:0;
      background:linear-gradient(100deg, rgba(15,9,7,0.95) 20%, rgba(60,10,12,0.55) 36%, rgba(20,7,6,0.06) 54%, rgba(0,0,0,0) 100%);
    }
  }
  @media (max-width:980px){
    .hero .bgphoto::after{
      content:""; position:absolute; inset:0;
      background:linear-gradient(180deg, rgba(15,9,7,0.92) 0%, rgba(15,9,7,0.55) 38%, rgba(20,7,6,0) 58%);
    }
  }
  .hero .wrap{
    position:relative; z-index:2;
    padding-top:56px; padding-bottom:70px;
    max-width:760px;
    text-align:center;
  }
  .hero .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.3);
    padding:6px 12px; border-radius:100px; font-size:0.82rem; margin-bottom:22px;
  }
  .hero .eyebrow .dot{width:7px; height:7px; border-radius:50%; background:var(--yellow);}
  .hero h1{font-size:clamp(1.9rem, 4.3vw, 3rem); line-height:1.15; margin-bottom:32px;}
  .hero p.sub{font-size:1.08rem; color:#f0e9df; max-width:52ch; margin:0 auto 30px;}
  .hero-ctas{display:flex; flex-wrap:wrap; gap:14px; justify-content:center;}

  .hero-wordmark-wrap{
    position:relative; z-index:2;
    display:flex; justify-content:center;
    padding:44px 20px 4px;
  }
  /* birch plywood panel behind the wordmark: light veneer face for legibility,
     visible ply layers along the bottom edge, and warm edge shading so it sinks into the wood */
  .wordmark-card{
    position:relative; overflow:hidden;
    border-radius:6px;
    padding:20px 26px 32px;
    background:
      radial-gradient(120% 90% at 50% 40%, rgba(255,250,238,0.55) 0%, rgba(255,250,238,0) 60%),
      url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%27600%27%20height%3D%27300%27%3E%3Cfilter%20id%3D%27g%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%270.004%200.09%27%20numOctaves%3D%274%27%20seed%3D%277%27/%3E%3CfeColorMatrix%20values%3D%270%200%200%200%200.45%20%200%200%200%200%200.27%20%200%200%200%200%200.12%20%200%200%200%200.55%20-0.12%27/%3E%3C/filter%3E%3Crect%20width%3D%27100%25%27%20height%3D%27100%25%27%20filter%3D%27url%28%23g%29%27/%3E%3C/svg%3E"),
      linear-gradient(180deg, #f1e2c4 0%, #ead6b0 55%, #e2c99d 100%);
    background-size:auto, 600px 300px, auto;
    box-shadow:
      inset 0 0 38px rgba(120,72,30,0.38),
      inset 0 1px 0 rgba(255,255,255,0.6),
      0 0 0 1px rgba(70,38,14,0.35),
      0 22px 50px -14px rgba(20,8,2,0.75),
      0 0 90px 10px rgba(40,18,6,0.45);
  }
  /* exposed plywood edge: alternating veneer plies */
  .wordmark-card::after{
    content:""; position:absolute; left:0; right:0; bottom:0; height:12px;
    background:
      linear-gradient(180deg, rgba(0,0,0,0.25), rgba(0,0,0,0) 30%, rgba(0,0,0,0) 70%, rgba(0,0,0,0.3)),
      repeating-linear-gradient(180deg,
        #e8cf9f 0 2px, #b98a52 2px 3px,
        #d9b77f 3px 5px, #9c6c3a 5px 6px);
    border-top:1px solid rgba(80,45,15,0.45);
  }
  @media (min-width:981px){
    .wordmark-card{ padding:30px 42px 46px; border-radius:8px; }
    .wordmark-card::after{ height:16px; }
  }
  .hero-wordmark-wrap .wordmark-art{
    width:min(72vw, 300px); height:auto; display:block;
  }
  @media (min-width:981px){
    .hero-wordmark-wrap{ padding:64px 20px 6px; }
    .hero-wordmark-wrap .wordmark-art{ width:min(52vw, 460px); }
  }
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:14px 24px; border-radius:9px;
    font-family:'Poppins',sans-serif; font-weight:700; font-size:0.95rem;
    text-decoration:none; border:1px solid transparent; cursor:pointer;
  }
  .btn-primary{background:var(--yellow); color:var(--ink);}
  .btn-primary:hover{filter:brightness(0.96);}
  .btn-ghost{border-color:rgba(255,255,255,0.55); color:#fff; background:transparent;}
  .btn-ghost:hover{background:rgba(255,255,255,0.12);}

  section{padding:74px 0;}
  .section-head{max-width:640px; margin:0 auto 40px; text-align:center;}
  .eyebrow-label{
    font-family:'Poppins',sans-serif; font-weight:700; font-size:0.82rem;
    color:var(--red-deep); margin-bottom:10px;
  }
  .section-head h2{font-size:clamp(1.55rem, 3vw, 2.15rem);}
  .section-head p{margin-top:12px; color:var(--muted); font-size:1.02rem;}

  /* ---------- products ---------- */
  .products{
    background-color:var(--paper);
    background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%20900%20560%27%3E%0A%20%20%3Cdefs%3E%0A%20%20%20%20%3ClinearGradient%20id%3D%27pwg%27%20x1%3D%270%27%20y1%3D%270%27%20x2%3D%271%27%20y2%3D%271%27%3E%0A%20%20%20%20%20%20%3Cstop%20offset%3D%270%25%27%20stop-color%3D%27%23f3e9d6%27/%3E%0A%20%20%20%20%20%20%3Cstop%20offset%3D%2750%25%27%20stop-color%3D%27%23ecdfc2%27/%3E%0A%20%20%20%20%20%20%3Cstop%20offset%3D%27100%25%27%20stop-color%3D%27%23e3d2ac%27/%3E%0A%20%20%20%20%3C/linearGradient%3E%0A%20%20%20%20%3Cfilter%20id%3D%27pgrain%27%20x%3D%27-5%25%27%20y%3D%27-5%25%27%20width%3D%27110%25%27%20height%3D%27110%25%27%3E%0A%20%20%20%20%20%20%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%270.010%200.11%27%20numOctaves%3D%274%27%20seed%3D%2723%27%20result%3D%27n%27/%3E%0A%20%20%20%20%20%20%3CfeColorMatrix%20in%3D%27n%27%20type%3D%27matrix%27%20values%3D%270.35%200.35%200.35%200%200%20%200.30%200.30%200.30%200%200%20%200.20%200.20%200.20%200%200%20%200%200%200%200.10%200%27/%3E%0A%20%20%20%20%3C/filter%3E%0A%20%20%3C/defs%3E%0A%20%20%3Crect%20width%3D%27900%27%20height%3D%27560%27%20fill%3D%27url%28%23pwg%29%27/%3E%0A%20%20%3Crect%20width%3D%27900%27%20height%3D%27560%27%20filter%3D%27url%28%23pgrain%29%27/%3E%0A%20%20%3Cg%20stroke%3D%27%238a6a3f%27%20stroke-width%3D%271.6%27%20opacity%3D%270.14%27%3E%0A%20%20%20%20%3Cline%20x1%3D%27150%27%20y1%3D%270%27%20x2%3D%27150%27%20y2%3D%27560%27/%3E%0A%20%20%20%20%3Cline%20x1%3D%27320%27%20y1%3D%270%27%20x2%3D%27320%27%20y2%3D%27560%27/%3E%0A%20%20%20%20%3Cline%20x1%3D%27500%27%20y1%3D%270%27%20x2%3D%27500%27%20y2%3D%27560%27/%3E%0A%20%20%20%20%3Cline%20x1%3D%27680%27%20y1%3D%270%27%20x2%3D%27680%27%20y2%3D%27560%27/%3E%0A%20%20%20%20%3Cline%20x1%3D%27830%27%20y1%3D%270%27%20x2%3D%27830%27%20y2%3D%27560%27/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E");
    background-size:cover;
    background-position:center;
  }
  .catalog-controls{
    display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
    gap:16px; margin-bottom:30px;
  }
  .chips{display:flex; flex-wrap:wrap; gap:8px;}
  .chip{
    border:1px solid var(--line); background:#fff; color:var(--ink);
    padding:8px 16px; border-radius:100px; font-size:0.86rem; font-weight:500;
    cursor:pointer;
  }
  .chip[aria-pressed="true"]{background:var(--ink); color:#fff; border-color:var(--ink);}
  .searchbox{
    position:relative; width:100%; max-width:260px;
  }
  .searchbox input{
    width:100%; padding:10px 14px 10px 38px; border-radius:100px;
    border:1px solid var(--line); font-size:0.9rem; font-family:inherit;
    background:var(--paper);
  }
  .searchbox svg{position:absolute; left:13px; top:50%; transform:translateY(-50%); width:15px; height:15px; color:var(--muted);}

  .grid{
    display:grid; grid-template-columns:repeat(3, 1fr); gap:22px;
  }
  .pcard{
    border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
    background:var(--card); display:flex; flex-direction:column;
    transition: box-shadow .18s ease, transform .18s ease;
  }
  .pcard:hover{box-shadow:0 10px 28px rgba(27,21,18,0.1); transform:translateY(-2px);}
  .pcard .visual{
    aspect-ratio:16/10; position:relative; display:flex; align-items:flex-end; justify-content:center;
    padding:16px; overflow:hidden;
  }
  .pcard .visual .centerlogo{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-58%);
    width:96px; height:auto; filter:drop-shadow(0 8px 18px rgba(0,0,0,0.45));
  }
  .pcard .visual.has-sheet{aspect-ratio:16/11;}
  .sheetart{
    position:absolute; inset:0; width:100%; height:100%; display:block;
    filter:drop-shadow(0 14px 18px rgba(0,0,0,0.35));
  }
  .pcard:hover .sheetart{transform:translateY(-3px); transition:transform .25s ease;}
  .modal .mvisual.has-sheet{aspect-ratio:16/10;}
  .modal .mvisual .colourpill, .pcard .visual .colourpill{position:relative; z-index:1;}
  .pcard .visual .colourpill, .modal .mvisual .colourpill{
    background:rgba(255,255,255,0.94); color:var(--ink); font-size:0.72rem; font-weight:600;
    padding:4px 10px; border-radius:100px; display:inline-flex; align-items:center; gap:6px;
  }
  .pcard .visual .colourpill .sw, .modal .mvisual .colourpill .sw{width:9px; height:9px; border-radius:50%; border:1px solid rgba(0,0,0,0.25);}
  .pcard .body{padding:18px 18px 20px; display:flex; flex-direction:column; gap:8px; flex:1;}
  .pcard .cat{font-size:0.72rem; font-weight:700; letter-spacing:0.03em; color:var(--red-deep); text-transform:uppercase;}
  .pcard h3{font-size:1.08rem; font-weight:700;}
  .pcard .meta{display:flex; flex-wrap:wrap; gap:10px; font-size:0.82rem; color:var(--muted); margin:2px 0 4px;}
  .pcard .meta span{display:flex; align-items:center; gap:5px;}
  .pcard p.desc{font-size:0.9rem; color:#4a4335; margin-bottom:6px; flex:1;}
  .pcard .cardctas{display:flex; gap:10px; margin-top:auto;}
  .linkbtn{
    font-family:'Poppins',sans-serif; font-weight:600; font-size:0.85rem;
    color:var(--red-deep); background:none; border:none; padding:0; cursor:pointer;
    text-decoration:underline; text-underline-offset:3px;
  }
  .callmini{
    display:inline-flex; align-items:center; gap:6px;
    background:var(--ink); color:#fff; font-size:0.82rem; font-weight:600;
    padding:8px 14px; border-radius:7px; text-decoration:none;
  }

  .empty-state{
    text-align:center; padding:50px 20px; color:var(--muted); display:none;
  }
  .empty-state.show{display:block;}

  /* ---------- modal ---------- */
  .modal-backdrop{
    position:fixed; inset:0; background:rgba(20,14,11,0.6); z-index:100;
    display:none; align-items:center; justify-content:center; padding:20px;
  }
  .modal-backdrop.open{display:flex;}
  .modal{
    background:#fff; max-width:640px; width:100%; max-height:88vh; overflow-y:auto;
    border-radius:14px; position:relative;
  }
  .modal .mvisual{
    aspect-ratio:21/9; display:flex; align-items:flex-end; padding:22px; position:relative;
  }
  .modal .mclose{
    position:absolute; top:14px; right:14px; background:rgba(255,255,255,0.9);
    border:none; border-radius:50%; width:34px; height:34px; display:flex; align-items:center; justify-content:center;
    cursor:pointer; font-size:1.1rem; line-height:1;
  }
  .modal .mbody{padding:26px 28px 30px;}
  .modal .cat{font-size:0.76rem; font-weight:700; color:var(--red-deep); text-transform:uppercase; letter-spacing:0.03em;}
  .modal h3{font-size:1.4rem; margin:6px 0 14px;}
  .spec-table{width:100%; border-collapse:collapse; font-size:0.92rem; margin:16px 0;}
  .spec-table tr{border-top:1px solid var(--line);}
  .spec-table tr:first-child{border-top:none;}
  .spec-table td{padding:10px 0; color:#2e2820;}
  .spec-table td:first-child{color:var(--muted); width:38%;}
  .taglist{display:flex; flex-wrap:wrap; gap:8px; margin:14px 0;}
  .taglist span{
    background:var(--paper); border:1px solid var(--line); border-radius:100px;
    padding:5px 12px; font-size:0.8rem; color:#3a3427;
  }
  .modal .mctas{display:flex; gap:12px; margin-top:20px; flex-wrap:wrap;}

  /* ---------- why us ---------- */
  .why{background:var(--paper-2);}
  .feature-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
  .feature{
    background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
    padding:26px 22px;
  }
  .feature .ico{
    width:40px; height:40px; border-radius:9px; background:var(--red);
    display:flex; align-items:center; justify-content:center; margin-bottom:16px;
  }
  .feature .ico svg{width:20px; height:20px; color:#fff;}
  .feature h3{font-size:1.02rem; margin-bottom:6px;}
  .feature p{font-size:0.9rem; color:var(--muted); margin:0;}

  /* ---------- visit / contact ---------- */
  .visit{background:var(--ink); color:#fff;}
  .visit .section-head p{color:#cbc3b3;}
  .visit-grid{display:grid; grid-template-columns:1fr 1.15fr; gap:0; border:1px solid rgba(255,255,255,0.15); border-radius:14px; overflow:hidden;}
  .visit-panel{
    background:linear-gradient(135deg, var(--red-deep) 0%, var(--red) 55%, #8a0f16 100%);
    padding:36px 32px; display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden;
  }
  .visit-panel .ring{
    position:absolute; border:1.5px solid rgba(255,255,255,0.25); border-radius:50%;
  }
  .visit-panel .ring.r1{width:220px; height:220px; right:-70px; bottom:-70px;}
  .visit-panel .ring.r2{width:140px; height:140px; right:-30px; bottom:-30px;}
  .visit-panel .pinwrap{
    width:52px; height:52px; border-radius:12px; background:rgba(255,255,255,0.16);
    display:flex; align-items:center; justify-content:center; margin-bottom:20px; position:relative; z-index:1;
  }
  .visit-panel .pinwrap svg{width:26px; height:26px; color:#fff;}
  .visit-panel h3{color:#fff; font-size:1.3rem; margin-bottom:10px; position:relative; z-index:1; max-width:16ch;}
  .visit-panel p{color:#f4dede; font-size:0.94rem; margin-bottom:20px; position:relative; z-index:1; max-width:32ch;}
  .visit-info{padding:34px 32px; background:#241a15;}
  .visit-info h3{color:#fff; font-size:1.15rem; margin-bottom:18px;}
  .phone-row{display:flex; align-items:center; justify-content:space-between; padding:12px 0; border-top:1px solid rgba(255,255,255,0.12);}
  .phone-row:first-of-type{border-top:none;}
  .phone-row a.num{font-family:'Poppins',sans-serif; font-size:1.1rem; font-weight:700; color:#fff; text-decoration:none;}
  .phone-row .role{font-size:0.8rem; color:#a99f8d;}
  .pillbtn{display:inline-flex; align-items:center; gap:6px; background:var(--yellow); color:var(--ink); font-size:0.78rem; font-weight:700; padding:7px 13px; border-radius:100px; text-decoration:none;}
  .social-row{display:flex; align-items:center; gap:14px; padding:12px 0; border-top:1px solid rgba(255,255,255,0.12);}
  .social-row .si{
    width:36px; height:36px; border-radius:9px; background:rgba(255,255,255,0.08);
    display:flex; align-items:center; justify-content:center; flex:none; color:var(--yellow);
  }
  .social-row .si svg{width:18px; height:18px;}
  .social-row .info{flex:1; min-width:0;}
  .social-row .num, .social-row .num-plain{
    font-family:'Poppins',sans-serif; font-size:0.98rem; font-weight:700; color:#fff; text-decoration:none;
    word-break:break-word;
  }
  .social-row .role{font-size:0.8rem; color:#a99f8d;}
  address{font-style:normal; color:#ddd5c4; line-height:1.7; margin:16px 0;}
  .dirlink{display:inline-block; color:#fff; font-size:0.9rem; text-decoration:underline; text-underline-offset:3px;}

  /* ---------- footer ---------- */
  footer{background:#120b08; color:#cfc6b8; padding:60px 0 0;}
  .footer-grid{
    display:grid; grid-template-columns:1.3fr 0.8fr 1fr; gap:40px;
    padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,0.1);
  }
  .footer-brand .brandmark{margin-bottom:14px;}
  .footer-brand .brand-word{color:#fff;}
  .footer-brand p{color:#9c9284; font-size:0.9rem; max-width:34ch; margin:0;}
  footer h4{
    color:#fff; font-family:'Poppins',sans-serif; font-size:0.86rem; font-weight:600;
    text-transform:uppercase; letter-spacing:0.04em; margin-bottom:16px;
  }
  .footer-links{list-style:none; margin:0; padding:0; display:grid; gap:11px;}
  .footer-links a{color:#cfc6b8; text-decoration:none; font-size:0.92rem;}
  .footer-links a:hover{color:#fff;}
  .footer-contact{display:grid; gap:12px;}
  .footer-contact a{color:#fff; text-decoration:none; font-size:0.92rem; display:flex; align-items:center; gap:9px; font-weight:600;}
  .footer-contact .fc-row{display:flex; align-items:flex-start; gap:9px; color:#cfc6b8; font-size:0.92rem;}
  .footer-contact svg{width:16px; height:16px; flex:none; margin-top:2px; color:var(--yellow);}
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
    padding:20px 0; font-size:0.82rem; color:#8a8072;
  }
  .backtotop{
    display:inline-flex; align-items:center; gap:6px; color:#cfc6b8; text-decoration:none; font-size:0.82rem;
  }
  .backtotop svg{width:13px; height:13px;}
  .backtotop:hover{color:#fff;}

  .scrolltop{
    position:fixed; right:20px; bottom:20px; z-index:50;
    width:44px; height:44px; border-radius:50%; background:var(--ink); color:#fff;
    border:1px solid rgba(255,255,255,0.2); display:flex; align-items:center; justify-content:center;
    opacity:0; pointer-events:none; transform:translateY(8px);
    transition:opacity .2s ease, transform .2s ease; cursor:pointer;
  }
  .scrolltop.show{opacity:1; pointer-events:auto; transform:translateY(0);}
  .scrolltop svg{width:18px; height:18px;}

  /* ================= responsive ================= */
  @media (max-width: 980px){
    .grid{grid-template-columns:repeat(2,1fr);}
    .feature-grid{grid-template-columns:repeat(2,1fr);}
    .visit-grid{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr 1fr; row-gap:32px;}
    .footer-brand{grid-column:1 / -1;}
  }
  @media (max-width: 760px){
    nav.mainnav{
      position:fixed; top:59px; left:0; right:0; bottom:0;
      background:var(--navy); flex-direction:column; align-items:flex-start;
      padding:26px 24px; gap:20px; transform:translateX(-100%);
      transition:transform .22s ease; z-index:55;
    }
    nav.mainnav.open{transform:translateX(0);}
    nav.mainnav a{font-size:1.05rem;}
    .navtoggle{
      display:flex; align-items:center; justify-content:center;
      width:38px; height:38px; background:transparent; border:1px solid rgba(255,255,255,0.3);
      border-radius:8px; color:#fff; cursor:pointer;
    }
  }
  @media (max-width: 640px){
    .grid{grid-template-columns:1fr;}
    .feature-grid{grid-template-columns:1fr;}
    section{padding:54px 0;}
    .catalog-controls{flex-direction:column; align-items:stretch;}
    .searchbox{max-width:none;}
    .brand-word{font-size:0.92rem;}
    .footer-grid{grid-template-columns:1fr;}
    .footer-bottom{flex-direction:column; align-items:flex-start;}
  }
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .pcard{transition:none;}
  }
