/* PunjabConnect — mobile-first stylesheet */
:root{
  --green-950:#06231a; --green-900:#0a3125; --green-800:#0f4231; --green-700:#165a42; --green-600:#1f7354;
  --gold-500:#d9a441; --gold-400:#e6bb5f; --gold-300:#f0d08e; --gold-100:#fbf1da;
  --saffron:#e07a2e; --cream:#fbf7ef; --paper:#ffffff; --ink:#15211c; --muted:#5d6b64; --line:#e7e0d0;
  --radius:20px; --radius-sm:12px; --shadow:0 1px 2px rgba(10,49,37,.06),0 10px 30px -12px rgba(10,49,37,.22);
  --shadow-lg:0 30px 60px -25px rgba(6,35,26,.45);
  --font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --display: "Fraunces", Georgia, "Times New Roman", serif;
  --pa: "Noto Sans Gurmukhi", "Mukta Mahee", sans-serif;
  --wrap: 1180px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--cream);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--gold-500);outline-offset:2px;border-radius:6px}
.pa,[lang="pa"]{font-family:var(--pa);font-weight:500;letter-spacing:0}
.wrap{width:min(var(--wrap),100% - 2.5rem);margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--gold-500);color:var(--green-950);padding:.6rem 1rem;z-index:99}
.skip:focus{left:1rem}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(251,247,239,.82);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid rgba(15,66,49,.08)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:1rem}
.brand{display:flex;align-items:center;gap:.55rem;text-decoration:none}
.brand img{height:34px;width:auto}
.nav{display:none;gap:.25rem;align-items:center}
.nav a{text-decoration:none;font-weight:500;font-size:.95rem;padding:.5rem .8rem;border-radius:999px;color:var(--green-900)}
.nav a:hover,.nav a[aria-current="page"]{background:rgba(15,66,49,.07)}
.nav .btn{margin-left:.4rem}
.menu-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--paper);cursor:pointer}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{display:block;width:18px;height:2px;background:var(--green-900);border-radius:2px;position:relative;content:"";transition:.25s}
.menu-btn span::before{position:absolute;top:-6px}.menu-btn span::after{position:absolute;top:6px}
.nav-open .menu-btn span{background:transparent}.nav-open .menu-btn span::before{top:0;transform:rotate(45deg)}.nav-open .menu-btn span::after{top:0;transform:rotate(-45deg)}
.mobile-nav{display:none;border-top:1px solid var(--line);background:var(--cream);padding:.75rem 1.25rem 1.25rem}
.nav-open .mobile-nav{display:grid;gap:.25rem}
.mobile-nav a{text-decoration:none;padding:.85rem .5rem;border-bottom:1px solid var(--line);font-weight:500;color:var(--green-900)}
.mobile-nav .btn{margin-top:.75rem;justify-content:center}
@media(min-width:900px){.nav{display:flex}.menu-btn,.mobile-nav{display:none!important}}

