/*
Theme Name: Kashka App
Theme URI: https://kashka.app
Author: Kashka App
Author URI: https://kashka.app
Description: Kashka App is a full barber-booking platform theme — map-based shop discovery, barber profiles, prepaid booking, reviews, a shop-owner dashboard, and an admin portal. The app runs entirely in the browser and talks directly to its own Supabase backend; WordPress is used purely as the hosting shell (no WordPress database tables are used by the app itself).
Version: 1.0.0
Requires at least: 5.0
Requires PHP: 7.0
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kashka-app
*/


:root{
  --bg:#FBF9F3;
  --bg-soft:#F4F0E6;
  --surface:#FFFFFF;
  --surface-2:#F4F0E6;
  --surface-3:#E9E2D2;
  --line:rgba(32,26,18,0.09);
  --line-strong:rgba(32,26,18,0.18);
  --ink:#201A12;
  --ink-dim:#5C5344;
  --ink-faint:#94897A;
  --green:#155E4B;
  --green-deep:#0E4438;
  --green-tint:#E7F1ED;
  --gold:#BE8F45;
  --gold-deep:#9A7233;
  --gold-tint:#F7EFDE;
  --good:#2F7D4F; --good-bg:#E4F3EA;
  --warn:#9C6B12; --warn-bg:#FBF0DC;
  --bad:#B33B33; --bad-bg:#FBEAE8;
  --radius:12px; --radius-lg:20px;
  --shadow-sm:0 1px 2px rgba(32,26,18,0.05), 0 2px 10px rgba(32,26,18,0.04);
  --shadow-md:0 12px 44px rgba(32,26,18,0.11);
  --ease:cubic-bezier(.22,.8,.28,1);
  font-family:'Manrope',system-ui,sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);}
