:root{
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --bg:#f5f2ea; --bg2:#ece7d9; --surface:#fffefb; --line:#dfd9c8; --line2:#cbc3aa;
  --text:#161c2c; --muted:#5b6072; --gold:oklch(52% 0.19 38); --gold-soft:oklch(44% 0.18 34); --hero-ink:#f5f2ea; --on-gold:#fdfbf6;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);}
.app{font-family:'Geist',system-ui,sans-serif;font-size:18px;line-height:1.6;color:var(--text);background:var(--bg);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
.app.dys, .app.dys *{font-family:'Lexend',sans-serif !important;letter-spacing:.01em;}
.serif{font-family:'Cormorant Garamond',Georgia,serif;}
a{color:var(--gold);text-decoration:none;transition:color .3s var(--ease);}
a:hover{color:var(--gold-soft);}
h1,h2,h3{margin:0;font-weight:600;line-height:1.08;}
p{margin:0;}
button{font-family:inherit;cursor:pointer;}
::selection{background:var(--gold);color:var(--on-gold);}

.ul-link{position:relative;}
.ul-link::after{content:'';position:absolute;left:0;bottom:-3px;height:1.5px;width:0;background:currentColor;transition:width .4s var(--ease);}
.ul-link:hover::after,.ul-link:focus-visible::after{width:100%;}

.reveal{opacity:0;transform:translateY(46px) scale(.98);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.clip{clip-path:inset(0 100% 0 0);transition:clip-path 1.3s var(--ease);}
.clip.in{clip-path:inset(0 0 0 0);}

.card{transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);}
.card:hover{transform:translateY(-6px);box-shadow:0 26px 60px -24px rgba(0,0,0,.25);border-color:var(--gold) !important;}
.card .card-img{transition:transform .7s var(--ease);}
.card:hover .card-img{transform:scale(1.06);}
.card .arrow{transition:transform .3s var(--ease);}
.card:hover .arrow{transform:translateX(4px);}

.imgwrap{position:relative;overflow:hidden;background:repeating-linear-gradient(135deg,#efe9db 0 14px,#e6dfcd 14px 28px);}
.imgwrap img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;display:block;}

.ken{animation:ken 24s ease-in-out infinite alternate;transform-origin:center;}
@keyframes ken{from{transform:scale(1.03);}to{transform:scale(1.16);}}

.loader{position:fixed;inset:0;z-index:120;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;transition:opacity .5s var(--ease),visibility .5s var(--ease);}
.loader.done{opacity:0;visibility:hidden;}
.rug{width:150px;height:98px;border-radius:6px;position:relative;overflow:hidden;background:repeating-linear-gradient(90deg,#ece7d9 0 9px,#e2dac4 9px 18px);border:1px solid #cbc3aa;}
.rug::before{content:'';position:absolute;top:0;bottom:0;width:46%;background:linear-gradient(90deg,transparent,rgba(199,110,66,.9),transparent);filter:blur(3px);animation:sweep 1.35s var(--ease) infinite;}
@keyframes sweep{0%{left:-50%}100%{left:110%}}
.rug .fringe{position:absolute;left:0;right:0;height:6px;background:repeating-linear-gradient(90deg,#cbc3aa 0 3px,transparent 3px 6px);}
.rug .fringe.top{top:-6px}.rug .fringe.bot{bottom:-6px}
.loader .lw{font-family:'Cormorant Garamond',serif;letter-spacing:.18em;font-size:15px;color:var(--muted);text-transform:uppercase;}

.panel{position:fixed;top:0;bottom:0;right:0;width:min(380px,86vw);background:var(--surface);border-left:1px solid var(--line);z-index:110;transform:translateX(102%);transition:transform .5s var(--ease);box-shadow:-30px 0 80px -40px rgba(0,0,0,.3);overflow-y:auto;}
.panel.open{transform:translateX(0);}
.scrim{position:fixed;inset:0;background:rgba(8,7,6,.35);z-index:105;opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility .4s var(--ease);backdrop-filter:blur(2px);}
.scrim.open{opacity:1;visibility:visible;}

.searchbar{position:fixed;top:0;left:0;right:0;z-index:112;background:var(--surface);border-bottom:1px solid var(--line);transform:translateY(-102%);transition:transform .45s var(--ease);}
.searchbar.open{transform:translateY(0);}

.dropdown{position:absolute;top:calc(100% + 10px);right:0;min-width:210px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:6px;box-shadow:0 24px 60px -30px rgba(0,0,0,.3);opacity:0;visibility:hidden;transform:translateY(-6px);transition:all .28s var(--ease);z-index:40;}
.contact-pill:hover .dropdown,.contact-pill:focus-within .dropdown,.services-pill:hover .dropdown,.services-pill:focus-within .dropdown,.dropdown.open{opacity:1;visibility:visible;transform:translateY(0);}

.mobmenu{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100vh;height:100dvh;z-index:9999;background-color:#0a0f1c;display:none;flex-direction:column;padding:96px 32px 40px;gap:4px;overflow-y:auto;pointer-events:none;margin:0;}
.mobmenu.open{display:flex;pointer-events:auto;animation:mobFade .25s var(--ease);}
@keyframes mobFade{from{opacity:0}to{opacity:1}}
.mobmenu a, .mobmenu button{position:relative;z-index:1;pointer-events:auto;color:#eef1f7 !important;}
.mobmenu .mob-link{display:flex;align-items:center;min-height:48px;width:100%;font-family:'Geist',system-ui,sans-serif;font-size:22px;font-weight:500;}
body.mob-locked{overflow:hidden;}

.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;background:transparent;border-radius:12px;color:var(--text);transition:background .3s var(--ease),color .3s var(--ease);}
.icon-btn:hover{background:rgba(140,160,120,.14);color:var(--gold-soft);}
.chip{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;border:1px solid var(--line2);background:var(--surface);color:var(--text);font-size:14px;transition:all .3s var(--ease);}
.chip:hover{border-color:var(--gold);color:var(--gold-soft);}

.toggle{width:52px;height:28px;border-radius:999px;border:1px solid var(--line2);background:var(--bg2);position:relative;transition:background .3s var(--ease);flex:0 0 auto;cursor:pointer;}
.toggle .knob{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:var(--muted);transition:transform .3s var(--ease),background .3s var(--ease);}
.toggle.on{background:var(--gold);} .toggle.on .knob{transform:translateX(24px);background:var(--on-gold);}

input,select,textarea{font-family:inherit;font-size:16px;color:var(--text);background:var(--bg2);border:1px solid var(--line2);border-radius:10px;padding:12px 14px;width:100%;transition:border-color .3s var(--ease);}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);}
select option{background:var(--surface);}

.field-slider{width:100%;-webkit-appearance:none;appearance:none;height:4px;border-radius:4px;background:var(--line2);padding:0;}
.field-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--gold);cursor:pointer;}
.field-slider::-moz-range-thumb{width:18px;height:18px;border:none;border-radius:50%;background:var(--gold);cursor:pointer;}

.hero-bleed{position:relative;margin-top:-210px;padding-top:230px;}
.emerge{background:linear-gradient(to bottom,transparent 0,var(--bg) 190px);}

@media (max-width:960px){
  .app{font-size:17px;}
  .hide-mob{display:none !important;}
  .grid-collapse{grid-template-columns:1fr !important;}
  .grid-collapse > *{order:0 !important;}
  .svc-sticky-img{position:relative !important;top:auto !important;}
  .foot-grid{grid-template-columns:1fr 1fr !important;}
  .tslide{grid-template-columns:1fr !important;text-align:center;justify-items:center;}
}
@media (min-width:961px){ .only-mob{display:none !important;} }

.cta-shine{position:relative;overflow:hidden;}
.cta-shine::before{content:'';position:absolute;top:0;left:-60%;width:35%;height:100%;background:linear-gradient(115deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-20deg);transition:left .65s var(--ease);pointer-events:none;}
.cta-shine:hover::before{left:120%;}

@media (prefers-reduced-motion:reduce){
  .ken{animation:none !important;}
  .reveal{opacity:1 !important;transform:none !important;}
  .clip{clip-path:none !important;}
  *{scroll-behavior:auto !important;}
  .mobmenu.open{animation:none !important;}
}