/* ---------- buttons ---------- */
.btn{--bg:var(--green-800);--fg:#fff;display:inline-flex;align-items:center;gap:.55rem;background:var(--bg);color:var(--fg);text-decoration:none;font-weight:600;font-size:.98rem;padding:.8rem 1.25rem;border-radius:999px;border:0;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,background .2s;line-height:1.2;white-space:nowrap}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px -10px rgba(6,35,26,.5)}
.btn svg{width:18px;height:18px;flex:none}
.btn-gold{--bg:linear-gradient(135deg,var(--gold-400),var(--gold-500));--fg:var(--green-950);background:var(--bg)}
.btn-wa{--bg:#1fa855}
.btn-ghost{--bg:transparent;--fg:var(--green-900);box-shadow:inset 0 0 0 1.5px rgba(15,66,49,.25)}
.btn-ghost-light{--bg:rgba(255,255,255,.08);--fg:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.3)}
.btn-sm{padding:.55rem .95rem;font-size:.88rem}
.btn-block{width:100%;justify-content:center}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;color:#fff;background:radial-gradient(1200px 500px at 80% -10%,rgba(217,164,65,.28),transparent 60%),radial-gradient(800px 400px at -10% 110%,rgba(224,122,46,.18),transparent 60%),linear-gradient(160deg,var(--green-900),var(--green-950) 70%)}
.hero::before{content:"";position:absolute;inset:0;background-image:url("/assets/img/phulkari.svg");background-size:84px;opacity:.09;mask-image:linear-gradient(180deg,#000,transparent 85%);-webkit-mask-image:linear-gradient(180deg,#000,transparent 85%)}
.hero .wrap{position:relative;padding:3.2rem 0 3.5rem}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-300)}
.eyebrow::before{content:"";width:22px;height:1.5px;background:currentColor}
.hero h1{font-family:var(--display);font-weight:600;font-size:clamp(2.3rem,7.5vw,4.4rem);line-height:1.04;letter-spacing:-.02em;margin:.9rem 0 .6rem;max-width:15ch}
.hero h1 em{font-style:italic;color:var(--gold-400);font-weight:500}
.hero .pa-tag{font-size:clamp(1.05rem,3.6vw,1.35rem);color:var(--gold-300);margin:.2rem 0 1rem}
.hero p.lead{font-size:1.08rem;color:rgba(255,255,255,.82);max-width:56ch;margin:0 0 1.6rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:.7rem}
.search-card{margin-top:2rem;background:rgba(255,255,255,.97);color:var(--ink);border-radius:22px;padding:.6rem;box-shadow:var(--shadow-lg);display:grid;gap:.5rem;max-width:860px}
.search-card label{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:.2rem .2rem .25rem}
.field{background:#f6f2e8;border-radius:14px;padding:.55rem .85rem .6rem}
.field select,.field input{width:100%;border:0;background:transparent;font:inherit;font-size:1rem;color:var(--ink);padding:.1rem 0;outline:none;appearance:none;-webkit-appearance:none}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23165a42' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .1rem center;padding-right:1.4rem}
.search-card .btn{justify-content:center;border-radius:14px;padding:1rem 1.4rem}
@media(min-width:760px){.search-card{grid-template-columns:1fr 1fr 1.2fr auto;align-items:stretch}.hero .wrap{padding:5rem 0 5.5rem}}
.hero-stats{display:flex;flex-wrap:wrap;gap:1.6rem 2.4rem;margin-top:2.2rem;color:rgba(255,255,255,.7);font-size:.9rem}
.hero-stats b{display:block;font-family:var(--display);font-size:1.6rem;color:#fff;font-weight:600}

/* ---------- sections ---------- */
section{padding:3.5rem 0}
@media(min-width:900px){section{padding:5rem 0}}
.sec-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.8rem}
.sec-head h2,.h2{font-family:var(--display);font-weight:600;font-size:clamp(1.75rem,4.6vw,2.7rem);line-height:1.1;letter-spacing:-.015em;margin:.35rem 0 0;color:var(--green-950)}
.sec-head p{margin:.4rem 0 0;color:var(--muted);max-width:60ch}
.kicker{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--green-600)}
.kicker .pa{letter-spacing:0;text-transform:none;font-size:.95rem;color:var(--saffron);margin-left:.35rem}
.alt{background:var(--paper);border-block:1px solid var(--line)}
.dark{background:linear-gradient(160deg,var(--green-900),var(--green-950));color:#fff}
.dark .sec-head h2,.dark .h2{color:#fff}.dark .sec-head p{color:rgba(255,255,255,.7)}.dark .kicker{color:var(--gold-300)}

/* ---------- category tiles ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}
@media(min-width:700px){.cat-grid{grid-template-columns:repeat(4,1fr);gap:1rem}}
.cat-tile{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.1rem;border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);text-decoration:none;transition:.2s;min-height:150px;overflow:hidden}
.cat-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:rgba(217,164,65,.6)}
.cat-tile .ico{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--gold-100);color:var(--green-800)}
.cat-tile .ico svg{width:24px;height:24px}
.cat-tile strong{font-size:1rem;line-height:1.25;color:var(--green-950);margin-top:auto}
.cat-tile .pa{font-size:.85rem;color:var(--muted)}
.cat-tile .count{position:absolute;top:1rem;right:1rem;font-size:.75rem;color:var(--muted);font-weight:600}

/* ---------- listing cards ---------- */
.card-grid{display:grid;gap:1rem}
@media(min-width:640px){.card-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.card-grid{grid-template-columns:repeat(3,1fr);gap:1.25rem}}
.lcard{display:flex;flex-direction:column;background:var(--paper);border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);text-decoration:none;transition:.22s;position:relative}
.lcard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.lcard .media{aspect-ratio:16/10;position:relative;overflow:hidden;background:var(--green-900)}
.lcard .media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.lcard:hover .media img{transform:scale(1.04)}
.lcard .body{padding:1.05rem 1.15rem 1.2rem;display:flex;flex-direction:column;gap:.4rem;flex:1}
.lcard h3{margin:0;font-size:1.12rem;line-height:1.3;color:var(--green-950)}
.lcard p{margin:0;color:var(--muted);font-size:.93rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lcard .meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:.6rem}
.chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.76rem;font-weight:600;padding:.28rem .6rem;border-radius:999px;background:#f2ede1;color:var(--green-800)}
.chip svg{width:13px;height:13px}
.badge-demo{position:absolute;top:.75rem;left:.75rem;z-index:2;background:var(--saffron);color:#fff;font-size:.72rem;font-weight:700;padding:.32rem .65rem;border-radius:999px;letter-spacing:.02em;box-shadow:0 6px 14px -6px rgba(0,0,0,.4)}
.badge-feat{position:absolute;top:.75rem;right:.75rem;z-index:2;background:rgba(6,35,26,.78);color:var(--gold-300);font-size:.72rem;font-weight:700;padding:.32rem .65rem;border-radius:999px;backdrop-filter:blur(6px)}
.lcard.is-demo{border-style:dashed;border-color:#e6c7a5}

/* generated art for listings without photos */
.art{position:absolute;inset:0;display:grid;place-items:center;color:var(--gold-300);background:radial-gradient(circle at 30% 20%,rgba(217,164,65,.35),transparent 55%),linear-gradient(135deg,var(--green-800),var(--green-950))}
.art::before{content:"";position:absolute;inset:0;background:url("/assets/img/phulkari.svg");background-size:64px;opacity:.13}
.art .mono{position:relative;font-family:var(--display);font-size:3rem;font-weight:600;letter-spacing:-.02em;color:#fff}
.art .mono small{display:block;text-align:center;font-family:var(--font);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-300);margin-top:.3rem}
.art.t-sweets{background:radial-gradient(circle at 70% 20%,rgba(240,208,142,.4),transparent 55%),linear-gradient(135deg,#7a2e12,#3d1408)}
.art.t-gym{background:radial-gradient(circle at 70% 20%,rgba(217,164,65,.3),transparent 55%),linear-gradient(135deg,#1c2530,#0b1016)}
.art.t-salon{background:radial-gradient(circle at 70% 20%,rgba(240,208,142,.35),transparent 55%),linear-gradient(135deg,#5a1f3d,#2a0c1c)}
.art.t-coaching{background:radial-gradient(circle at 70% 20%,rgba(240,208,142,.35),transparent 55%),linear-gradient(135deg,#1b3a6b,#0b1a33)}
.art.t-shop{background:radial-gradient(circle at 70% 20%,rgba(240,208,142,.45),transparent 55%),linear-gradient(135deg,#8a5a1c,#3f2608)}

/* ---------- how it works ---------- */
.steps{display:grid;gap:1rem;counter-reset:s}
@media(min-width:800px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:1.4rem;counter-increment:s;position:relative}
.step::before{content:counter(s,decimal-leading-zero);font-family:var(--display);font-size:2.4rem;color:var(--gold-400);font-weight:500;line-height:1}
.step h3{margin:.8rem 0 .3rem;font-size:1.1rem}
.step p{margin:0;color:rgba(255,255,255,.72);font-size:.95rem}

/* ---------- pricing ---------- */
.plans{display:grid;gap:1rem}
@media(min-width:720px){.plans{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.plans{grid-template-columns:repeat(4,1fr)}}
.plan{background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:1.6rem 1.4rem;display:flex;flex-direction:column;gap:.8rem;position:relative}
.plan h3{margin:0;font-size:1.15rem;color:var(--green-950)}
.plan .pa{color:var(--saffron);font-size:.9rem;margin-top:-.5rem}
.plan .price{font-family:var(--display);font-size:2.6rem;font-weight:600;line-height:1;color:var(--green-950);letter-spacing:-.02em}
.plan .price small{font-family:var(--font);font-size:.9rem;color:var(--muted);font-weight:500;letter-spacing:0}
.plan .desc{color:var(--muted);font-size:.93rem;margin:0}
.plan ul{list-style:none;padding:0;margin:.2rem 0 .6rem;display:grid;gap:.55rem;font-size:.94rem}
.plan li{display:flex;gap:.55rem;align-items:flex-start}
.plan li svg{flex:none;width:18px;height:18px;margin-top:.2rem;color:var(--green-600)}
.plan .btn{margin-top:auto;justify-content:center}
.plan.popular{background:linear-gradient(170deg,var(--green-800),var(--green-950));color:#fff;border-color:transparent;box-shadow:var(--shadow-lg)}
.plan.popular h3,.plan.popular .price{color:#fff}.plan.popular .desc,.plan.popular .price small{color:rgba(255,255,255,.72)}.plan.popular li svg{color:var(--gold-400)}.plan.popular .pa{color:var(--gold-300)}
.plan .tag{position:absolute;top:-12px;left:1.4rem;background:var(--gold-500);color:var(--green-950);font-size:.72rem;font-weight:800;padding:.3rem .7rem;border-radius:999px;letter-spacing:.06em;text-transform:uppercase}
.setup-note{margin-top:1.4rem;padding:1.1rem 1.3rem;border-radius:16px;background:var(--gold-100);border:1px solid #efdcae;display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:center;justify-content:space-between}
.setup-note strong{color:var(--green-950)}
.compare{width:100%;border-collapse:collapse;background:var(--paper);border-radius:var(--radius);overflow:hidden;font-size:.93rem}
.compare th,.compare td{padding:.85rem .9rem;border-bottom:1px solid var(--line);text-align:center}
.compare th:first-child,.compare td:first-child{text-align:left}
.compare thead th{background:var(--green-900);color:#fff;font-weight:600}
.table-scroll{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line)}
.yes{color:var(--green-600);font-weight:700}.no{color:#b9b2a2}

/* ---------- CTA band ---------- */
.cta-band{border-radius:28px;padding:2.2rem 1.5rem;background:radial-gradient(600px 300px at 90% 0%,rgba(217,164,65,.35),transparent 60%),linear-gradient(140deg,var(--green-800),var(--green-950));color:#fff;display:grid;gap:1.2rem;position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;right:-40px;bottom:-40px;width:240px;height:240px;background:url("/assets/img/phulkari.svg");background-size:60px;opacity:.12;border-radius:50%}
.cta-band h2{font-family:var(--display);font-size:clamp(1.7rem,4.5vw,2.6rem);margin:0;line-height:1.1;font-weight:600}
.cta-band p{margin:0;color:rgba(255,255,255,.78)}
.cta-band .actions{display:flex;flex-wrap:wrap;gap:.7rem;position:relative;z-index:1}
@media(min-width:860px){.cta-band{grid-template-columns:1.4fr 1fr;align-items:center;padding:3rem}}

/* ---------- page hero (inner) ---------- */
.page-hero{background:linear-gradient(160deg,var(--green-900),var(--green-950));color:#fff;position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background:url("/assets/img/phulkari.svg");background-size:80px;opacity:.08}
.page-hero .wrap{position:relative;padding:2.8rem 0 2.6rem}
.page-hero h1{font-family:var(--display);font-weight:600;font-size:clamp(2rem,6vw,3.3rem);line-height:1.06;margin:.6rem 0 .4rem;letter-spacing:-.02em}
.page-hero .pa-tag{color:var(--gold-300);font-size:1.1rem;margin:0 0 .6rem}
.page-hero p{color:rgba(255,255,255,.78);max-width:60ch;margin:0}
.crumbs{font-size:.82rem;color:rgba(255,255,255,.6)}
.crumbs a{color:rgba(255,255,255,.8);text-decoration:none}.crumbs a:hover{text-decoration:underline}

/* ---------- directory ---------- */
.filters{position:sticky;top:64px;z-index:20;background:rgba(251,247,239,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:.8rem 0;border-bottom:1px solid var(--line)}
.filters .row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.filters .field{background:var(--paper);border:1px solid var(--line)}
.filters .q{grid-column:1/-1}
@media(min-width:800px){.filters .row{grid-template-columns:1.5fr 1fr 1fr auto}.filters .q{grid-column:auto}}
.chips-row{display:flex;gap:.4rem;overflow-x:auto;padding:.7rem 0 .1rem;scrollbar-width:none}
.chips-row::-webkit-scrollbar{display:none}
.fchip{flex:none;border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:.45rem .85rem;font:inherit;font-size:.85rem;font-weight:500;cursor:pointer;color:var(--green-900)}
.fchip[aria-pressed="true"]{background:var(--green-800);color:#fff;border-color:var(--green-800)}
.result-count{color:var(--muted);font-size:.9rem;margin:1.2rem 0 1rem}
.empty{display:none;text-align:center;padding:3rem 1rem;background:var(--paper);border:1px dashed var(--line);border-radius:var(--radius)}
.empty.show{display:block}
.reset-btn{border:0;background:none;color:var(--green-700);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;padding:.5rem}

/* ---------- listing (mini-site) ---------- */
.ms-hero{position:relative;color:#fff;background:var(--green-950);overflow:hidden}
.ms-hero .cover{position:absolute;inset:0}
.ms-hero .cover img{width:100%;height:100%;object-fit:cover;opacity:.45}
.ms-hero .cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,35,26,.35),rgba(6,35,26,.92))}
.ms-hero .art{opacity:1}
.ms-hero .wrap{position:relative;padding:2.4rem 0 2.2rem;min-height:340px;display:flex;flex-direction:column;justify-content:flex-end}
@media(min-width:900px){.ms-hero .wrap{min-height:440px;padding-bottom:3rem}}
.ms-hero .logo{width:68px;height:68px;border-radius:18px;background:linear-gradient(135deg,var(--gold-400),var(--gold-500));color:var(--green-950);display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:1.6rem;box-shadow:var(--shadow-lg);margin-bottom:1rem}
.ms-hero h1{font-family:var(--display);font-weight:600;font-size:clamp(2rem,6.5vw,3.6rem);line-height:1.04;margin:.2rem 0 .3rem;letter-spacing:-.02em}
.ms-hero .brands{color:var(--gold-300);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem}
.ms-hero p.tl{color:rgba(255,255,255,.85);max-width:62ch;margin:.3rem 0 1.1rem;font-size:1.04rem}
.ms-hero .meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1.2rem}
.ms-hero .chip{background:rgba(255,255,255,.12);color:#fff;backdrop-filter:blur(6px)}
.ms-actions{display:flex;flex-wrap:wrap;gap:.6rem}
.demo-banner{background:repeating-linear-gradient(-45deg,#fff1e2,#fff1e2 12px,#ffe8d0 12px,#ffe8d0 24px);border-bottom:1px solid #f1cfa8;color:#7a3a0c;font-weight:600;font-size:.92rem}
.demo-banner .wrap{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;justify-content:space-between;padding:.8rem 0}
.demo-banner a{color:#7a3a0c}
.ms-grid{display:grid;gap:1.5rem}
@media(min-width:960px){.ms-grid{grid-template-columns:1fr 360px;gap:2.2rem;align-items:start}}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem}
@media(min-width:700px){.panel{padding:1.8rem}}
.panel h2{font-family:var(--display);font-weight:600;font-size:1.55rem;margin:0 0 .8rem;color:var(--green-950);letter-spacing:-.01em}
.panel h2 .pa{font-family:var(--pa);font-size:.95rem;color:var(--saffron);font-weight:500;margin-left:.4rem}
.panel p{margin:0 0 .8rem;color:#33413a}
.stack{display:grid;gap:1.25rem}
.hl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin-top:1rem}
@media(min-width:700px){.hl-grid{grid-template-columns:repeat(4,1fr)}}
.hl{background:var(--gold-100);border-radius:16px;padding:1rem}
.hl b{display:block;font-family:var(--display);font-size:1.7rem;color:var(--green-900);line-height:1.1}
.hl span{font-size:.82rem;color:#5b5440}
.svc-list{display:grid;gap:.7rem}
@media(min-width:700px){.svc-list{grid-template-columns:1fr 1fr}}
.svc{border:1px solid var(--line);border-radius:16px;padding:1rem 1.05rem;display:flex;flex-direction:column;gap:.2rem;background:#fffdf8}
.svc .top{display:flex;justify-content:space-between;gap:.6rem;align-items:baseline}
.svc strong{color:var(--green-950)}
.svc .pr{font-weight:700;color:var(--green-700);font-size:.88rem;white-space:nowrap}
.svc .br{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--saffron);font-weight:700}
.svc p{margin:0;font-size:.9rem;color:var(--muted)}
.note{font-size:.9rem;color:var(--muted);background:#f6f2e8;border-radius:12px;padding:.8rem 1rem;margin-top:1rem}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}
@media(min-width:700px){.gallery{grid-template-columns:repeat(4,1fr)}}
.gallery button{padding:0;border:0;border-radius:14px;overflow:hidden;aspect-ratio:1;cursor:zoom-in;background:#0b1712;position:relative}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gallery img.contain{object-fit:contain;padding:8%}
.gallery button:hover img{transform:scale(1.05)}
.gallery .ph{position:relative;aspect-ratio:1;border-radius:14px;overflow:hidden}
.gallery .ph .art .mono{font-size:1.1rem;font-family:var(--font);font-weight:600;text-align:center;padding:0 .6rem}
.lightbox{position:fixed;inset:0;background:rgba(3,15,11,.92);display:none;align-items:center;justify-content:center;z-index:100;padding:1rem}
.lightbox.open{display:flex}
.lightbox img{max-height:86vh;max-width:min(1100px,100%);border-radius:12px}
.lightbox button{position:absolute;top:1rem;right:1rem;width:44px;height:44px;border-radius:50%;border:0;background:#fff;font-size:1.4rem;cursor:pointer}
.hours{list-style:none;padding:0;margin:0;display:grid;gap:.1rem}
.hours li{display:flex;justify-content:space-between;padding:.6rem 0;border-bottom:1px dashed var(--line);font-size:.95rem}
.map{border-radius:16px;overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3;background:#e9e4d6}
.map iframe{display:block;width:100%;height:100%;border:0}
.contact-list{list-style:none;padding:0;margin:0;display:grid;gap:.6rem;font-size:.95rem}
.contact-list li{display:flex;gap:.6rem;align-items:flex-start;word-break:break-word}
.contact-list svg{width:18px;height:18px;flex:none;margin-top:.2rem;color:var(--green-700)}
.contact-list a{color:var(--green-800);font-weight:500}
.side{display:grid;gap:1.25rem}
@media(min-width:960px){.side{position:sticky;top:84px}}
.side .btn{justify-content:center}
.side-actions{display:grid;gap:.6rem}
.bottom-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-top:1px solid var(--line);box-shadow:0 -10px 30px -15px rgba(0,0,0,.25)}
.bottom-bar .btn{justify-content:center;padding:.75rem .5rem;font-size:.9rem;border-radius:14px}
body.has-bar{padding-bottom:78px}
@media(min-width:960px){.bottom-bar{display:none}body.has-bar{padding-bottom:0}}
.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%) translateY(20px);background:var(--green-950);color:#fff;padding:.7rem 1.1rem;border-radius:999px;font-size:.9rem;opacity:0;pointer-events:none;transition:.25s;z-index:120}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- forms ---------- */
.form{display:grid;gap:.9rem}
.form .two{display:grid;gap:.9rem}
@media(min-width:640px){.form .two{grid-template-columns:1fr 1fr}}
.form label{display:grid;gap:.35rem;font-weight:600;font-size:.9rem;color:var(--green-950)}
.form input,.form select,.form textarea{font:inherit;font-weight:400;font-size:1rem;padding:.85rem 1rem;border:1.5px solid var(--line);border-radius:14px;background:#fffdf8;color:var(--ink);width:100%}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--gold-500);box-shadow:0 0 0 4px rgba(217,164,65,.18)}
.form .hint{font-weight:400;color:var(--muted);font-size:.82rem}
.plan-pick{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
@media(min-width:640px){.plan-pick{grid-template-columns:repeat(4,1fr)}}
.plan-pick label{position:relative;cursor:pointer}
.plan-pick input{position:absolute;opacity:0}
.plan-pick span{display:block;border:1.5px solid var(--line);border-radius:14px;padding:.75rem;text-align:center;font-weight:600;background:#fffdf8;font-size:.9rem}
.plan-pick span small{display:block;font-weight:500;color:var(--muted);font-size:.78rem}
.plan-pick input:checked+span{border-color:var(--green-700);background:#eef6f1;box-shadow:inset 0 0 0 1px var(--green-700)}
.plan-pick input:focus-visible+span{outline:3px solid var(--gold-500)}

/* ---------- misc ---------- */
.two-col{display:grid;gap:1.5rem}
@media(min-width:900px){.two-col{grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}}
.prose p{color:#33413a}
.prose h2{font-family:var(--display);color:var(--green-950);font-weight:600;font-size:1.6rem;margin:1.6rem 0 .5rem}
.faq details{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:1rem 1.2rem;margin-bottom:.6rem}
.faq summary{cursor:pointer;font-weight:600;color:var(--green-950);list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::after{content:"+";font-size:1.3rem;line-height:1;color:var(--green-700)}
.faq details[open] summary::after{content:"–"}
.faq p{margin:.6rem 0 0;color:var(--muted)}
.towns-strip{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.town-pill{display:inline-flex;gap:.45rem;align-items:center;padding:.5rem .9rem;border-radius:999px;background:var(--paper);border:1px solid var(--line);text-decoration:none;font-weight:500;font-size:.92rem;color:var(--green-900)}
.town-pill .pa{color:var(--muted);font-size:.85rem}
.town-pill .soon{font-size:.68rem;background:var(--gold-100);color:#7a5a12;padding:.1rem .45rem;border-radius:999px;font-weight:700}

/* ---------- footer ---------- */
.site-footer{background:var(--green-950);color:rgba(255,255,255,.72);padding:3rem 0 1.5rem;margin-top:0;font-size:.93rem}
.site-footer .grid{display:grid;gap:2rem}
@media(min-width:800px){.site-footer .grid{grid-template-columns:1.5fr 1fr 1fr 1fr}}
.site-footer h4{color:#fff;margin:0 0 .8rem;font-size:.95rem}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.45rem}
.site-footer a{color:rgba(255,255,255,.78);text-decoration:none}.site-footer a:hover{color:var(--gold-300)}
.site-footer .pa{color:var(--gold-300)}
.site-footer .legal{border-top:1px solid rgba(255,255,255,.1);margin-top:2.2rem;padding-top:1.2rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem;font-size:.82rem;color:rgba(255,255,255,.5)}
.wa-float{position:fixed;right:1rem;bottom:1rem;z-index:55;width:56px;height:56px;border-radius:50%;background:#1fa855;color:#fff;display:grid;place-items:center;box-shadow:0 12px 28px -10px rgba(0,0,0,.5);transition:transform .2s}
.wa-float:hover{transform:scale(1.06)}
.wa-float svg{width:28px;height:28px}
body.has-bar .wa-float{display:none}

/* reveal animation */
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
  .reveal.in{opacity:1;transform:none}
}

/* hero visual (desktop) */
.hero-grid{display:grid;gap:2rem;align-items:center}
.hero-visual{display:none;position:relative;justify-self:center}
@media(min-width:1000px){.hero-grid{grid-template-columns:1.25fr .75fr}.hero-visual{display:block}}
.phone{width:290px;border-radius:38px;background:#fbf7ef;padding:10px;box-shadow:0 40px 80px -30px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.12),inset 0 0 0 1px rgba(0,0,0,.05);transform:rotate(3deg);color:var(--ink)}
.ph-top{display:flex;justify-content:center;padding:4px 0 8px}.ph-top span{width:80px;height:6px;border-radius:6px;background:#e3dccb}
.ph-cover{position:relative;border-radius:26px 26px 14px 14px;overflow:hidden;height:170px}
.ph-cover img{width:100%;height:100%;object-fit:cover}
.ph-chip{position:absolute;top:10px;right:10px;background:rgba(6,35,26,.8);color:var(--gold-300);font-size:.66rem;font-weight:700;padding:.25rem .55rem;border-radius:999px}
.ph-body{padding:0 12px 14px;position:relative}
.ph-logo{width:52px;height:52px;border-radius:14px;margin-top:-26px;position:relative;background:linear-gradient(135deg,var(--gold-400),var(--gold-500));display:grid;place-items:center;font-family:var(--display);font-weight:700;color:var(--green-950);box-shadow:0 8px 18px -8px rgba(0,0,0,.4);border:3px solid #fbf7ef}
.ph-name{font-family:var(--display);font-weight:600;font-size:1.12rem;line-height:1.2;margin-top:.5rem;color:var(--green-950)}
.ph-sub{font-size:.72rem;color:var(--muted);margin-top:.15rem}
.ph-btns{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-top:.8rem}
.ph-btns .b{display:flex;align-items:center;justify-content:center;gap:.3rem;font-size:.75rem;font-weight:700;padding:.55rem;border-radius:12px;background:var(--green-800);color:#fff}
.ph-btns .b.wa{background:#1fa855}.ph-btns svg{width:14px;height:14px}
.ph-lines{display:grid;gap:.4rem;margin-top:.9rem}.ph-lines i{display:block;height:8px;border-radius:6px;background:#ebe4d4}
.float{position:absolute;background:#fff;color:var(--green-950);border-radius:16px;padding:.7rem .9rem;box-shadow:0 20px 40px -18px rgba(0,0,0,.6);font-size:.8rem;display:flex;gap:.5rem;align-items:center}
.float svg{width:16px;height:16px;color:var(--green-700)}
.float b{color:var(--saffron)}
.f1{left:-80px;bottom:-14px;transform:rotate(-2deg)}
.f2{right:-40px;top:40px;flex-direction:column;align-items:flex-start;gap:0;background:var(--gold-400)}
.f2 .pa{font-size:.95rem;color:var(--green-950)}.f2 small{color:var(--green-900);font-size:.7rem}
@media(max-width:480px){.ms-actions .btn{padding:.7rem 1rem;font-size:.92rem}.ms-actions{gap:.45rem}}
@media(max-width:799px){.filters .reset-btn{display:none}.empty .reset-btn{display:inline}}
.form select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23165a42' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.4rem}
