  :root {
    --forest-deep: #0d1f0e;
    --forest-dark: #132b14;
    --forest-mid: #1e4620;
    --forest-green: #2d6a2f;
    --moss: #3d7a3f;
    --leaf: #4e9a51;
    --sage: #7ab87d;
    --mist: #b8d8b9;
    --cream: #f0ede4;
    --gold: #c8a84b;
    --gold-light: #e8c870;
  }

  *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body {
    background:var(--forest-deep);
    color:var(--cream);
    font-family:'Cormorant Garamond',serif;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
  }

  /* ===== LEAVES ===== */
  .leaves-bg {
    position:fixed; top:0; left:0; width:100%; height:100%;
    pointer-events:none; z-index:0; overflow:hidden;
  }
  .leaf-particle {
    position:absolute; border-radius:50% 0 50% 0;
    opacity:0; animation:falling linear infinite;
  }
  @keyframes falling {
    0%   { transform:translateY(-20px) rotate(0deg); opacity:0; }
    10%  { opacity:.35; }
    90%  { opacity:.15; }
    100% { transform:translateY(110vh) rotate(720deg) translateX(50px); opacity:0; }
  }
  .leaf-particle:nth-child(1)  {left:5%;  width:8px;  height:11px;background:var(--leaf);         animation-duration:12s;animation-delay:0s;}
  .leaf-particle:nth-child(2)  {left:15%; width:14px; height:18px;background:var(--moss);         animation-duration:15s;animation-delay:2s;}
  .leaf-particle:nth-child(3)  {left:28%; width:10px; height:13px;background:var(--leaf);         animation-duration:10s;animation-delay:4s;}
  .leaf-particle:nth-child(4)  {left:40%; width:7px;  height:10px;background:var(--sage);         animation-duration:18s;animation-delay:1s;}
  .leaf-particle:nth-child(5)  {left:55%; width:12px; height:16px;background:var(--forest-green); animation-duration:13s;animation-delay:6s;}
  .leaf-particle:nth-child(6)  {left:68%; width:9px;  height:12px;background:var(--leaf);         animation-duration:11s;animation-delay:3s;}
  .leaf-particle:nth-child(7)  {left:78%; width:15px; height:20px;background:var(--moss);         animation-duration:16s;animation-delay:5s;}
  .leaf-particle:nth-child(8)  {left:88%; width:8px;  height:11px;background:var(--sage);         animation-duration:14s;animation-delay:7s;}
  .leaf-particle:nth-child(9)  {left:22%; width:11px; height:15px;background:var(--leaf);         animation-duration:17s;animation-delay:9s;}
  .leaf-particle:nth-child(10) {left:60%; width:13px; height:17px;background:var(--forest-green); animation-duration:12s;animation-delay:11s;}

  /* ===== NAV ===== */
  nav {
    position:fixed; top:0; left:0; right:0; z-index:200;
    padding:18px 60px;
    display:flex; justify-content:space-between; align-items:center;
    background:linear-gradient(to bottom,rgba(13,31,14,.97) 0%,rgba(13,31,14,.5) 80%,transparent 100%);
    animation:fadeDown 1s ease both;
    transition:background .3s, box-shadow .3s;
  }
  nav.scrolled { background:rgba(13,31,14,.98); box-shadow:0 2px 24px rgba(0,0,0,.5); }
  @keyframes fadeDown {
    from{opacity:0;transform:translateY(-20px)}
    to  {opacity:1;transform:translateY(0)}
  }

  .nav-logo {
    font-family:'Playfair Display',serif;
    font-size:clamp(1.3rem,3vw,1.8rem);
    color:var(--gold); letter-spacing:2px;
    text-decoration:none; flex-shrink:0;
  }
  .nav-logo span { font-style:italic; color:var(--sage); }

  .nav-links { list-style:none; display:flex; gap:36px; align-items:center; }
  .nav-links a {
    color:var(--mist); text-decoration:none;
    font-size:.82rem; letter-spacing:2.5px; text-transform:uppercase;
    transition:color .3s; white-space:nowrap;
  }
  .nav-links a:hover { color:var(--gold); }

  /* Burger */
  .burger {
    display:none; flex-direction:column; gap:5px;
    cursor:pointer; padding:6px; background:none; border:none; z-index:300;
  }
  .burger span {
    display:block; width:26px; height:2px;
    background:var(--gold); border-radius:2px;
    transition:all .35s; transform-origin:center;
  }
  .burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .burger.open span:nth-child(2){opacity:0;transform:scaleX(0);}
  .burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  /* Mobile overlay */
  .mobile-menu {
    position:fixed; inset:0;
    background:rgba(13,31,14,.98); z-index:250;
    display:flex; flex-direction:column;
    align-items:center; justify-content:center; gap:36px;
    transform:translateX(100%);
    transition:transform .45s cubic-bezier(.77,0,.18,1);
  }
  .mobile-menu.open { transform:translateX(0); }
  .mobile-menu a {
    color:var(--mist); text-decoration:none;
    font-family:'Playfair Display',serif;
    font-size:clamp(2rem,7vw,2.8rem);
    letter-spacing:3px; transition:color .3s;
  }
  .mobile-menu a:hover { color:var(--gold); }
  .mobile-menu-logo {
    font-family:'Playfair Display',serif;
    font-size:1.2rem; color:var(--gold);
    letter-spacing:2px; margin-bottom:10px;
  }
  .mobile-menu-logo span { font-style:italic; color:var(--sage); }
  .mobile-divider { width:40px; height:1px; background:var(--forest-green); }

  /* ===== ANIMATIONS ===== */
  @keyframes fadeUp {
    from{opacity:0;transform:translateY(30px)}
    to  {opacity:1;transform:translateY(0)}
  }
  .reveal {
    opacity:0; transform:translateY(40px);
    transition:opacity .85s ease, transform .85s ease;
  }
  .reveal.visible { opacity:1; transform:translateY(0); }

  /* ===== HERO ===== */
  .hero {
    position:relative; z-index:1;
    min-height:100svh;
    display:flex; flex-direction:column;
    justify-content:center; align-items:center; text-align:center;
    padding:clamp(100px,14vw,140px) clamp(20px,5vw,60px) 80px;
  }
  .hero::before {
    content:''; position:absolute; inset:0; z-index:-1;
    background:
      radial-gradient(ellipse at 30% 60%,rgba(46,106,47,.15) 0%,transparent 60%),
      radial-gradient(ellipse at 70% 30%,rgba(29,69,30,.2) 0%,transparent 50%);
  }
  .hero-tagline {
    font-size:clamp(.68rem,2vw,.9rem); letter-spacing:6px;
    text-transform:uppercase; color:var(--gold); margin-bottom:20px;
    animation:fadeUp 1s .3s ease both;
  }
  .hero-title {
    font-family:'Playfair Display',serif;
    font-size:clamp(3rem,12vw,8rem); line-height:1;
    color:var(--cream); margin-bottom:20px;
    animation:fadeUp 1s .5s ease both;
  }
  .hero-title em { font-style:italic; color:var(--sage); display:block; }
  .hero-sub {
    font-size:clamp(1rem,2.5vw,1.3rem); color:var(--mist);
    font-weight:300; letter-spacing:1px; max-width:500px; line-height:1.8;
    margin-bottom:46px; animation:fadeUp 1s .7s ease both; padding:0 10px;
  }
  .hero-cta {
    display:inline-block;
    padding:clamp(12px,2vw,16px) clamp(28px,5vw,50px);
    border:1px solid var(--gold); color:var(--gold); text-decoration:none;
    font-size:clamp(.74rem,1.5vw,.9rem); letter-spacing:3px; text-transform:uppercase;
    transition:all .4s; animation:fadeUp 1s .9s ease both;
    position:relative; overflow:hidden;
  }
  .hero-cta::before {
    content:''; position:absolute; inset:0;
    background:var(--gold); transform:translateX(-101%);
    transition:transform .4s; z-index:-1;
  }
  .hero-cta:hover { color:var(--forest-deep); }
  .hero-cta:hover::before { transform:translateX(0); }

  .scroll-hint {
    position:absolute; bottom:36px; left:50%; transform:translateX(-50%);
    display:flex; flex-direction:column; align-items:center; gap:8px;
    color:var(--moss); font-size:.72rem; letter-spacing:3px; text-transform:uppercase;
    animation:fadeUp 1s 1.2s ease both;
  }
  .scroll-line {
    width:1px; height:50px;
    background:linear-gradient(to bottom,var(--forest-green),transparent);
    animation:growLine 2s 1.5s ease both, pulseLine 2s 3s infinite;
  }
  @keyframes growLine {from{height:0}to{height:50px}}
  @keyframes pulseLine {0%,100%{opacity:1}50%{opacity:.3}}

  /* ===== ATM STRIP ===== */
  .atm-strip {
    position:relative; z-index:1;
    overflow:hidden; height:52px;
    background:var(--forest-mid); display:flex; align-items:center;
  }
  .atm-track {
    display:flex; gap:50px; white-space:nowrap;
    animation:marquee 22s linear infinite;
  }
  .atm-item {
    font-size:.78rem; letter-spacing:4px; text-transform:uppercase;
    color:var(--sage); display:flex; align-items:center; gap:18px;
  }
  .atm-item::after { content:'✦'; color:var(--gold); font-size:.6rem; }
  @keyframes marquee {
    from{transform:translateX(0)} to{transform:translateX(-50%)}
  }

  /* ===== SECTION BASE ===== */
  section {
    position:relative; z-index:1;
    padding:clamp(60px,10vw,110px) clamp(20px,5vw,60px);
  }
  .section-label {
    font-size:.74rem; letter-spacing:5px; text-transform:uppercase;
    color:var(--gold); margin-bottom:14px;
  }
  .section-title {
    font-family:'Playfair Display',serif;
    font-size:clamp(2rem,5vw,4rem); line-height:1.1;
    color:var(--cream); margin-bottom:28px;
  }
  .section-title em { font-style:italic; color:var(--sage); }

  /* ===== ABOUT ===== */
  .about-wrap {
    display:grid; grid-template-columns:1fr 1fr;
    gap:clamp(30px,6vw,80px); align-items:center;
    max-width:1200px; margin:0 auto;
  }
  .about-text p {
    font-size:clamp(1rem,1.5vw,1.15rem); line-height:1.9;
    color:var(--mist); font-weight:300; margin-bottom:18px;
  }
  .about-stats {
    display:grid; grid-template-columns:1fr 1fr;
    gap:clamp(12px,2vw,28px); margin-top:36px;
  }
  .stat {
    padding:clamp(14px,2vw,24px);
    border:1px solid var(--forest-mid);
    background:rgba(30,70,32,.15);
    transition:border-color .3s, background .3s;
  }
  .stat:hover { border-color:var(--gold); background:rgba(30,70,32,.3); }
  .stat-num {
    font-family:'Playfair Display',serif;
    font-size:clamp(1.8rem,3vw,2.5rem); color:var(--gold); line-height:1;
  }
  .stat-label {
    font-size:.76rem; letter-spacing:2px; text-transform:uppercase;
    color:var(--sage); margin-top:5px;
  }

  .about-image-wrap { position:relative; }
  .about-image-box {
    width:100%; aspect-ratio:3/4;
    background:linear-gradient(145deg,var(--forest-mid),var(--forest-dark));
    display:flex; align-items:center; justify-content:center;
    flex-direction:column; gap:12px; border:1px solid var(--forest-mid);
  }
  .big-icon { font-size:clamp(3rem,6vw,5rem); opacity:.3; }
  .img-label {
    font-size:.76rem; letter-spacing:3px; text-transform:uppercase;
    color:var(--sage); opacity:.5;
  }
  .about-image-frame {
    position:absolute; inset:12px;
    border:1px solid rgba(200,168,75,.22); pointer-events:none;
  }
  .about-badge {
    position:absolute; bottom:-20px; right:-20px;
    width:clamp(80px,10vw,120px); height:clamp(80px,10vw,120px);
    background:var(--forest-mid); border:1px solid var(--forest-green);
    display:flex; align-items:center; justify-content:center;
    flex-direction:column; gap:4px;
  }
  .about-badge .star { font-family:'Playfair Display',serif; font-size:1.6rem; color:var(--gold); }
  .about-badge .badge-txt { font-size:.63rem; letter-spacing:2px; text-transform:uppercase; color:var(--sage); }

  /* ===== GALLERY ===== */
  .photo-section {
    background:var(--forest-dark);
    padding:clamp(60px,10vw,110px) clamp(16px,4vw,60px);
  }
  .photo-section-header { text-align:center; margin-bottom:50px; }

  .photo-grid {
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    grid-template-rows:260px 260px;
    gap:14px; max-width:1200px; margin:0 auto;
  }
  .photo-card {
    position:relative; overflow:hidden;
    background:var(--forest-mid); cursor:pointer;
  }
  .photo-card:first-child { grid-row:span 2; }

  .photo-placeholder {
    width:100%; height:100%;
    display:flex; flex-direction:column;
    align-items:center; justify-content:center; gap:10px;
    background:linear-gradient(135deg,var(--forest-mid),var(--forest-dark));
    transition:transform .6s cubic-bezier(.25,.46,.45,.94);
    overflow:hidden;
  }
  .photo-placeholder img {
    transition:transform .6s cubic-bezier(.25,.46,.45,.94);
  }
  .photo-card:hover .photo-placeholder { transform:scale(1.05); }
  .photo-card:hover .photo-placeholder img { transform:scale(1.05); }
  .photo-icon { font-size:clamp(2rem,4vw,3rem); opacity:.4; }
  .photo-label {
    font-size:.74rem; letter-spacing:3px; text-transform:uppercase;
    color:var(--sage); opacity:.6;
  }
  .photo-overlay {
    position:absolute; inset:0;
    background:linear-gradient(to top,rgba(13,31,14,.8),transparent 50%);
    opacity:0; transition:opacity .4s;
    display:flex; align-items:flex-end; padding:20px;
  }
  .photo-card:hover .photo-overlay { opacity:1; }
  .photo-overlay-text {
    font-family:'Playfair Display',serif;
    font-size:clamp(1rem,1.5vw,1.2rem); color:var(--cream); font-style:italic;
  }
  .photo-card::before {
    content:''; position:absolute; inset:7px;
    border:1px solid rgba(200,168,75,.2); z-index:2;
    pointer-events:none; transition:border-color .3s;
  }
  .photo-card:hover::before { border-color:rgba(200,168,75,.5); }

  /* ===== MENU ===== */
  .menu-section { max-width:1200px; margin:0 auto; }
  .menu-grid {
    display:grid; grid-template-columns:repeat(3,1fr);
    gap:clamp(14px,2vw,30px); margin-top:50px;
  }
  .menu-category {
    padding:clamp(20px,3vw,40px);
    border:1px solid var(--forest-mid);
    background:linear-gradient(145deg,rgba(30,70,32,.1),rgba(13,31,14,.3));
    transition:all .4s; position:relative; overflow:hidden;
  }
  .menu-category::after {
    content:''; position:absolute; bottom:0; left:0; right:0; height:2px;
    background:linear-gradient(to right,var(--forest-green),var(--gold),var(--forest-green));
    transform:scaleX(0); transition:transform .4s;
  }
  .menu-category:hover { border-color:var(--moss); }
  .menu-category:hover::after { transform:scaleX(1); }
  .menu-cat-icon { font-size:clamp(2rem,3vw,2.5rem); margin-bottom:14px; display:block; }
  .menu-cat-title {
    font-family:'Playfair Display',serif;
    font-size:clamp(1.2rem,2vw,1.5rem); color:var(--gold); margin-bottom:18px;
  }
  .menu-item {
    display:flex; justify-content:space-between; align-items:baseline;
    padding:9px 0; border-bottom:1px dashed rgba(61,122,63,.3); gap:8px;
  }
  .menu-item:last-child { border-bottom:none; }
  .menu-item-name { font-size:clamp(.88rem,1.2vw,1rem); color:var(--mist); flex:1; }
  .menu-item-price { font-size:.95rem; color:var(--gold); font-weight:500; white-space:nowrap; }

  /* ===== FOOTER ===== */
  footer { position:relative; z-index:1; background:var(--forest-deep); border-top:1px solid var(--forest-mid); }
  .footer-top {
    padding:clamp(46px,8vw,80px) clamp(20px,5vw,60px);
    display:grid; grid-template-columns:1.2fr 1fr 1fr;
    gap:clamp(28px,5vw,60px); max-width:1200px; margin:0 auto;
  }
  .footer-brand .nav-logo { display:block; margin-bottom:14px; }
  .footer-brand p { color:var(--moss); font-size:1rem; line-height:1.8; font-weight:300; }
  .footer-col h4 {
    font-size:.72rem; letter-spacing:4px; text-transform:uppercase;
    color:var(--gold); margin-bottom:18px;
  }
  .footer-col p, .footer-col a {
    display:block; color:var(--mist); text-decoration:none;
    font-size:1rem; line-height:2; font-weight:300; transition:color .3s;
  }
  .footer-col a:hover { color:var(--gold); }

  /* ===== PHONE BAR ===== */
  .phone-bar {
    background:linear-gradient(135deg,var(--forest-mid),var(--forest-green));
    padding:clamp(22px,3vw,30px) clamp(20px,5vw,60px);
    display:flex; align-items:center; justify-content:center;
    gap:clamp(14px,4vw,40px); flex-wrap:wrap;
    border-top:1px solid rgba(200,168,75,.3);
  }
  .phone-label {
    font-size:.76rem; letter-spacing:4px; text-transform:uppercase;
    color:var(--mist); opacity:.75;
  }
  .phone-number {
    font-family:'Playfair Display',serif;
    font-size:clamp(1.4rem,4vw,2.1rem); color:var(--gold);
    letter-spacing:clamp(1px,.5vw,4px); text-decoration:none;
    display:flex; align-items:center; gap:12px; transition:color .3s;
  }
  .phone-number:hover { color:var(--gold-light); }
  .phone-icon {
    width:clamp(40px,5vw,50px); height:clamp(40px,5vw,50px);
    border:1px solid var(--gold); border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:clamp(.9rem,1.5vw,1.1rem);
    animation:ring 4s ease infinite; flex-shrink:0;
  }
  @keyframes ring {
    0%,100%{transform:rotate(0)}
    5%  {transform:rotate(15deg)}
    10% {transform:rotate(-10deg)}
    15% {transform:rotate(8deg)}
    20% {transform:rotate(0)}
  }
  .phone-note { font-size:.84rem; color:var(--sage); letter-spacing:1px; }
  .copyright {
    text-align:center; padding:18px;
    font-size:.76rem; color:var(--forest-green); letter-spacing:2px;
    border-top:1px solid rgba(29,69,30,.5);
  }

  /* ================================================
     RESPONSIVE
  ================================================ */

  /* Tablet landscape 768–1024 */
  @media (max-width:1024px) {
    nav { padding:16px 30px; }

    .about-wrap { grid-template-columns:1fr; gap:40px; }
    .about-image-wrap { max-width:460px; margin:0 auto; }

    .photo-grid {
      grid-template-columns:1fr 1fr;
      grid-template-rows:220px 220px 220px;
    }
    .photo-card:first-child { grid-row:span 2; }

    .menu-grid { grid-template-columns:1fr 1fr; }

    .footer-top { grid-template-columns:1fr 1fr; }
    .footer-brand { grid-column:span 2; }
  }

  /* Tablet portrait 600–768 */
  @media (max-width:768px) {
    nav { padding:14px 20px; }
    .nav-links { display:none; }
    .burger { display:flex; }

    .hero { padding:90px 20px 70px; }
    .scroll-hint { display:none; }

    .photo-grid {
      grid-template-columns:1fr 1fr;
      grid-template-rows:170px 170px 170px;
    }

    .menu-grid { grid-template-columns:1fr; }

    .footer-top { grid-template-columns:1fr; }
    .footer-brand { grid-column:auto; }

    .about-badge { position:static; margin-top:20px; width:90px; height:90px; }

    .phone-bar { flex-direction:column; text-align:center; gap:12px; }
    .phone-label { display:none; }
  }

  /* Mobile 0–480 */
  @media (max-width:480px) {
    nav { padding:12px 16px; }

    .hero-tagline { letter-spacing:3px; font-size:.66rem; }
    .hero-cta { padding:13px 26px; letter-spacing:2px; }

    .atm-strip { height:44px; }
    .atm-item { font-size:.68rem; letter-spacing:2px; gap:12px; }

    .photo-grid {
      grid-template-columns:1fr;
      grid-template-rows:auto;
    }
    .photo-card:first-child { grid-row:auto; }
    .photo-card { height:190px; }

    .about-stats { grid-template-columns:1fr 1fr; }

    .menu-category { padding:18px 16px; }

    .phone-number { font-size:1.3rem; letter-spacing:1px; }

    .footer-top { padding:36px 16px; gap:24px; }

    section { padding:50px 16px; }
    .photo-section { padding:50px 16px; }
  }

  /* Large desktop 1400+ */
  @media (min-width:1400px) {
    nav { padding:20px 80px; }
    section { padding:120px 80px; }
    .photo-section { padding:120px 80px; }
    .photo-grid { grid-template-rows:300px 300px; }
  }
