@import url('https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,700;1,400&display=swap');
:root{--bg:#07100a;--bg2:#0e1a11;--fg:#e6e2d8;--fg-muted:rgba(230,226,216,0.52);--green:#3a7832;--green-light:#58a646;--gold:#c4a045;--header-h:70px;--ease:cubic-bezier(0.22,1,0.36,1);--card-bg:rgba(255,255,255,0.04);--border:rgba(255,255,255,0.08);--header-bg:rgba(7,16,10,0.9);}
[data-theme="light"]{--bg:#f0ede6;--bg2:#e5e1d8;--fg:#181810;--fg-muted:rgba(24,24,16,0.5);--header-bg:rgba(240,237,230,0.92);--card-bg:rgba(0,0,0,0.04);--border:rgba(0,0,0,0.1);}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--fg);font-family:'Geist',system-ui,sans-serif;font-size:18px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{color:var(--green-light);text-decoration:none;}
a:hover{color:var(--gold);}
button{font-family:'Geist',system-ui,sans-serif;}
@keyframes kenBurns{from{transform:scale(1) translate(0,0);}to{transform:scale(1.1) translate(-1%,1%);}}
@keyframes fadeUp{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes grainShift{0%,100%{transform:translate(0,0);}25%{transform:translate(-2px,1px);}50%{transform:translate(1px,-2px);}75%{transform:translate(-1px,2px);}}
@keyframes revealIn{from{opacity:0;transform:translateY(32px);}to{opacity:1;transform:translateY(0);}}
@keyframes slideRight{from{transform:translateX(100%);opacity:0;}to{transform:translateX(0);opacity:1;}}
.reveal{opacity:0;transform:translateY(32px);transition:opacity 0.85s var(--ease),transform 0.85s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.rd1{transition-delay:0.1s;}.rd2{transition-delay:0.2s;}.rd3{transition-delay:0.3s;}
.svc-card{transition:transform 0.35s var(--ease),box-shadow 0.35s var(--ease);border-radius:8px;overflow:hidden;}
.svc-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px rgba(0,0,0,0.45);}
.svc-card .cimg{overflow:hidden;}
.svc-card .cimg img{transition:transform 0.7s var(--ease);width:100%;height:100%;object-fit:cover;}
.svc-card:hover .cimg img{transform:scale(1.06);}
.nav-lnk{position:relative;transition:color 0.2s;}
.nav-lnk::after{content:'';position:absolute;bottom:-3px;left:0;right:0;height:1px;background:var(--green-light);transform:scaleX(0);transform-origin:left;transition:transform 0.3s var(--ease);}
.nav-lnk:hover::after,.nav-lnk.active::after{transform:scaleX(1);}
.ibtn{background:none;border:none;cursor:pointer;color:var(--fg);padding:8px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background 0.2s,color 0.2s;}
.ibtn:hover{background:rgba(88,166,70,0.12);color:var(--green-light);}
.btn-primary{background:var(--green);color:#fff;border:none;font-family:'Geist',system-ui,sans-serif;font-weight:600;border-radius:6px;cursor:pointer;transition:all 0.26s;display:inline-block;}
.btn-primary:hover{background:var(--green-light);transform:translateY(-2px);color:#fff;}
.btn-ghost{background:transparent;color:var(--fg);border:1px solid rgba(230,226,216,0.32);font-family:'Geist',system-ui,sans-serif;font-weight:500;border-radius:5px;cursor:pointer;transition:all 0.28s;display:inline-block;}
.btn-ghost:hover{border-color:var(--green-light);color:var(--green-light);}
.f-lnk::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:1px;background:var(--green-light);transform:scaleX(0);transform-origin:left;transition:transform 0.35s var(--ease);}
.f-lnk:hover::after{transform:scaleX(1);}
.f-lnk{position:relative;}

/* Mobile menu */
#mobile-menu{display:none;position:fixed;inset:0;z-index:999;background:var(--bg);flex-direction:column;padding:calc(var(--header-h) + 40px) 36px 40px;}
#mobile-menu.open{display:flex;}
/* Search */
#search-panel{display:none;position:fixed;inset:0;z-index:2000;background:rgba(4,10,6,0.96);flex-direction:column;align-items:center;justify-content:flex-start;padding-top:130px;}
#search-panel.open{display:flex;}
/* Settings */
#settings-panel{display:none;position:fixed;top:var(--header-h);right:0;bottom:0;width:300px;z-index:1500;background:var(--bg2);border-left:1px solid var(--border);padding:28px 22px;overflow-y:auto;}
#settings-panel.open{display:block;animation:slideRight 0.35s var(--ease);}
/* Contact dropdown */
#contact-drop-menu{display:none;position:absolute;top:calc(100% + 10px);right:0;background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:6px;min-width:210px;box-shadow:0 16px 48px rgba(0,0,0,0.5);z-index:200;}
#contact-drop-menu.open{display:block;animation:fadeIn 0.18s ease;}
/* Lightbox */
#lightbox{display:none;position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,0.94);align-items:center;justify-content:center;}
#lightbox.open{display:flex;}

@media(max-width:768px){.dm{display:none!important;}body{font-size:17px;}}
@media(min-width:769px){.mm{display:none!important;}}
@media(max-width:900px){.svc2{grid-template-columns:1fr!important;}}
@media(max-width:820px){.ftgrid{grid-template-columns:1fr 1fr!important;}}
@media(max-width:500px){.ftgrid{grid-template-columns:1fr!important;}}
@media(max-width:768px){.gprev{left:8px!important;}.gnext{right:8px!important;}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none!important;}*{animation-duration:0.01ms!important;transition-duration:0.01ms!important;}}
::-webkit-scrollbar{width:4px;}::-webkit-scrollbar-track{background:var(--bg);}::-webkit-scrollbar-thumb{background:var(--green);border-radius:4px;}

/* ─── mobile-menu tablet-width fix (mm-fix 2026-07-27) ──────────────────────
   The drawer used to render as a full-width phone drawer at 640-768px
   (tablet-portrait), which looked awkward. Cap contents to a centered column.
*/
#mobile-menu{align-items:center;}
#mobile-menu > *{width:100%;max-width:440px;}