body{min-height:100vh;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.6;}
h1,h2,h3,.display{font-family:'Fraunces',serif;font-weight:500;letter-spacing:-0.01em;color:var(--ink);}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;}
::selection{background:var(--green);color:#fff;}
img{max-width:100%;display:block;}

/* ====== Motion ====== */
.reveal{opacity:1; transform:none;}
*, *::before, *::after{ animation:none !important; transition:none !important; }

/* ====== Layout ====== */
#app{min-height:100vh;position:relative;padding-bottom:70px;}
.content{max-width:780px;margin:0 auto;padding:28px 20px 48px;}

/* ====== Nav ====== */
.topbar{position:sticky;top:0;z-index:40;background:rgba(251,249,243,0.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);}
.topbar-inner{max-width:1120px;margin:0 auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;height:68px;}
.brand{display:flex;align-items:center;gap:11px;cursor:pointer;}
.brand-mark{width:38px;height:38px;border-radius:12px 12px 12px 3px;background:var(--green);display:flex;align-items:center;justify-content:center;}
.brand-mark span{color:#fff;font-family:'Fraunces';font-size:14px;}
.brand-name{font-family:'Fraunces';font-size:20px;color:var(--ink);}
.top-links{display:flex;align-items:center;gap:2px;}
.top-link{font-size:13.5px;font-weight:700;color:var(--ink-dim);padding:9px 14px;border-radius:999px;border:none;background:transparent;transition:color .2s, background .2s;}
.top-link:hover{color:var(--ink);background:var(--bg-soft);}
.top-link.active{color:#fff;background:var(--green);}
.top-link.cta{background:var(--gold);color:#fff;margin-left:4px;}
.top-link.cta:hover{background:var(--gold-deep);color:#fff;}
.menu-btn{display:none;border:none;background:var(--green);color:#fff;border-radius:999px;padding:9px 16px;font-size:13px;font-weight:700;}
.mobile-menu{display:none;}
@media (max-width:800px){
  .top-links{display:none;}
  .menu-btn{display:inline-flex;}
  .mobile-menu.open{display:block;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow-md);}
  .mobile-menu a,.mobile-menu button{display:block;width:100%;text-align:left;padding:15px 20px;font-size:14.5px;font-weight:700;color:var(--ink-dim);border:none;background:none;border-top:1px solid var(--line);}
  .mobile-menu a.active{color:var(--green);}
}

/* ====== Shared ====== */
.muted{color:var(--ink-dim);}
.faint{color:var(--ink-faint);}
.section-title{font-size:11.5px;text-transform:uppercase;letter-spacing:0.2em;color:var(--gold-deep);margin:28px 0 12px;font-weight:800;}
.section-title:first-child{margin-top:0;}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm);}
.eyebrow{font-size:11.5px;text-transform:uppercase;letter-spacing:0.22em;color:var(--gold);font-weight:800;}

/* Arched image — a nod to Emirati arches */
.arch-img{border-radius:180px 180px 22px 22px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-md);}
.arch-img img{width:100%;height:100%;object-fit:cover;}
.img-rounded{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-sm);}
.img-rounded img{width:100%;object-fit:cover;}

/* ====== Cards & lists ====== */
.shop-card{display:flex;gap:14px;margin-bottom:12px;cursor:pointer;transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .2s;}
.shop-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--line-strong);}
.shop-photo{width:62px;height:62px;border-radius:16px 16px 16px 4px;background:var(--green);display:flex;align-items:center;justify-content:center;font-family:'Fraunces';font-size:19px;color:#fff;flex-shrink:0;}
.shop-info{flex:1;min-width:0;}
.shop-name{font-family:'Fraunces';font-size:18px;margin:0 0 2px;}
.row-between{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.rating-badge{display:inline-flex;align-items:center;gap:4px;background:var(--gold-tint);border:1px solid rgba(190,143,69,0.4);border-radius:999px;padding:3.5px 10px;font-size:12px;font-weight:800;color:var(--gold-deep);white-space:nowrap;}
.rating-badge::before{content:'★';}
.dist{font-size:12.5px;color:var(--ink-faint);white-space:nowrap;font-weight:600;}
.tag{display:inline-block;background:var(--bg-soft);border:1px solid var(--line);color:var(--ink-dim);font-size:11.5px;padding:3px 10px;border-radius:999px;margin:2px 4px 0 0;font-weight:700;}

/* ====== Buttons ====== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;border:1.5px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:14px;font-weight:700;padding:11px 20px;transition:transform .2s var(--ease), background .2s, border-color .2s, color .2s;}
.btn:hover{border-color:var(--ink);transform:translateY(-1px);}
.btn:active{transform:scale(0.97);}
.btn-primary{background:var(--green);border-color:var(--green);color:#fff;}
.btn-primary:hover{background:var(--green-deep);border-color:var(--green-deep);}
.btn-gold{background:var(--gold);border-color:var(--gold);color:#fff;}
.btn-gold:hover{background:var(--gold-deep);border-color:var(--gold-deep);}
.btn-block{width:100%;}
.btn-ghost{background:transparent;border-color:var(--line-strong);color:var(--ink-dim);}
.btn-ghost:hover{color:var(--ink);}
.btn-sm{padding:8px 14px;font-size:13px;}
.btn-lg{padding:15px 30px;font-size:15px;}
.btn-danger{background:transparent;border-color:var(--bad);color:var(--bad);}
.btn[disabled]{opacity:.35;pointer-events:none;}
.back-row{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;cursor:pointer;color:var(--ink-dim);font-size:13.5px;font-weight:700;transition:color .2s;}
.back-row:hover{color:var(--ink);}

/* ====== Panels ====== */
.hero{border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);border:1px solid var(--line);padding:26px;margin-bottom:20px;box-shadow:var(--shadow-sm);}
.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.hero h1{font-size:28px;margin:2px 0 6px;}
.stat-row{display:flex;gap:26px;margin-top:18px;flex-wrap:wrap;}
.stat b{display:block;font-family:'Fraunces';font-size:22px;color:var(--green);}
.stat span{font-size:10.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:0.14em;font-weight:800;}
.info-list{display:flex;flex-direction:column;gap:11px;margin:18px 0 0;font-size:13.5px;color:var(--ink-dim);font-weight:600;}
.info-list div{display:flex;gap:10px;align-items:flex-start;}
.info-icon{color:var(--gold-deep);flex-shrink:0;margin-top:2px;}

/* ====== Map ====== */
.map-box{height:300px;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-sm);margin-bottom:16px;position:relative;z-index:1;background:var(--surface-2);}
.map-box.mini{height:200px;margin-top:16px;margin-bottom:0;}
.leaflet-container{font-family:'Manrope',sans-serif !important;}
.map-pop{font-weight:700;font-size:13px;}
.map-pop button{margin-top:6px;}

