:root{
    --green-deep:#122E22;
    --green-mid:#1E4536;
    --green-line: rgba(243,236,217,0.16);
    --gold:#E1A62E;
    --rust:#B5502A;
    --cream:#F3ECD9;
    --ink:#1D1A12;
    --paper: #F3ECD9;
    --off-white:#F6F2E6;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--cream);
    color:var(--ink);
    font-family:'Work Sans', sans-serif;
    font-weight:400;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }

  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.22em;
    text-transform:uppercase;
  }

  a{color:inherit;}
  a:focus-visible, button:focus-visible{outline:3px solid var(--gold); outline-offset:3px;}

  /* ---------- grain texture ---------- */
  .grain{
    position:absolute; inset:0; pointer-events:none;
    opacity:0.06; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  }

  /* ---------- NAV ---------- */
  header.nav{
    position:fixed; top:0; left:0; right:0; z-index:100;
    display:flex; align-items:center; justify-content:space-between;
    padding:22px 6vw;
    background:linear-gradient(to bottom, rgba(18,46,34,0.92), rgba(18,46,34,0));
    color:var(--off-white);
    transition:padding 0.3s ease, background 0.3s ease;
  }
  header.nav.scrolled{
    padding:12px 6vw;
    background:var(--green-deep);
    border-bottom:1px solid var(--green-line);
  }
  .brand{
    font-family:'Big Shoulders Display', sans-serif;
    font-weight:900;
    font-size:1.25rem;
    letter-spacing:0.02em;
    text-transform:uppercase;
    display:flex; align-items:center; gap:10px;
    text-decoration:none; color:var(--off-white);
  }
  .brand .mark{
    width:30px; height:30px; border-radius:50%;
    border:2px solid var(--gold);
    display:flex; align-items:center; justify-content:center;
    font-family:'IBM Plex Mono'; font-size:0.6rem; color:var(--gold);
    overflow:hidden;
  }
  .brand .mark img{width:100%; height:100%; object-fit:cover;}
  nav.links{display:flex; gap:2.2rem; font-size:0.88rem;}
  nav.links a{text-decoration:none; position:relative; padding-bottom:4px;}
  nav.links a::after{
    content:''; position:absolute; left:0; bottom:0; height:1px; width:0;
    background:var(--gold); transition:width 0.25s ease;
  }
  nav.links a:hover::after{width:100%;}
  .nav-cta{
    font-family:'IBM Plex Mono'; font-size:0.76rem;
    border:1px solid var(--gold); color:var(--gold);
    padding:8px 16px; text-decoration:none; letter-spacing:0.05em;
    transition:background 0.2s ease, color 0.2s ease;
  }
  .nav-cta:hover{background:var(--gold); color:var(--green-deep);}
  .burger{display:none; background:none; border:none; color:var(--off-white); font-size:1.6rem; cursor:pointer;}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    min-height:100vh;
    background:radial-gradient(ellipse at 20% -10%, #1c4c39 0%, var(--green-deep) 55%, #0d2419 100%);
    color:var(--off-white);
    display:flex; flex-direction:column; justify-content:center;
    padding:0 6vw;
    overflow:hidden;
  }
  .hero-content{position:relative; z-index:2; max-width:900px; padding-top:90px;}
  .hero .eyebrow{color:var(--gold); margin-bottom:22px; display:block;}
  .hero h1{
    font-family:'Big Shoulders Display', sans-serif;
    font-weight:900;
    font-size:clamp(3rem, 9vw, 7.2rem);
    line-height:0.92;
    text-transform:uppercase;
    letter-spacing:0.01em;
    color:var(--off-white);
  }
  .hero h1 span{color:var(--gold);}
  .hero p.lede{
    font-size:clamp(1.05rem, 1.6vw, 1.3rem);
    max-width:560px;
    margin-top:28px;
    color:rgba(246,242,230,0.82);
    line-height:1.6;
  }
  .hero-actions{display:flex; gap:16px; margin-top:40px; flex-wrap:wrap;}
  .btn-primary{
    background:var(--gold); color:var(--green-deep);
    padding:15px 30px; text-decoration:none;
    font-weight:600; font-size:0.95rem;
    border:1px solid var(--gold);
    transition:transform 0.2s ease, background 0.2s ease;
  }
  .btn-primary:hover{background:#f0bb4e; transform:translateY(-2px);}
  .btn-ghost{
    padding:15px 30px; text-decoration:none;
    font-weight:500; font-size:0.95rem;
    border:1px solid rgba(246,242,230,0.35); color:var(--off-white);
    transition:border-color 0.2s ease, background 0.2s ease;
  }
  .btn-ghost:hover{border-color:var(--gold); background:rgba(225,166,46,0.08);}

  /* rotated seal */
  .seal{
    position:absolute; z-index:2;
    top:120px; right:7vw;
    width:150px; height:150px;
    border:1.5px dashed rgba(225,166,46,0.55);
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    transform:rotate(-8deg);
    animation:seal-rotate 40s linear infinite;
  }
  @keyframes seal-rotate{ to{ transform:rotate(352deg); } }
  .seal-inner{
    width:112px; height:112px;
    border:1px solid rgba(225,166,46,0.7);
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    text-align:center;
    font-family:'IBM Plex Mono'; color:var(--gold);
    font-size:0.58rem; letter-spacing:0.08em; line-height:1.5;
    padding:8px;
  }

  /* horizon divider */
  .horizon{
    position:relative; width:100%; height:120px; z-index:2; margin-top:60px;
  }
  .horizon svg{position:absolute; bottom:0; left:0; width:100%; height:100%;}

  /* ---------- SECTION shared ---------- */
  section{padding:110px 6vw; position:relative;}
  .section-head{max-width:640px; margin-bottom:64px;}
  .section-head .eyebrow{color:var(--rust); margin-bottom:14px; display:block;}
  .section-head h2{
    font-family:'Big Shoulders Display', sans-serif;
    font-weight:800;
    font-size:clamp(2.1rem, 4vw, 3.4rem);
    text-transform:uppercase;
    line-height:1;
  }
  .section-head p{margin-top:18px; font-size:1.05rem; line-height:1.7; color:#4a4433;}

  /* ---------- ABOUT ---------- */
  .about{background:var(--paper);}
  .about-grid{
    display:grid; grid-template-columns:1.15fr 0.85fr; gap:70px; align-items:start;
  }
  .about-text p{font-size:1.06rem; line-height:1.85; color:#3a3527; margin-bottom:20px;}
  .about-text p:first-child{
    font-family:'Big Shoulders Display'; font-weight:600; font-size:1.5rem;
    line-height:1.4; color:var(--ink);
  }
  .id-card{
    background:var(--green-deep); color:var(--off-white);
    padding:36px 32px; position:relative;
    border:1px solid rgba(225,166,46,0.3);
  }
  .id-card::before{
    content:''; position:absolute; top:14px; left:14px; right:14px; bottom:14px;
    border:1px solid rgba(225,166,46,0.25); pointer-events:none;
  }
  .id-card .eyebrow{color:var(--gold); display:block; margin-bottom:6px;}
  .id-card h3{
    font-family:'Big Shoulders Display'; font-weight:800; text-transform:uppercase;
    font-size:1.5rem; margin-bottom:26px; letter-spacing:0.01em;
  }
  .id-row{
    display:flex; justify-content:space-between; gap:12px;
    padding:14px 0; border-top:1px solid rgba(246,242,230,0.14);
    font-size:0.88rem;
  }
  .id-row:last-child{border-bottom:1px solid rgba(246,242,230,0.14);}
  .id-row .label{color:rgba(246,242,230,0.55); font-family:'IBM Plex Mono'; font-size:0.72rem; letter-spacing:0.04em;}
  .id-row .value{text-align:right; font-weight:500;}

  /* ---------- WHAT WE DO ---------- */
  .work{background:var(--green-deep); color:var(--off-white);}
  .work .section-head .eyebrow{color:var(--gold);}
  .work .section-head p{color:rgba(246,242,230,0.68);}
  .work-grid{
    display:grid; grid-template-columns:repeat(3, 1fr); gap:1px;
    background:rgba(246,242,230,0.14);
    border:1px solid rgba(246,242,230,0.14);
  }
  .work-card{
    background:var(--green-deep);
    padding:38px 32px;
    border-left:3px solid transparent;
    transition:border-color 0.25s ease, background 0.25s ease;
  }
  .work-card:hover{border-left-color:var(--gold); background:#173a2c;}
  .work-card .num{
    font-family:'IBM Plex Mono'; font-size:0.72rem; color:var(--gold); letter-spacing:0.06em;
  }
  .work-card h3{
    font-family:'Big Shoulders Display'; font-weight:700; text-transform:uppercase;
    font-size:1.35rem; margin:16px 0 12px; line-height:1.15;
  }
  .work-card p{font-size:0.94rem; line-height:1.65; color:rgba(246,242,230,0.65);}

  /* ---------- PILLARS (motto) ---------- */
  .pillars{background:var(--paper);}
  .pillar-row{
    display:grid; grid-template-columns:repeat(3,1fr);
    border-top:1px solid rgba(29,26,18,0.15);
  }
  .pillar{
    padding:48px 34px 48px 0;
    border-right:1px solid rgba(29,26,18,0.15);
  }
  .pillar:last-child{border-right:none; padding-right:0;}
  .pillar .eyebrow{color:var(--rust); display:block; margin-bottom:14px;}
  .pillar h3{
    font-family:'Big Shoulders Display'; font-weight:800; text-transform:uppercase;
    font-size:1.8rem; margin-bottom:12px;
  }
  .pillar p{font-size:0.96rem; line-height:1.7; color:#4a4433;}

  /* ---------- CONTACT ---------- */
  .contact{
    background:linear-gradient(160deg, var(--green-deep) 0%, #0d2419 100%);
    color:var(--off-white);
  }
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
  .contact h2{
    font-family:'Big Shoulders Display'; font-weight:900; text-transform:uppercase;
    font-size:clamp(2.1rem,4.4vw,3.6rem); line-height:1; margin-bottom:24px;
  }
  .contact > .contact-grid > div:first-child p{
    font-size:1.05rem; line-height:1.75; color:rgba(246,242,230,0.72); max-width:440px;
  }
  .contact-list{list-style:none;}
  .contact-list li{
    padding:22px 0; border-top:1px solid rgba(246,242,230,0.14);
    display:flex; justify-content:space-between; gap:20px; align-items:baseline;
  }
  .contact-list li:last-child{border-bottom:1px solid rgba(246,242,230,0.14);}
  .contact-list .label{font-family:'IBM Plex Mono'; font-size:0.72rem; letter-spacing:0.06em; color:var(--gold);}
  .contact-list .value{font-size:1.05rem; text-align:right;}
  .contact-list a{text-decoration:none;}
  .contact-list a:hover{color:var(--gold);}

  /* ---------- PRODUCTS ---------- */
  .products{background:var(--green-deep); color:var(--off-white);}
  .products .section-head .eyebrow{color:var(--gold);}
  .products .section-head p{color:rgba(246,242,230,0.68);}
  .product-grid{
    display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:28px;
  }
  .product-card{
    background:#173a2c; border:1px solid rgba(246,242,230,0.12);
    padding:30px 26px; display:flex; flex-direction:column; gap:16px;
    transition:transform 0.25s ease, border-color 0.25s ease;
  }
  .product-card.has-photo{padding:0; overflow:hidden;}
  .product-photo{width:100%; aspect-ratio:4/3; overflow:hidden;}
  .product-photo img{
    width:100%; height:100%; object-fit:cover;
    filter:saturate(1.08) contrast(1.05);
    transition:transform 0.5s ease;
  }
  .product-card.has-photo:hover .product-photo img{transform:scale(1.06);}
  .product-card-body{padding:24px 26px 28px; display:flex; flex-direction:column; gap:16px; flex-grow:1;}
  .product-card:hover{transform:translateY(-6px); border-color:var(--gold);}
  .product-card h3{
    font-family:'Big Shoulders Display'; font-weight:700; text-transform:uppercase;
    font-size:1.3rem; line-height:1.15;
  }
  .product-card p{font-size:0.9rem; line-height:1.6; color:rgba(246,242,230,0.65); flex-grow:1;}
  .price-tag{
    align-self:flex-start;
    font-family:'IBM Plex Mono'; font-size:0.68rem; letter-spacing:0.05em;
    color:var(--gold); border:1px dashed rgba(225,166,46,0.5);
    padding:6px 12px;
  }
  .product-card .quote-link{
    font-family:'IBM Plex Mono'; font-size:0.76rem; letter-spacing:0.04em;
    text-decoration:none; color:var(--off-white);
    border-bottom:1px solid rgba(246,242,230,0.35);
    align-self:flex-start; padding-bottom:2px;
    transition:color 0.2s ease, border-color 0.2s ease;
  }
  .product-card .quote-link:hover{color:var(--gold); border-color:var(--gold);}

  /* ---------- GALLERY ---------- */
  .gallery{background:var(--paper);}
  .gallery-note{
    font-size:0.86rem; color:#7a7157; font-family:'IBM Plex Mono';
    margin-top:-38px; margin-bottom:46px; max-width:640px; line-height:1.6;
  }
  .gallery-grid{
    display:grid; grid-template-columns:repeat(4, 1fr); gap:18px;
  }
  .gallery-tile{
    aspect-ratio:1/1;
    background:var(--green-deep);
    position:relative; overflow:hidden;
    display:flex; align-items:center; justify-content:center;
    cursor:default;
  }
  .gallery-tile img{
    width:100%; height:100%; object-fit:cover;
    filter:grayscale(25%) contrast(1.06) saturate(1.05);
    transition:transform 0.6s ease, filter 0.6s ease;
  }
  .gallery-tile:hover img{transform:scale(1.08); filter:grayscale(0%) saturate(1.15);}
  .gallery-tile::before{
    content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
    background:linear-gradient(180deg, rgba(18,46,34,0.08), rgba(13,36,25,0.3));
  }
  .gallery-tile .cap{
    position:absolute; left:0; right:0; bottom:0;
    padding:14px 16px;
    background:linear-gradient(to top, rgba(13,36,25,0.85), transparent);
    font-family:'IBM Plex Mono'; font-size:0.7rem; letter-spacing:0.04em;
    color:var(--off-white); text-transform:uppercase;
  }

  /* ---------- CONTACT FORM ---------- */
  .form-panel{
    margin-top:60px; padding-top:52px; border-top:1px solid rgba(246,242,230,0.14);
  }
  .form-panel h3{
    font-family:'Big Shoulders Display'; font-weight:800; text-transform:uppercase;
    font-size:1.7rem; margin-bottom:24px;
  }
  .contact-form{display:grid; grid-template-columns:1fr 1fr; gap:20px 24px; max-width:760px;}
  .form-field{display:flex; flex-direction:column; gap:8px;}
  .form-field.full{grid-column:1/-1;}
  .form-field label{
    font-family:'IBM Plex Mono'; font-size:0.68rem; letter-spacing:0.06em;
    color:var(--gold); text-transform:uppercase;
  }
  .form-field input, .form-field select, .form-field textarea{
    background:transparent; border:none; border-bottom:1px solid rgba(246,242,230,0.3);
    color:var(--off-white); font-family:'Work Sans', sans-serif; font-size:0.98rem;
    padding:10px 2px; resize:vertical;
  }
  .form-field select option{color:var(--ink);}
  .form-field input::placeholder, .form-field textarea::placeholder{color:rgba(246,242,230,0.35);}
  .form-field input:focus, .form-field select:focus, .form-field textarea:focus{
    outline:none; border-bottom-color:var(--gold);
  }
  .form-submit{
    grid-column:1/-1; justify-self:start; margin-top:8px;
    background:var(--gold); color:var(--green-deep); border:1px solid var(--gold);
    padding:15px 30px; font-weight:600; font-size:0.95rem; cursor:pointer;
    transition:background 0.2s ease, transform 0.2s ease;
  }
  .form-submit:hover{background:#f0bb4e; transform:translateY(-2px);}
  .form-hint{
    font-family:'IBM Plex Mono'; font-size:0.72rem; color:rgba(246,242,230,0.45);
    margin-top:14px; grid-column:1/-1;
  }

  /* ---------- TEAM ---------- */
  .team{background:var(--paper);}
  .team-grid{
    display:grid; grid-template-columns:repeat(2, 1fr); gap:40px;
  }
  .team-card{
    background:var(--green-deep); color:var(--off-white);
    border:1px solid rgba(225,166,46,0.25);
  }
  .team-photo{
    position:relative; width:100%; aspect-ratio:3/4; overflow:hidden;
    border-bottom:1px solid rgba(225,166,46,0.3);
  }
  .team-photo img{
    width:100%; height:100%; object-fit:cover; object-position:top center;
    filter:grayscale(55%) contrast(1.08) brightness(0.96);
    display:block;
  }
  .team-photo::after{
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(18,46,34,0.15) 0%, rgba(13,36,25,0.55) 100%);
    mix-blend-mode:multiply;
  }
  .team-photo::before{
    content:''; position:absolute; top:12px; right:12px; z-index:2;
    width:34px; height:34px; border:1px solid var(--gold); border-radius:50%;
  }
  .team-info{padding:26px 26px 30px;}
  .team-info .eyebrow{color:var(--gold); display:block; margin-bottom:8px;}
  .team-info h3{
    font-family:'Big Shoulders Display'; font-weight:800; text-transform:uppercase;
    font-size:1.5rem; line-height:1.15; margin-bottom:6px;
  }
  .team-info .role{
    font-family:'IBM Plex Mono'; font-size:0.76rem; color:rgba(246,242,230,0.6);
    letter-spacing:0.03em;
  }
  .team-info .stake{
    margin-top:16px; padding-top:16px; border-top:1px solid rgba(246,242,230,0.14);
    display:flex; justify-content:space-between; font-size:0.82rem;
    font-family:'IBM Plex Mono'; color:rgba(246,242,230,0.55);
  }

  footer{
    background:#0d2419; color:rgba(246,242,230,0.5);
    padding:34px 6vw; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
    font-size:0.8rem; font-family:'IBM Plex Mono';
    border-top:1px solid rgba(246,242,230,0.1);
  }
  footer .motto{letter-spacing:0.15em; text-transform:uppercase;}

  /* reveal on scroll */
  .reveal{opacity:0; transform:translateY(24px); transition:opacity 0.7s ease, transform 0.7s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}

  /* ---------- PAGE HERO (subpages) ---------- */
  .page-hero{
    position:relative;
    background:radial-gradient(ellipse at 20% -10%, #1c4c39 0%, var(--green-deep) 55%, #0d2419 100%);
    color:var(--off-white);
    padding:158px 6vw 90px;
    overflow:hidden;
  }
  .page-hero .eyebrow{color:var(--gold); display:block; margin-bottom:16px;}
  .page-hero h1{
    font-family:'Big Shoulders Display', sans-serif; font-weight:900;
    font-size:clamp(2.3rem, 6vw, 4.3rem); text-transform:uppercase; line-height:1;
  }
  .page-hero p{max-width:580px; margin-top:22px; font-size:1.02rem; line-height:1.7; color:rgba(246,242,230,0.78);}
  .crumb{
    font-family:'IBM Plex Mono'; font-size:0.74rem; color:rgba(246,242,230,0.5);
    margin-bottom:22px; letter-spacing:0.03em;
  }
  .crumb a{color:var(--gold); text-decoration:none;}
  .crumb a:hover{text-decoration:underline;}

  /* ---------- VIEW-ALL LINKS ---------- */
  .view-all{
    font-family:'IBM Plex Mono'; font-size:0.78rem; letter-spacing:0.04em;
    text-decoration:none; color:var(--rust);
    border-bottom:1px solid currentColor; padding-bottom:2px;
    display:inline-block; margin-top:18px;
  }
  .view-all.on-dark{color:var(--gold);}
  .section-head-row{
    display:flex; justify-content:space-between; align-items:flex-end;
    flex-wrap:wrap; gap:16px; margin-bottom:64px;
  }
  .section-head-row .section-head{margin-bottom:0;}

  /* ---------- CTA BANNER ---------- */
  .cta-banner{
    background:var(--green-deep); color:var(--off-white);
    text-align:center; padding:100px 6vw;
  }
  .cta-banner .eyebrow{color:var(--gold); display:block; margin-bottom:16px;}
  .cta-banner h2{
    font-family:'Big Shoulders Display'; font-weight:900; text-transform:uppercase;
    font-size:clamp(2rem,5vw,3.4rem); margin-bottom:20px; line-height:1.05;
  }
  .cta-banner p{max-width:520px; margin:0 auto 34px; color:rgba(246,242,230,0.72); font-size:1.02rem; line-height:1.6;}
  .cta-actions{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

  /* ---------- ORDER / HOW-IT-WORKS STEPS ---------- */
  .steps-grid{
    display:grid; grid-template-columns:repeat(3, 1fr); gap:1px;
    background:rgba(29,26,18,0.12); border:1px solid rgba(29,26,18,0.12);
  }
  .step-card{background:var(--paper); padding:38px 32px;}
  .step-card .step-num{
    font-family:'Big Shoulders Display'; font-weight:900; font-size:2.4rem;
    color:var(--rust); line-height:1; margin-bottom:16px;
  }
  .step-card h3{
    font-family:'Big Shoulders Display'; font-weight:700; text-transform:uppercase;
    font-size:1.2rem; margin-bottom:10px;
  }
  .step-card p{font-size:0.92rem; line-height:1.6; color:#4a4433;}

  /* ---------- ORDER FORM (booking page) ---------- */
  .order-panel{background:var(--green-deep); color:var(--off-white); padding:90px 6vw;}
  .order-panel .section-head .eyebrow{color:var(--gold);}
  .order-panel .section-head p{color:rgba(246,242,230,0.68);}
  .order-form{display:grid; grid-template-columns:1fr 1fr; gap:22px 26px; max-width:820px;}
  .order-form .form-field.full{grid-column:1/-1;}

  /* NAV: filled "Book Now" style */
  .nav-book{
    font-family:'IBM Plex Mono'; font-size:0.76rem;
    background:var(--gold); color:var(--green-deep);
    padding:9px 18px; text-decoration:none; letter-spacing:0.05em;
    border:1px solid var(--gold);
    transition:background 0.2s ease, transform 0.2s ease;
  }
  .nav-book:hover{background:#f0bb4e; transform:translateY(-1px);}
  .nav-actions{display:flex; align-items:center; gap:12px;}

  /* mini teaser grids reuse product-grid / gallery-grid / work-grid as-is */

  /* ---------- FLOATING BUTTONS (WhatsApp + Back to Top) ---------- */
  .fab-stack{
    position:fixed; right:22px; bottom:22px; z-index:200;
    display:flex; flex-direction:column; align-items:center; gap:14px;
  }
  .fab{
    width:54px; height:54px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 6px 18px rgba(13,36,25,0.35);
    text-decoration:none; border:none; cursor:pointer;
    transition:transform 0.2s ease, box-shadow 0.2s ease, opacity 0.25s ease, visibility 0.25s ease;
  }
  .fab:hover{transform:translateY(-3px); box-shadow:0 10px 22px rgba(13,36,25,0.4);}
  .fab.whatsapp{background:#25D366;}
  .fab.whatsapp svg{width:28px; height:28px; fill:#ffffff;}
  .fab.to-top{
    width:44px; height:44px;
    background:var(--green-deep); border:1px solid var(--gold);
    opacity:0; visibility:hidden; transform:translateY(8px);
  }
  .fab.to-top.show{opacity:1; visibility:visible; transform:translateY(0);}
  .fab.to-top svg{width:18px; height:18px; stroke:var(--gold); fill:none; stroke-width:2.4;}

  @media (max-width:600px){
    .fab-stack{right:16px; bottom:16px;}
    .fab{width:48px; height:48px;}
    .fab.to-top{width:38px; height:38px;}
  }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:900px){
    nav.links{display:none;}
    .burger{display:block;}
    .about-grid{grid-template-columns:1fr;}
    .work-grid{grid-template-columns:1fr;}
    .pillar-row{grid-template-columns:1fr;}
    .pillar{border-right:none; border-bottom:1px solid rgba(29,26,18,0.15); padding:36px 0;}
    .contact-grid{grid-template-columns:1fr; gap:40px;}
    .seal{width:104px; height:104px; top:96px; right:5vw;}
    .seal-inner{width:78px; height:78px; font-size:0.5rem;}
    section{padding:80px 6vw;}
    .gallery-grid{grid-template-columns:repeat(2, 1fr);}
    .gallery-note{margin-top:0; margin-bottom:36px;}
    .contact-form{grid-template-columns:1fr;}
    .team-grid{grid-template-columns:1fr;}
  }
  @media (max-width:520px){
    .gallery-grid{grid-template-columns:1fr;}
  }
  @media (max-width:900px){
    .steps-grid{grid-template-columns:1fr;}
    .step-card{border-bottom:1px solid rgba(29,26,18,0.12);}
    .order-form{grid-template-columns:1fr;}
    .section-head-row{flex-direction:column; align-items:flex-start;}
    .nav-book{padding:8px 14px; font-size:0.7rem;}
  }

  /* ---------- STANDALONE TEAM PAGE PROFILE CARDS ---------- */
  .profile-grid{
    display:grid; grid-template-columns:repeat(2, 1fr); gap:44px;
    max-width:1100px; margin:0 auto;
  }
  .profile-card{
    background:var(--green-deep); color:var(--off-white);
    border:1px solid rgba(225,166,46,0.25);
    display:flex; flex-direction:column;
  }
  .profile-photo{
    position:relative; width:100%; aspect-ratio:3/4; overflow:hidden;
    border-bottom:1px solid rgba(225,166,46,0.3);
  }
  .profile-photo img{
    width:100%; height:100%; object-fit:cover; object-position:top center;
    filter:grayscale(45%) contrast(1.08) brightness(0.97);
  }
  .profile-photo::after{
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(18,46,34,0.1) 0%, rgba(13,36,25,0.5) 100%);
    mix-blend-mode:multiply;
  }
  .profile-photo::before{
    content:''; position:absolute; top:14px; right:14px; z-index:2;
    width:36px; height:36px; border:1px solid var(--gold); border-radius:50%;
  }
  .profile-info{padding:32px 30px 36px;}
  .profile-info .eyebrow{color:var(--gold); display:block; margin-bottom:10px;}
  .profile-info h2{
    font-family:'Big Shoulders Display'; font-weight:800; text-transform:uppercase;
    font-size:1.8rem; line-height:1.15; margin-bottom:6px;
  }
  .profile-info .role{
    font-family:'IBM Plex Mono'; font-size:0.8rem; color:rgba(246,242,230,0.6);
    letter-spacing:0.03em; display:block; margin-bottom:20px;
  }
  .profile-info p.bio{
    font-size:0.96rem; line-height:1.75; color:rgba(246,242,230,0.78);
    margin-bottom:22px;
  }
  .stake-row{
    display:flex; justify-content:space-between; padding-top:18px;
    border-top:1px solid rgba(246,242,230,0.14);
    font-family:'IBM Plex Mono'; font-size:0.78rem; color:rgba(246,242,230,0.55);
  }
  .stake-row span.value{color:var(--gold);}

  .credentials{background:var(--green-deep); color:var(--off-white); padding:0 6vw 100px;}
  .credentials-inner{
    max-width:1100px; margin:0 auto;
    display:grid; grid-template-columns:1fr auto; gap:40px; align-items:center;
    padding-top:70px; border-top:1px solid rgba(246,242,230,0.14);
  }
  .credentials h3{
    font-family:'Big Shoulders Display'; font-weight:800; text-transform:uppercase;
    font-size:1.6rem; margin-bottom:14px;
  }
  .credentials p{font-size:0.95rem; line-height:1.7; color:rgba(246,242,230,0.72); max-width:480px;}
  .cred-list{list-style:none; font-family:'IBM Plex Mono'; font-size:0.8rem;}
  .cred-list li{
    padding:10px 0; border-top:1px solid rgba(246,242,230,0.14);
    display:flex; gap:24px; justify-content:space-between; min-width:280px;
  }
  .cred-list li:last-child{border-bottom:1px solid rgba(246,242,230,0.14);}
  .cred-list .label{color:var(--gold);}

  @media (max-width:800px){
    .profile-grid{grid-template-columns:1fr;}
    .credentials-inner{grid-template-columns:1fr;}
  }