/* ====== People ====== */
.barber-card{display:flex;gap:14px;align-items:center;padding:12px 8px;margin:0 -8px;border-radius:14px;cursor:pointer;transition:background .2s;}
.barber-card:hover{background:var(--bg-soft);}
.avatar{width:52px;height:52px;border-radius:50%;background:var(--green);display:flex;align-items:center;justify-content:center;font-family:'Fraunces';font-size:17px;color:#fff;flex-shrink:0;}
.avatar.lg{width:84px;height:84px;font-size:28px;box-shadow:0 0 0 3px var(--bg), 0 0 0 5.5px var(--gold);}

/* ====== Services & reviews ====== */
.service-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);}
.service-row:last-child{border-bottom:none;}
.service-name{font-weight:700;font-size:14.5px;}
.service-meta{font-size:12px;color:var(--ink-faint);margin-top:2px;font-weight:600;}
.price{font-family:'Fraunces';color:var(--green);font-size:17px;}
.review{padding:14px 0;border-bottom:1px solid var(--line);}
.review:last-child{border-bottom:none;}
.stars{color:var(--gold);letter-spacing:2px;font-size:13px;}
.empty{text-align:center;padding:48px 20px;color:var(--ink-faint);}
.empty i{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:0.18em;margin-bottom:8px;color:var(--gold-deep);font-style:normal;font-weight:800;}

/* ====== Mobile bottom nav ====== */
.navbar{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);background:rgba(21,94,75,0.95);backdrop-filter:blur(12px);border-radius:999px;display:none;z-index:30;box-shadow:var(--shadow-md);padding:6px;gap:2px;}
@media (max-width:800px){ .navbar{display:flex;} }
.navbtn{background:none;border:none;color:rgba(255,255,255,0.6);font-size:12px;font-weight:800;padding:10px 18px;border-radius:999px;display:flex;align-items:center;gap:6px;transition:all .2s;}
.navbtn.active{color:var(--green);background:#fff;}
.navdot{display:none;}

/* ====== Modals ====== */
.modal-wrap{position:fixed;inset:0;z-index:1200;display:flex;align-items:flex-end;justify-content:center;background:rgba(32,26,18,0.5);backdrop-filter:blur(3px);animation:pageIn .22s ease both;}
@media (min-width:801px){ .modal-wrap{align-items:center;padding:24px;} }
.modal{width:100%;max-width:560px;max-height:88vh;overflow-y:auto;background:var(--surface);border-radius:24px 24px 0 0;padding:22px 22px 30px;box-shadow:var(--shadow-md);animation:pageIn .3s var(--ease) both;}
@media (min-width:801px){ .modal{border-radius:22px;} }
.modal-handle{width:36px;height:4px;border-radius:3px;background:var(--line-strong);margin:0 auto 14px;}
@media (min-width:801px){ .modal-handle{display:none;} }
.modal-title{font-family:'Fraunces';font-size:21px;margin:0 0 4px;}
.steps{display:flex;gap:6px;margin:14px 0 22px;}
.step-dot{flex:1;height:4px;border-radius:2px;background:var(--surface-3);transition:background .3s;}
.step-dot.done{background:var(--gold);}

/* ====== Forms ====== */
.field-label{font-size:11px;text-transform:uppercase;letter-spacing:0.14em;color:var(--ink-faint);margin:18px 0 7px;font-weight:800;}
.field-label:first-child{margin-top:0;}
.input{width:100%;background:var(--surface);border:1.5px solid var(--line-strong);border-radius:12px;color:var(--ink);padding:12px 14px;font-size:14.5px;transition:border-color .2s, box-shadow .2s;}
.input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 4px rgba(21,94,75,0.1);}
.input::placeholder{color:var(--ink-faint);}
.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px;}
.pick{background:var(--surface);border:1.5px solid var(--line-strong);border-radius:11px;padding:10px 4px;text-align:center;font-size:13px;color:var(--ink-dim);font-weight:700;transition:all .15s;cursor:pointer;}
.pick:hover{border-color:var(--green);color:var(--green);}
.pick.sel{background:var(--green);border-color:var(--green);color:#fff;}
.pick.disabled{opacity:0.3;pointer-events:none;}
.service-pick{display:flex;justify-content:space-between;align-items:center;padding:14px;border:1.5px solid var(--line-strong);border-radius:14px;margin-bottom:9px;background:var(--surface);cursor:pointer;transition:all .15s;}
.service-pick:hover{border-color:var(--green);}
.service-pick.sel{border-color:var(--green);background:var(--green-tint);}
.sum-row{display:flex;justify-content:space-between;font-size:14px;padding:8px 0;color:var(--ink-dim);font-weight:600;}
.sum-row b{color:var(--ink);font-weight:800;}
.divider{border-top:1px solid var(--line);margin:12px 0;}

/* ====== Status ====== */
.badge-status{display:inline-block;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:0.08em;padding:5px 11px;border-radius:999px;}
.badge-Pending{background:var(--warn-bg);color:var(--warn);}
.badge-Confirmed{background:var(--good-bg);color:var(--good);}
.badge-Completed{background:var(--surface-3);color:var(--ink-dim);}
.badge-Cancelled{background:var(--bad-bg);color:var(--bad);}
.toast{position:fixed;bottom:92px;left:50%;transform:translateX(-50%);background:var(--green);color:#fff;padding:12px 22px;border-radius:999px;font-size:13.5px;font-weight:700;z-index:1300;box-shadow:var(--shadow-md);animation:pageIn .3s var(--ease) both;}
.booking-card{margin-bottom:12px;}
.star-picker{display:flex;gap:8px;font-size:34px;color:var(--surface-3);margin:8px 0 4px;}
.star-picker span{cursor:pointer;transition:transform .15s, color .15s;}
.star-picker span:hover{transform:scale(1.12);}
.star-picker span.on{color:var(--gold);}
.owner-tabs{display:flex;gap:6px;margin-bottom:20px;overflow-x:auto;padding-bottom:2px;}
.otab{white-space:nowrap;padding:9px 17px;border-radius:999px;font-size:13px;font-weight:700;border:1.5px solid var(--line);background:var(--surface);color:var(--ink-dim);transition:all .15s;}
.otab:hover{border-color:var(--green);color:var(--green);}
.otab.active{background:var(--green);color:#fff;border-color:var(--green);}
.list-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);gap:10px;}
.list-row:last-child{border-bottom:none;}
.note{font-size:12px;color:var(--ink-faint);margin-top:10px;line-height:1.6;font-weight:600;}
.google-box{background:var(--bg-soft);border:1.5px dashed var(--line-strong);border-radius:14px;padding:14px;margin-top:14px;}
.g-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:3px;}
.auth-tabs{display:flex;gap:6px;margin-bottom:22px;background:var(--bg-soft);border-radius:999px;padding:5px;border:1px solid var(--line);}
.auth-tab{flex:1;text-align:center;border:none;background:transparent;color:var(--ink-dim);font-size:13.5px;font-weight:800;padding:10px;border-radius:999px;transition:all .2s;}
.auth-tab.active{background:var(--green);color:#fff;}
.role-pick{display:flex;gap:10px;margin-top:6px;}
.role-opt{flex:1;text-align:center;border:1.5px solid var(--line-strong);background:var(--surface);border-radius:14px;padding:14px 8px;font-size:13px;font-weight:800;color:var(--ink-dim);cursor:pointer;transition:all .15s;}
.role-opt:hover{border-color:var(--green);}
.role-opt.sel{border-color:var(--green);background:var(--green-tint);color:var(--green);}
.errmsg{background:var(--bad-bg);color:var(--bad);border-radius:10px;padding:11px 14px;font-size:13px;margin-top:12px;font-weight:600;}
.okmsg{background:var(--good-bg);color:var(--good);border-radius:10px;padding:11px 14px;font-size:13px;margin-top:12px;font-weight:600;}
::-webkit-scrollbar{width:0;height:0;}

/* ====== Landing ====== */
.home-hero{background:linear-gradient(175deg, #10241E 0%, var(--green-deep) 70%, #14523F 100%);color:#fff;overflow:hidden;position:relative;}
.home-hero-inner{max-width:1120px;margin:0 auto;padding:64px 20px 64px;position:relative;z-index:1;display:grid;grid-template-columns:1.15fr 0.85fr;gap:48px;align-items:center;}
@media (max-width:800px){ .home-hero-inner{grid-template-columns:1fr;padding:44px 20px 48px;} }
.home-hero .eyebrow{color:#D9B36A;display:flex;align-items:center;gap:10px;margin:0 0 20px;}
.home-hero .eyebrow::before{content:'';width:34px;height:2px;background:#D9B36A;}
.home-hero h1{font-size:clamp(34px,5.6vw,60px);line-height:1.05;margin:0 0 20px;color:#fff;letter-spacing:-0.02em;}
.home-hero h1 em{font-style:italic;color:#D9B36A;}
.home-hero p{font-size:16px;color:rgba(255,255,255,0.72);max-width:480px;margin:0 0 30px;line-height:1.7;}
.home-cta-row{display:flex;gap:12px;flex-wrap:wrap;}
.home-hero .btn-ghost{border-color:rgba(255,255,255,0.32);color:rgba(255,255,255,0.92);}
.home-hero .btn-ghost:hover{border-color:#fff;color:#fff;}
.hero-stats{display:flex;gap:40px;margin-top:44px;flex-wrap:wrap;}
.hero-stat b{display:block;font-family:'Fraunces';font-size:34px;color:#fff;line-height:1;}
.hero-stat span{font-size:10.5px;color:rgba(255,255,255,0.55);text-transform:uppercase;letter-spacing:0.16em;font-weight:800;display:block;margin-top:7px;}
.hero-media{position:relative;}
.hero-media .arch-img{aspect-ratio:4/5;max-height:440px;border:none;box-shadow:0 24px 60px rgba(0,0,0,0.35);}
@media (max-width:800px){ .hero-media{max-width:340px;margin:8px auto 0;} }

.section-block{max-width:1120px;margin:0 auto;padding:68px 20px;}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:38px;flex-wrap:wrap;}
.section-head h2{font-size:clamp(27px,3.8vw,40px);margin:0;letter-spacing:-0.015em;max-width:520px;line-height:1.12;}
.section-head .lead{color:var(--ink-dim);max-width:360px;margin:0;font-size:15px;}
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;}
.feature-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.feature-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.feature-card .fi{width:46px;height:46px;border-radius:14px 14px 14px 4px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:18px;font-size:18px;}
.feature-card h3{font-size:18.5px;margin:0 0 8px;}
.feature-card p{font-size:14px;color:var(--ink-dim);line-height:1.65;margin:0;}
.split{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;}
@media (max-width:800px){ .split{grid-template-columns:1fr;gap:26px;} }
.split h2{font-size:clamp(26px,3.6vw,38px);margin:0 0 14px;line-height:1.12;letter-spacing:-0.015em;}
.split p{color:var(--ink-dim);font-size:15px;line-height:1.75;margin:0 0 14px;}
.split .img-rounded{aspect-ratio:4/3;}
.steps-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;}
.step-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.step-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.step-num{font-family:'Fraunces';font-size:46px;color:var(--surface-3);line-height:1;margin:0 0 14px;font-style:italic;}
.step-item h3{font-size:17.5px;margin:0 0 8px;}
.step-item p{font-size:13.5px;color:var(--ink-dim);line-height:1.65;margin:0;}
.band{background:var(--green-deep);}
.band-inner{max-width:1120px;margin:0 auto;padding:52px 20px;}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:24px;}
.stat-block{text-align:center;}
.stat-block b{display:block;font-family:'Fraunces';font-size:42px;color:#fff;line-height:1;}
.stat-block span{font-size:10.5px;color:rgba(255,255,255,0.55);text-transform:uppercase;letter-spacing:0.16em;font-weight:800;display:block;margin-top:8px;}
.value-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;}
.value-item{display:flex;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.value-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
.value-num{font-family:'Fraunces';font-style:italic;font-size:22px;color:var(--gold);flex-shrink:0;line-height:1.3;}
.value-item h3{font-size:16.5px;margin:0 0 6px;}
.value-item p{font-size:13.5px;color:var(--ink-dim);margin:0;line-height:1.65;}
.cta-panel{background:linear-gradient(160deg, var(--green-deep), var(--green));border-radius:26px;padding:52px 28px;text-align:center;color:#fff;}
.cta-panel h2{color:#fff;margin:0 0 12px;font-size:clamp(25px,3.6vw,36px);letter-spacing:-0.015em;}
.cta-panel p{color:rgba(255,255,255,0.7);max-width:460px;margin:0 auto 26px;font-size:15px;}
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;align-items:start;}
@media (max-width:640px){ .contact-grid{grid-template-columns:1fr;} }
.contact-info-item{display:flex;gap:10px;margin-bottom:18px;}
.contact-info-item div span{display:block;font-size:10.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:0.14em;margin-bottom:3px;font-weight:800;}
.contact-info-item div b{font-size:14px;font-weight:700;}


/* ====== Nav search ====== */
.searchbar{flex:1;max-width:440px;display:flex;align-items:center;gap:9px;background:#fff;border:1.5px solid var(--line-strong);border-radius:999px;padding:9px 16px;transition:border-color .2s, box-shadow .2s;}
.searchbar:focus-within{border-color:var(--green);box-shadow:0 0 0 4px rgba(21,94,75,0.08);}
.searchbar svg{flex-shrink:0;color:var(--ink-faint);}
.searchbar input{border:none;background:none;outline:none;flex:1;font-size:13.5px;color:var(--ink);font-family:inherit;min-width:0;}
.searchbar input::placeholder{color:var(--ink-faint);}
@media (max-width:980px){ .searchbar{display:none;} }

/* ====== Discover split layout ====== */
.disc-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,480px);align-items:start;}
@media (max-width:980px){ .disc-shell{grid-template-columns:1fr;} }
.disc-map-col{position:sticky;top:68px;height:calc(100vh - 68px);}
@media (max-width:980px){ .disc-map-col{position:relative;top:0;height:320px;} }
.disc-map-col .map-live{height:100%;width:100%;background:var(--surface-2);}
.disc-panel{padding:28px 26px 70px;border-left:1px solid var(--line);min-height:calc(100vh - 68px);background:var(--bg);}
@media (max-width:980px){ .disc-panel{border-left:none;} }
.disc-panel h1{font-size:30px;margin:0 0 18px;}
.filter-input{display:flex;align-items:center;gap:9px;background:#fff;border:1.5px solid var(--line-strong);border-radius:12px;padding:11px 14px;margin-bottom:10px;transition:border-color .2s;}
.filter-input:focus-within{border-color:var(--green);}
.filter-input svg{flex-shrink:0;color:var(--ink-faint);}
.filter-input input,.filter-input select{border:none;background:none;outline:none;flex:1;font-size:14px;color:var(--ink);font-family:inherit;appearance:none;cursor:pointer;}
.filter-input input{cursor:text;}
.res-count{font-size:12.5px;color:var(--ink-faint);font-weight:700;margin:16px 0 12px;text-transform:uppercase;letter-spacing:0.1em;}
.res-card{display:flex;gap:14px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;margin-bottom:12px;cursor:pointer;transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .2s;align-items:center;}
.res-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--line-strong);}
.res-thumb{width:86px;height:86px;border-radius:13px;background:var(--green-deep);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(255,255,255,0.8);}
.res-info{flex:1;min-width:0;}
.res-name{font-family:'Fraunces';font-size:17px;margin:0 0 2px;color:var(--ink);}
.res-area{font-size:12.5px;color:var(--ink-dim);margin:0 0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.res-open{font-size:12px;color:var(--green);font-weight:800;}
.res-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;align-self:stretch;padding:4px 2px;}
.res-view{font-size:13px;font-weight:800;color:var(--ink);}
.res-card:hover .res-view{color:var(--green);}

/* ====== Scissor map pins ====== */
.scis-pin{width:36px;height:36px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 3px 10px rgba(0,0,0,0.22);border:1px solid rgba(0,0,0,0.07);transition:transform .15s;}
.scis-pin:hover{transform:scale(1.12);}
.you-pin{width:16px;height:16px;background:var(--green);border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,0.3);}
.leaflet-div-icon{background:none !important;border:none !important;}

/* ====== Footer ====== */
.site-footer{background:#10241E;color:rgba(255,255,255,0.7);margin-top:56px;}
.footer-inner{max-width:1120px;margin:0 auto;padding:50px 20px 32px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px;}
@media (max-width:640px){ .footer-grid{grid-template-columns:1fr;} }
.footer-brand .brand-name{color:#fff;}
.footer-brand p{font-size:13px;line-height:1.7;color:rgba(255,255,255,0.5);margin:14px 0 0;max-width:290px;}
.footer-col h4{font-size:11px;text-transform:uppercase;letter-spacing:0.18em;color:#D9B36A;margin:4px 0 16px;font-weight:800;font-family:'Manrope';}
.footer-col a{display:block;font-size:13.5px;color:rgba(255,255,255,0.65);padding:6px 0;font-weight:600;cursor:pointer;transition:color .2s;}
.footer-col a:hover{color:#fff;}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.1);margin-top:32px;padding-top:20px;font-size:12px;color:rgba(255,255,255,0.4);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-weight:600;}

