*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --terracotta:#C4522A;--terracotta-light:#E8734A;--gold:#D4A017;
  --cream:#FAF6EE;--cream-dark:#F0E8D8;--dark:#1C0F08;--dark-mid:#3D2010;
  --brown:#8B5E3C;--green:#3D6B35;--text:#2C1810;--text-light:#6B4530;--white:#FFFFFF;
  --bankid-blue:#193E74;--bankid-light:#4A7ABF;
}
body{font-family:'Plus Jakarta Sans',sans-serif;background:var(--cream);color:var(--text);min-height:100vh}
nav{background:var(--dark);padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:64px;position:sticky;top:0;z-index:100}
.nav-logo{font-family:'Fraunces',serif;font-size:1.5rem;color:var(--gold);font-weight:700;cursor:pointer;letter-spacing:-0.02em;line-height:1.15}
.nav-mantra{font-family:'Plus Jakarta Sans',sans-serif;font-size:0.65rem;font-weight:400;color:rgba(200,184,168,0.7);letter-spacing:0.02em;margin-top:1px}
.nav-logo span{color:var(--terracotta-light)}
.nav-links{display:flex;gap:1.25rem;align-items:center}
.nav-link{color:var(--cream);text-decoration:none;font-size:0.875rem;font-weight:500;cursor:pointer;background:none;border:none;font-family:'Plus Jakarta Sans',sans-serif;transition:color 0.2s}
.nav-link:hover{color:var(--gold)}
.nav-btn{background:var(--terracotta);color:var(--white);border:none;padding:0.5rem 1.25rem;border-radius:6px;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.875rem;font-weight:600;cursor:pointer;transition:background 0.2s}
.nav-btn:hover{background:var(--terracotta-light)}
.view{display:none}.view.active{display:block}
.kente{height:7px;background:repeating-linear-gradient(90deg,var(--gold) 0,var(--gold) 18px,var(--terracotta) 18px,var(--terracotta) 36px,var(--green) 36px,var(--green) 54px,var(--dark-mid) 54px,var(--dark-mid) 72px)}
.hero{background:var(--dark);min-height:500px;display:flex;align-items:center;position:relative;overflow:hidden;padding:4rem 2rem}
.hero::before{content:'';position:absolute;top:0;right:0;width:55%;height:100%;background:linear-gradient(135deg,var(--terracotta),var(--dark-mid));clip-path:polygon(22% 0%,100% 0%,100% 100%,0% 100%);opacity:0.6}
.hero-content{position:relative;z-index:1;max-width:580px}
.hero-tag{display:inline-block;background:var(--gold);color:var(--dark);font-size:0.72rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;padding:0.3rem 0.75rem;border-radius:4px;margin-bottom:1.25rem}
.hero h1{font-family:'Fraunces',serif;font-size:clamp(2.2rem,5vw,3.4rem);color:var(--white);line-height:1.1;margin-bottom:1.25rem;font-weight:700}
.hero h1 em{color:var(--gold);font-style:italic}
.hero p{color:#C8B8A8;font-size:1rem;line-height:1.7;margin-bottom:2rem;max-width:460px}
.hero-btns{display:flex;gap:1rem;flex-wrap:wrap}
.hero-stats{display:flex;align-items:center;gap:1rem;margin-top:1.5rem}
.hero-stat{font-size:0.82rem;color:rgba(200,184,168,0.75);font-weight:500}.hero-stat span{color:var(--gold);font-family:'Fraunces',serif;font-size:1.1rem;font-weight:700;margin-right:0.2rem}
.hero-stat-divider{width:1px;height:14px;background:rgba(200,184,168,0.25)}
.btn-primary{background:var(--terracotta);color:var(--white);border:none;padding:0.875rem 1.75rem;border-radius:8px;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.95rem;font-weight:600;cursor:pointer;transition:all 0.2s}
.btn-primary:hover{background:var(--terracotta-light);transform:translateY(-1px)}
.btn-outline{background:transparent;color:var(--white);border:1.5px solid rgba(255,255,255,0.35);padding:0.875rem 1.75rem;border-radius:8px;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.95rem;font-weight:500;cursor:pointer;transition:all 0.2s}
.btn-outline:hover{border-color:var(--gold);color:var(--gold)}
.categories{background:var(--cream-dark);padding:3.5rem 2rem}
.section-header{text-align:center;margin-bottom:2rem}
.section-header h2{font-family:'Fraunces',serif;font-size:1.85rem;color:var(--dark);font-weight:600}
.section-header p{color:var(--text-light);margin-top:0.4rem;font-size:0.9rem}
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:820px;margin:0 auto}
.cat-card{background:var(--white);border:2px solid transparent;border-radius:14px;padding:1.5rem 1rem;text-align:center;cursor:pointer;transition:all 0.22s}
.cat-card:hover{border-color:var(--terracotta);transform:translateY(-3px);box-shadow:0 10px 28px rgba(196,82,42,0.13)}
.cat-icon{font-size:2rem;margin-bottom:0.75rem;display:flex;align-items:center;justify-content:center}
.cat-card h3{font-family:'Fraunces',serif;font-size:0.95rem;color:var(--dark);font-weight:600}
.cat-card p{font-size:0.72rem;color:var(--text-light);margin-top:0.2rem;line-height:1.4}
.featured{padding:3.5rem 2rem;max-width:1100px;margin:0 auto}
.featured .section-header{text-align:left}
.vendor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.5rem;margin-top:1.5rem}
.vendor-card{background:var(--white);border-radius:14px;overflow:hidden;box-shadow:0 2px 14px rgba(28,15,8,0.06);cursor:pointer;transition:all 0.25s;border:1px solid rgba(196,82,42,0.07)}
.vendor-card:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(28,15,8,0.13)}
.vendor-cover{height:140px;display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:2.6rem;color:var(--white);font-weight:700;position:relative;overflow:hidden}
.vendor-cover img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.vendor-cover-initial{position:relative;z-index:1}
.vendor-body{padding:1.25rem}
.vendor-badges{display:flex;gap:0.4rem;flex-wrap:wrap;margin-bottom:0.6rem}
.badge{font-size:0.68rem;font-weight:700;padding:0.2rem 0.6rem;border-radius:20px;letter-spacing:0.03em}
.badge-category{background:rgba(196,82,42,0.1);color:var(--terracotta)}
.badge-city{background:rgba(61,107,53,0.1);color:var(--green)}
.badge-verified{background:rgba(61,107,53,0.15);color:#2A5020}
.vendor-card h3{font-family:'Fraunces',serif;font-size:1.05rem;color:var(--dark);font-weight:600;margin-bottom:0.25rem}
.vendor-card .specialty{font-size:0.8rem;color:var(--text-light);margin-bottom:0.7rem;line-height:1.4}
.service-types{display:flex;gap:0.35rem;flex-wrap:wrap}
.service-tag{font-size:0.68rem;background:var(--cream-dark);color:var(--brown);padding:0.2rem 0.5rem;border-radius:4px;font-weight:600}
.sub-tag{font-size:0.68rem;background:rgba(196,82,42,0.08);color:var(--terracotta);padding:0.2rem 0.5rem;border-radius:4px;font-weight:600;margin-bottom:0.4rem;display:inline-block}
.how-it-works{background:var(--dark);padding:4rem 2rem;position:relative}
.how-it-works .section-header h2{color:var(--white)}
.how-it-works .section-header p{color:#C8B8A8}
.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:2rem;max-width:860px;margin:2.5rem auto 0}
.step{text-align:center}
.step-num{width:52px;height:52px;background:var(--terracotta);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:1.4rem;color:var(--white);font-weight:700;margin:0 auto 1rem}
.step h3{font-family:'Fraunces',serif;color:var(--gold);font-size:1.05rem;margin-bottom:0.5rem}
.step p{font-size:0.87rem;color:#C8B8A8;line-height:1.65}
.browse-header{background:var(--dark);padding:2.5rem 2rem}
.browse-header h1{font-family:'Fraunces',serif;color:var(--white);font-size:2rem;margin-bottom:0.4rem}
.browse-header p{color:#C8B8A8;font-size:0.9rem}
.browse-body{max-width:1100px;margin:0 auto;padding:2rem}
.filters{background:var(--white);border-radius:12px;padding:1.25rem;display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1.75rem;box-shadow:0 2px 14px rgba(28,15,8,0.06);align-items:flex-end}
.filter-group{display:flex;flex-direction:column;gap:0.35rem;flex:1;min-width:140px}
.filter-group label{font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-light)}
.filter-group select,.filter-group input{border:1.5px solid var(--cream-dark);border-radius:8px;padding:0.55rem 0.75rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.875rem;color:var(--text);background:var(--cream);outline:none;transition:border-color 0.2s}
.filter-group select:focus,.filter-group input:focus{border-color:var(--terracotta)}
.results-count{font-size:0.83rem;color:var(--text-light);margin-bottom:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em}
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(28,15,8,0.75);z-index:200;align-items:center;justify-content:center;padding:1rem;overflow-y:auto}
.modal-overlay.open{display:flex}
.modal{background:var(--cream);border-radius:18px;max-width:560px;width:100%;max-height:92vh;overflow-y:auto;position:relative}
.modal-cover{height:180px;display:flex;align-items:center;justify-content:center;border-radius:18px 18px 0 0;position:relative;overflow:hidden}
.modal-cover-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.modal-cover-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 40%,rgba(28,15,8,0.5))}
.modal-avatar-large{font-family:'Fraunces',serif;font-size:3.5rem;color:var(--white);font-weight:700;position:relative;z-index:1}
.modal-close{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,0.2);backdrop-filter:blur(4px);border:none;color:white;width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;z-index:2;transition:background 0.2s}
.modal-close:hover{background:rgba(255,255,255,0.35)}
.modal-body{padding:1.75rem}
.modal-body h2{font-family:'Fraunces',serif;font-size:1.55rem;color:var(--dark);margin-bottom:0.5rem}
.modal-meta{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:1.25rem}
.modal-section{margin-bottom:1.25rem}
.modal-section h4{font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-light);margin-bottom:0.5rem}
.modal-section p{font-size:0.9rem;line-height:1.65;color:var(--text)}
.modal-gallery{display:grid;gap:4px;border-radius:10px;overflow:hidden}
.modal-gallery.count-1{grid-template-columns:1fr}
.modal-gallery.count-2{grid-template-columns:1fr 1fr}
.modal-gallery.count-3{grid-template-columns:1fr 1fr}
.modal-gallery.count-3 .gal-img:first-child{grid-column:1/-1}
.modal-gallery.count-4,.modal-gallery.count-5,.modal-gallery.count-6{grid-template-columns:repeat(3,1fr)}
.gal-img{overflow:hidden;cursor:pointer;background:var(--cream-dark)}
.gal-img img{width:100%;aspect-ratio:1;object-fit:cover;transition:transform 0.25s,opacity 0.15s;display:block}
.modal-gallery.count-1 .gal-img img{aspect-ratio:16/9}
.modal-gallery.count-3 .gal-img:first-child img{aspect-ratio:16/7}
.gal-img:hover img{transform:scale(1.04);opacity:0.88}
.contact-btns{display:flex;gap:0.75rem;flex-wrap:wrap;margin-top:1.5rem}
.contact-btn{flex:1;padding:0.8rem;border-radius:10px;border:none;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.875rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:0.4rem;transition:all 0.2s;text-decoration:none;min-width:110px}
.contact-whatsapp{background:#25D366;color:white}.contact-whatsapp:hover{background:#1da851}
.contact-email{background:var(--terracotta);color:white}.contact-email:hover{background:var(--terracotta-light)}
.contact-phone{background:var(--cream-dark);color:var(--dark);border:1.5px solid #ddd}.contact-phone:hover{background:var(--white)}
.role-modal{background:var(--white);border-radius:20px;max-width:440px;width:100%;padding:2.5rem 2rem;text-align:center}
.role-modal h2{font-family:'Fraunces',serif;font-size:1.65rem;color:var(--dark);margin-bottom:0.4rem}
.role-modal p{color:var(--text-light);font-size:0.9rem;margin-bottom:2rem;line-height:1.6}
.role-cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.role-card{border:2px solid var(--cream-dark);border-radius:14px;padding:1.75rem 1rem;cursor:pointer;transition:all 0.22s;background:var(--cream)}
.role-card:hover{border-color:var(--terracotta);background:#FFF5F0;transform:translateY(-2px)}
.role-card .role-icon{font-size:2.2rem;margin-bottom:0.75rem;display:flex;align-items:center;justify-content:center}
.role-card h3{font-family:'Fraunces',serif;font-size:1rem;color:var(--dark);font-weight:600;margin-bottom:0.3rem}
.role-card p{font-size:0.75rem;color:var(--text-light);line-height:1.5}
.signup-page{max-width:600px;margin:3rem auto;padding:0 1.5rem 4rem}
.signup-page h1{font-family:'Fraunces',serif;font-size:2rem;color:var(--dark);margin-bottom:0.4rem;font-weight:700}
.signup-page .subtitle{color:var(--text-light);margin-bottom:2rem;font-size:0.92rem;line-height:1.6}
.form-card{background:var(--white);border-radius:16px;padding:2rem;box-shadow:0 4px 22px rgba(28,15,8,0.08)}
.form-section-label{font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-light);margin:1.5rem 0 0.75rem;display:block}
.form-group{margin-bottom:1.2rem}
.form-group label{display:block;font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-light);margin-bottom:0.4rem}
.form-group input,.form-group select,.form-group textarea{width:100%;border:1.5px solid var(--cream-dark);border-radius:8px;padding:0.7rem 0.875rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.9rem;color:var(--text);background:var(--cream);outline:none;transition:border-color 0.2s}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--terracotta)}
.form-group textarea{resize:vertical;min-height:90px}
.checkbox-group{display:flex;gap:0.5rem;flex-wrap:wrap;margin-top:0.25rem}
.checkbox-item{display:flex;align-items:center;gap:0.4rem;background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:6px;padding:0.4rem 0.75rem;cursor:pointer;font-size:0.82rem;font-weight:500;transition:all 0.15s}
.checkbox-item:hover{border-color:var(--terracotta)}
.checkbox-item input[type=checkbox]{cursor:pointer;accent-color:var(--terracotta)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.upload-zone{border:2px dashed var(--cream-dark);border-radius:12px;padding:1.75rem;text-align:center;cursor:pointer;transition:all 0.2s;background:var(--cream);position:relative}
.upload-zone:hover,.upload-zone.dragover{border-color:var(--terracotta);background:#FFF5F0}
.upload-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.upload-icon{font-size:2rem;margin-bottom:0.5rem}
.upload-zone p{font-size:0.82rem;color:var(--text-light);line-height:1.5}
.upload-zone strong{color:var(--terracotta)}
.photo-previews{display:grid;grid-template-columns:repeat(3,1fr);gap:0.6rem;margin-top:0.75rem}
.preview-thumb{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--cream-dark)}
.preview-thumb img{width:100%;height:100%;object-fit:cover}
.preview-remove{position:absolute;top:4px;right:4px;background:rgba(28,15,8,0.6);color:white;border:none;border-radius:50%;width:22px;height:22px;font-size:0.72rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background 0.15s;line-height:1}
.preview-remove:hover{background:var(--terracotta)}
.upload-count{font-size:0.72rem;color:var(--text-light);margin-top:0.4rem;text-align:right;font-weight:600}
.bankid-section{background:linear-gradient(135deg,#EEF3FA,#DDE8F5);border:1.5px solid #B8CEEA;border-radius:12px;padding:1.5rem;margin-bottom:1.25rem}
.bankid-header{display:flex;align-items:center;gap:0.75rem;margin-bottom:1rem}
.bankid-logo{width:42px;height:42px;background:var(--bankid-blue);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.bankid-header h3{font-family:'Fraunces',serif;font-size:1rem;color:var(--bankid-blue);font-weight:700}
.bankid-header p{font-size:0.75rem;color:#4A6A9A;margin-top:0.1rem;line-height:1.4}
.bankid-input-wrap{display:flex;gap:0.5rem}
.bankid-input-wrap input{flex:1;border:1.5px solid #B8CEEA;border-radius:8px;padding:0.7rem 0.875rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.9rem;color:var(--bankid-blue);background:white;outline:none;transition:border-color 0.2s;letter-spacing:0.05em}
.bankid-input-wrap input:focus{border-color:var(--bankid-blue)}
.bankid-btn{background:var(--bankid-blue);color:white;border:none;padding:0.7rem 1.1rem;border-radius:8px;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.82rem;font-weight:700;cursor:pointer;transition:background 0.2s;white-space:nowrap}
.bankid-btn:hover{background:var(--bankid-light)}
.bankid-status{margin-top:0.75rem;font-size:0.8rem;color:#4A6A9A;display:none;align-items:center;gap:0.5rem;line-height:1.5}
.bankid-status.show{display:flex}
.bankid-spinner{width:16px;height:16px;border:2px solid #B8CEEA;border-top-color:var(--bankid-blue);border-radius:50%;animation:spin 0.8s linear infinite;flex-shrink:0}
.bankid-verified{background:rgba(61,107,53,0.1);border:1.5px solid var(--green);border-radius:8px;padding:0.6rem 0.875rem;font-size:0.82rem;color:#2A5020;font-weight:600;display:none;align-items:center;gap:0.5rem;margin-top:0.75rem}
.bankid-verified.show{display:flex}
@keyframes spin{to{transform:rotate(360deg)}}
.bankid-note{font-size:0.7rem;color:#6A8ABE;margin-top:0.5rem;line-height:1.5}
.form-submit{background:var(--terracotta);color:var(--white);border:none;padding:0.9rem;border-radius:10px;width:100%;font-family:'Plus Jakarta Sans',sans-serif;font-size:1rem;font-weight:700;cursor:pointer;margin-top:0.5rem;transition:all 0.2s}
.form-submit:hover{background:var(--terracotta-light);transform:translateY(-1px)}
.or-divider{display:flex;align-items:center;gap:0.75rem;margin:1.1rem 0;color:var(--text-light);font-size:0.78rem;font-weight:500}
.or-divider::before,.or-divider::after{content:'';flex:1;height:1px;background:var(--cream-dark)}
.google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:0.65rem;padding:0.75rem 1rem;border:1.5px solid var(--cream-dark);border-radius:10px;background:white;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.9rem;font-weight:600;color:#3c4043;cursor:pointer;transition:all 0.18s;box-shadow:0 1px 3px rgba(0,0,0,0.08)}
.google-btn:hover{border-color:#dadce0;box-shadow:0 2px 8px rgba(0,0,0,0.12);transform:translateY(-1px)}
.success-msg{display:none;background:rgba(61,107,53,0.1);border:1.5px solid var(--green);color:#2A5020;border-radius:10px;padding:1rem;text-align:center;margin-top:1rem;font-size:0.9rem;font-weight:500;line-height:1.6}
.lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.93);z-index:400;align-items:center;justify-content:center;padding:1rem}
.lightbox.open{display:flex}
.lightbox img{max-width:90vw;max-height:88vh;object-fit:contain;border-radius:8px}
.lightbox-close{position:absolute;top:1.25rem;right:1.25rem;background:rgba(255,255,255,0.12);border:none;color:white;width:40px;height:40px;border-radius:50%;font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background 0.2s}
.lightbox-close:hover{background:rgba(255,255,255,0.25)}
footer{background:var(--dark-mid);padding:2.5rem 2rem;text-align:center}
.footer-logo{font-family:'Fraunces',serif;color:var(--gold);font-size:1.3rem;font-weight:700;margin-bottom:0.5rem}
footer p{color:#C8B8A8;font-size:0.8rem}
.empty-state{text-align:center;padding:3rem;color:var(--text-light);grid-column:1/-1}
.empty-state h3{font-family:'Fraunces',serif;font-size:1.25rem;color:var(--dark);margin-bottom:0.5rem}
/* LANG TOGGLE */
.lang-toggle{flex-shrink:0;margin-left:0.25rem}
.lang-select{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);color:#C8B8A8;font-size:0.72rem;font-weight:700;padding:0.3rem 0.5rem;border-radius:6px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;letter-spacing:0.04em;outline:none;transition:all 0.18s}
.lang-select:hover{border-color:var(--gold);color:var(--gold)}
.lang-select option{background:var(--dark);color:var(--cream);font-weight:600}
/* MANTRA */
.hero-mantra{color:var(--gold);font-family:'Fraunces',serif;font-style:italic;font-size:1rem;margin-bottom:2rem;opacity:0.88}
.footer-mantra{font-family:'Fraunces',serif;font-style:italic;color:var(--gold);font-size:0.88rem;opacity:0.82;margin-bottom:0.35rem}
/* DASHBOARD */
.dash-page{max-width:940px;margin:0 auto;padding:2rem 1.5rem 4rem}
.dash-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}
.dash-topbar h1{font-family:'Fraunces',serif;font-size:1.85rem;color:var(--dark);font-weight:700}
.dash-topbar p{color:var(--text-light);font-size:0.9rem;margin-top:0.2rem}
.dash-logout-btn{background:transparent;border:1.5px solid rgba(196,82,42,0.25);color:var(--text-light);padding:0.5rem 1rem;border-radius:8px;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.83rem;font-weight:600;cursor:pointer;transition:all 0.2s;flex-shrink:0}
.dash-logout-btn:hover{border-color:var(--terracotta);color:var(--terracotta)}
.dash-layout{display:grid;grid-template-columns:290px 1fr;gap:2rem;align-items:start}
.dash-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0.6rem;margin-bottom:1rem}
.stat-box{background:var(--white);border-radius:12px;padding:0.875rem 0.5rem;text-align:center;box-shadow:0 2px 12px rgba(28,15,8,0.05);border:1px solid rgba(196,82,42,0.07)}
.stat-num{font-family:'Fraunces',serif;font-size:1.65rem;color:var(--dark);font-weight:700;line-height:1}
.stat-lbl{font-size:0.6rem;color:var(--text-light);text-transform:uppercase;letter-spacing:0.06em;font-weight:700;margin-top:0.25rem}
.dash-status-box{background:var(--white);border-radius:12px;padding:1rem 1.1rem;margin-bottom:1rem;box-shadow:0 2px 12px rgba(28,15,8,0.05);font-size:0.85rem;line-height:1.6;border:1px solid rgba(196,82,42,0.07)}
.dash-preview{pointer-events:none;user-select:none}
.dash-preview .vendor-card{cursor:default}
.dash-preview .vendor-card:hover{transform:none;box-shadow:0 2px 14px rgba(28,15,8,0.06)}
.dash-view-btn{width:100%;margin-top:0.75rem;background:var(--cream-dark);color:var(--dark-mid);border:none;padding:0.65rem;border-radius:8px;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.85rem;font-weight:600;cursor:pointer;transition:all 0.2s}
.dash-view-btn:hover{background:var(--cream);color:var(--terracotta)}
.dash-edit-card{background:var(--white);border-radius:16px;padding:2rem;box-shadow:0 4px 22px rgba(28,15,8,0.08)}
.dash-edit-card h2{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--dark);font-weight:600;margin-bottom:1.5rem}
.no-vendor-card{background:var(--cream-dark);border-radius:16px;padding:2.5rem;text-align:center;max-width:500px;margin:0 auto}
.no-vendor-card h3{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--dark);margin-bottom:0.5rem}
.no-vendor-card p{color:var(--text-light);font-size:0.9rem;margin-bottom:1.5rem;line-height:1.6}
@media(max-width:680px){.dash-layout{grid-template-columns:1fr}}
.empty-state h3{font-family:'Fraunces',serif;font-size:1.25rem;color:var(--dark);margin-bottom:0.5rem}
/* LANG TOGGLE */
.lang-toggle{display:flex;gap:2px;background:rgba(255,255,255,0.08);border-radius:6px;padding:2px;margin-left:0.5rem;flex-shrink:0}
.lang-btn{background:transparent;border:none;color:#9A8878;font-size:0.7rem;font-weight:700;padding:0.25rem 0.45rem;border-radius:4px;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;transition:all 0.15s;letter-spacing:0.04em}
.lang-btn.active{background:var(--terracotta);color:white}
.lang-btn:hover:not(.active){color:var(--gold)}
/* HERO MANTRA */
.hero-mantra{color:var(--gold);font-family:'Fraunces',serif;font-style:italic;font-size:1rem;margin-bottom:2rem;opacity:0.88}
/* FOOTER */
.footer-mantra{font-family:'Fraunces',serif;font-style:italic;color:var(--gold);font-size:0.88rem;opacity:0.85;margin-bottom:0.4rem}
/* DASHBOARD */
.dash-page{max-width:960px;margin:0 auto;padding:2rem 1.5rem 4rem}
.dash-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}
.dash-top h1{font-family:'Fraunces',serif;font-size:1.85rem;color:var(--dark);font-weight:700;line-height:1.15}
.dash-top p{color:var(--text-light);font-size:0.9rem;margin-top:0.25rem}
.dash-logout-btn{background:transparent;border:1.5px solid rgba(196,82,42,0.25);color:var(--text-light);padding:0.5rem 1.1rem;border-radius:8px;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.83rem;font-weight:600;cursor:pointer;transition:all 0.2s;flex-shrink:0;align-self:flex-start;margin-top:0.25rem}
.dash-logout-btn:hover{border-color:var(--terracotta);color:var(--terracotta)}
.dash-layout{display:grid;grid-template-columns:300px 1fr;gap:2rem;align-items:start}
.dash-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0.65rem;margin-bottom:1rem}
.stat-box{background:var(--white);border-radius:12px;padding:0.9rem 0.5rem;text-align:center;box-shadow:0 2px 12px rgba(28,15,8,0.05);border:1px solid rgba(196,82,42,0.07)}
.stat-num{font-family:'Fraunces',serif;font-size:1.65rem;color:var(--dark);font-weight:700;line-height:1}
.stat-lbl{font-size:0.6rem;color:var(--text-light);text-transform:uppercase;letter-spacing:0.06em;font-weight:700;margin-top:0.25rem}
.dash-status-box{background:var(--white);border-radius:12px;padding:1rem 1.1rem;margin-bottom:1rem;box-shadow:0 2px 12px rgba(28,15,8,0.05);font-size:0.85rem;line-height:1.6;border:1px solid rgba(196,82,42,0.07)}
.dash-preview-wrap{pointer-events:none;user-select:none}
.dash-preview-wrap .vendor-card{cursor:default}
.dash-preview-wrap .vendor-card:hover{transform:none;box-shadow:0 2px 14px rgba(28,15,8,0.06)}
.dash-preview-btn{width:100%;margin-top:0.75rem;background:var(--cream-dark);color:var(--dark-mid);border:none;padding:0.65rem;border-radius:8px;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.85rem;font-weight:600;cursor:pointer;pointer-events:all;transition:all 0.2s}
.dash-preview-btn:hover{background:var(--cream);color:var(--terracotta)}
.dash-edit-card{background:var(--white);border-radius:16px;padding:2rem;box-shadow:0 4px 22px rgba(28,15,8,0.08)}
.dash-edit-card h2{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--dark);font-weight:600;margin-bottom:1.5rem}
.no-vendor-box{background:var(--cream-dark);border-radius:16px;padding:2.5rem;text-align:center}
.no-vendor-box h3{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--dark);margin-bottom:0.5rem}
.no-vendor-box p{color:var(--text-light);font-size:0.9rem;margin-bottom:1.5rem;line-height:1.6}
@media(max-width:680px){.dash-layout{grid-template-columns:1fr}.lang-toggle{display:none}}
.empty-state h3{font-family:'Fraunces',serif;font-size:1.25rem;color:var(--dark);margin-bottom:0.5rem}
.avail-badge-open{background:rgba(61,107,53,0.1);color:#2A5020}
.avail-badge-booked{background:rgba(196,82,42,0.12);color:var(--terracotta)}
.badge-featured{background:linear-gradient(135deg,var(--gold),#E8B800);color:var(--dark)}
.featured-ribbon{position:absolute;top:10px;right:0;background:var(--gold);color:var(--dark);font-size:0.6rem;font-weight:800;padding:0.18rem 0.55rem 0.18rem 0.45rem;border-radius:4px 0 0 4px;letter-spacing:0.06em;text-transform:uppercase;z-index:2}
.toggle-wrap{display:flex;align-items:center;gap:0.875rem;padding:0.8rem;background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:8px;cursor:pointer}
.toggle-input{appearance:none;-webkit-appearance:none;width:52px!important;max-width:52px!important;min-width:52px;height:28px;flex:0 0 52px;background:var(--cream-dark);border-radius:14px;position:relative;cursor:pointer;transition:background 0.25s;flex-shrink:0;border:none}
.toggle-input:checked{background:#2ecc71}
.toggle-input::after{content:'';position:absolute;top:2px;left:2px;width:24px;height:24px;background:white;border-radius:50%;transition:transform 0.25s;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.toggle-input:checked::after{transform:translateX(24px)}
.toggle-label-main{font-size:0.87rem;font-weight:600;color:var(--text)}
.toggle-label-sub{font-size:0.72rem;color:var(--text-light);font-weight:400;margin-top:0.1rem}
.social-links{display:flex;gap:0.5rem;flex-wrap:wrap}
.social-link{display:inline-flex;align-items:center;gap:0.3rem;font-size:0.78rem;font-weight:600;color:var(--text-light);text-decoration:none;background:var(--cream-dark);padding:0.35rem 0.75rem;border-radius:20px;transition:all 0.18s}
.social-link:hover{background:var(--cream);color:var(--terracotta);transform:translateY(-1px)}
.hint-text{font-size:0.75rem;color:var(--text-light);margin-top:0.3rem;line-height:1.5}
.modal-footer-row{display:flex;align-items:center;justify-content:space-between;padding-top:0.875rem;margin-top:0.5rem;border-top:1.5px solid var(--cream-dark)}
.share-btn{background:transparent;border:1.5px solid var(--cream-dark);color:var(--text-light);padding:0.55rem 1rem;border-radius:8px;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.8rem;font-weight:600;cursor:pointer;transition:all 0.18s;display:flex;align-items:center;gap:0.4rem}
.share-btn:hover{border-color:var(--terracotta);color:var(--terracotta)}
/* ── CHATBOT ── */
.chat-bubble{position:fixed;bottom:1.5rem;right:1.5rem;z-index:999;display:none}
.chat-bubble-btn{width:56px;height:56px;border-radius:50%;background:var(--terracotta);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(196,82,42,0.4);transition:all 0.2s;font-size:1.4rem}
.chat-bubble-btn:hover{background:var(--terracotta-light);transform:scale(1.07)}
.chat-bubble-badge{position:absolute;top:-3px;right:-3px;background:var(--gold);color:var(--dark);font-size:0.6rem;font-weight:700;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--cream)}
.chat-window{position:fixed;bottom:5rem;right:1.5rem;width:360px;max-width:calc(100vw - 2rem);height:480px;background:white;border-radius:16px;box-shadow:0 8px 40px rgba(0,0,0,0.18);display:flex;flex-direction:column;z-index:998;overflow:hidden;transition:all 0.22s}
.chat-window.hidden{display:none}
.chat-header{background:var(--dark);padding:0.9rem 1.1rem;display:flex;align-items:center;gap:0.65rem}
.chat-header-avatar{width:34px;height:34px;border-radius:50%;background:var(--terracotta);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.chat-header-info{flex:1}
.chat-header-name{font-weight:700;font-size:0.88rem;color:white}
.chat-header-status{font-size:0.7rem;color:rgba(255,255,255,0.6)}
.chat-close{background:none;border:none;color:rgba(255,255,255,0.6);font-size:1.1rem;cursor:pointer;padding:0.2rem;line-height:1;transition:color 0.15s}
.chat-close:hover{color:white}
.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:0.65rem}
.chat-msg{max-width:82%;padding:0.65rem 0.85rem;border-radius:12px;font-size:0.83rem;line-height:1.55}
.chat-msg.bot{background:var(--cream-dark);color:var(--text);align-self:flex-start;border-bottom-left-radius:3px}
.chat-msg.user{background:var(--terracotta);color:white;align-self:flex-end;border-bottom-right-radius:3px}
.chat-msg.typing{background:var(--cream-dark);align-self:flex-start;padding:0.65rem 1rem}
.chat-typing-dots{display:flex;gap:4px;align-items:center}
.chat-typing-dots span{width:7px;height:7px;border-radius:50%;background:var(--text-light);animation:chatDot 1.2s infinite}
.chat-typing-dots span:nth-child(2){animation-delay:0.2s}
.chat-typing-dots span:nth-child(3){animation-delay:0.4s}
@keyframes chatDot{0%,60%,100%{opacity:0.25;transform:scale(0.85)}30%{opacity:1;transform:scale(1)}}
.chat-input-row{display:flex;gap:0.5rem;padding:0.75rem;border-top:1.5px solid var(--cream-dark);background:white}
.chat-input{flex:1;border:1.5px solid var(--cream-dark);border-radius:8px;padding:0.55rem 0.75rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.83rem;outline:none;resize:none;color:var(--text);background:var(--cream);transition:border-color 0.18s}
.chat-input:focus{border-color:var(--terracotta)}
.chat-send-btn{background:var(--terracotta);border:none;border-radius:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.18s;flex-shrink:0;align-self:flex-end}
.chat-send-btn:hover{background:var(--terracotta-light)}
.chat-send-btn svg{width:16px;height:16px;fill:white}
.city-chips{display:flex;flex-wrap:wrap;gap:0.4rem;margin-top:0.35rem}
.city-chip{display:inline-flex;align-items:center;background:var(--cream-dark);border:1.5px solid transparent;border-radius:20px;padding:0.3rem 0.85rem;font-size:0.8rem;font-weight:600;color:var(--text);cursor:pointer;transition:all 0.15s;user-select:none}
.city-chip.selected{background:var(--terracotta);color:white;border-color:var(--terracotta)}
.city-chip:hover:not(.selected){border-color:var(--terracotta);color:var(--terracotta)}
.location-block{background:var(--cream-dark);border-radius:10px;padding:0.875rem 1rem;margin-bottom:0.6rem}
.location-block-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.6rem}
.location-block-label{font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.07em;color:var(--text-light)}
.location-remove-btn{background:none;border:none;color:var(--text-light);cursor:pointer;font-size:0.85rem;line-height:1;padding:0;transition:color 0.15s}
.location-remove-btn:hover{color:#c0392b}
.add-location-btn{width:100%;background:none;border:1.5px dashed var(--cream-dark);border-radius:8px;padding:0.6rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.82rem;color:var(--text-light);cursor:pointer;transition:all 0.18s;margin-top:0.25rem}
.add-location-btn:hover{border-color:var(--terracotta);color:var(--terracotta)}
.id-privacy-notice{background:#eaf4ea;border:1.5px solid #3D6B35;border-radius:10px;padding:0.75rem 1rem;font-size:0.82rem;color:#2a4a25;margin-bottom:1rem;display:flex;align-items:flex-start;gap:0.5rem;line-height:1.55}
.id-example-box{background:var(--cream-dark);border-radius:12px;padding:1rem;margin-bottom:1rem;text-align:center}
.id-example-box p{font-size:0.75rem;color:var(--text-light);margin-top:0.5rem}
.id-uploads-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.75rem;margin-bottom:0.75rem}
.id-upload-item label{display:block;font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-light);margin-bottom:0.35rem}
.id-upload-zone{border:1.5px dashed var(--cream-dark);border-radius:10px;padding:0.75rem 0.5rem;text-align:center;cursor:pointer;transition:all 0.18s;background:white;position:relative;min-height:90px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.25rem}
.id-upload-zone:hover{border-color:var(--terracotta);background:var(--cream)}
.id-upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.id-upload-zone .id-icon{font-size:1.4rem}
.id-upload-zone p{font-size:0.7rem;color:var(--text-light);margin:0;line-height:1.4}
.id-upload-zone .id-preview-img{width:100%;height:70px;object-fit:cover;border-radius:6px;margin-top:0.25rem}
.id-upload-done{font-size:0.72rem;color:var(--green);font-weight:600}
.country-residence-group{background:var(--cream-dark);border-radius:12px;padding:1rem 1.1rem;margin-bottom:1rem}
.city-autocomplete-wrap{position:relative;margin-top:0.5rem}
.city-suggestions{position:absolute;top:100%;left:0;right:0;background:white;border:1.5px solid var(--cream-dark);border-radius:8px;max-height:200px;overflow-y:auto;z-index:200;box-shadow:0 4px 16px rgba(0,0,0,0.12);display:none}
.city-suggestion{padding:0.5rem 0.85rem;font-size:0.85rem;cursor:pointer;color:var(--text);border-bottom:1px solid var(--cream-dark)}
.city-suggestion:last-child{border-bottom:none}
.city-suggestion:hover,.city-suggestion.active{background:var(--cream-dark);color:var(--terracotta)}
.dash-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:0.5rem;margin-bottom:0.75rem}
.dash-photo-thumb{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--cream-dark)}
.dash-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.dash-photo-remove{position:absolute;top:3px;right:3px;background:rgba(0,0,0,0.65);color:white;border:none;border-radius:50%;width:22px;height:22px;font-size:0.65rem;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}
.dash-photo-remove:hover{background:rgba(192,57,43,0.9)}
.customer-dash{max-width:860px;margin:0 auto;padding:2rem 1.5rem}
.customer-dash-top{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:2rem}
.customer-list-cta{background:var(--cream-dark);border-radius:12px;padding:1rem 1.25rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.customer-list-cta p{font-size:0.83rem;color:var(--text-light);margin:0;flex:1}
.customer-section{margin-bottom:2.5rem}
.customer-section h3{font-family:'Fraunces',serif;font-size:1.15rem;color:var(--dark);margin-bottom:1rem;padding-bottom:0.5rem;border-bottom:1.5px solid var(--cream-dark)}
.customer-review-card{background:var(--cream-dark);border-radius:10px;padding:0.875rem 1rem;margin-bottom:0.65rem}
.customer-review-vendor{font-weight:700;font-size:0.88rem;color:var(--terracotta);cursor:pointer;margin-bottom:0.25rem}
.customer-review-vendor:hover{text-decoration:underline}
.customer-review-stars{color:#F4A72D;font-size:0.82rem;margin-bottom:0.3rem}
.customer-review-comment{font-size:0.85rem;color:var(--text);line-height:1.6}
.customer-review-date{font-size:0.72rem;color:var(--text-light);margin-top:0.3rem}
.browsed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0.75rem}
.browsed-card{background:white;border:1.5px solid var(--cream-dark);border-radius:10px;padding:0.875rem;cursor:pointer;transition:all 0.18s}
.browsed-card:hover{border-color:var(--terracotta);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.08)}
.browsed-card-name{font-weight:700;font-size:0.85rem;color:var(--dark);margin-bottom:0.2rem}
.browsed-card-cat{font-size:0.75rem;color:var(--text-light)}
.browsed-card-date{font-size:0.7rem;color:var(--text-light);margin-top:0.4rem}
.customer-empty{font-size:0.85rem;color:var(--text-light);padding:0.5rem 0}
.admin-page{max-width:1100px;margin:0 auto;padding:2.5rem 1.5rem}
.admin-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}
.admin-topbar h1{font-family:'Fraunces',serif;font-size:1.8rem;color:var(--dark)}
.admin-topbar p{font-size:0.8rem;color:var(--text-light);margin-top:0.2rem}
.admin-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}
.admin-stat{background:white;border:1.5px solid var(--cream-dark);border-radius:12px;padding:1.1rem 1.25rem}
.admin-stat-num{font-family:'Fraunces',serif;font-size:2rem;font-weight:700;color:var(--dark);line-height:1}
.admin-stat-lbl{font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.07em;color:var(--text-light);margin-top:0.3rem}
.admin-section{margin-bottom:2.5rem}
.admin-section h2{font-family:'Fraunces',serif;font-size:1.2rem;color:var(--dark);margin-bottom:1rem;padding-bottom:0.5rem;border-bottom:1.5px solid var(--cream-dark)}
.admin-table{width:100%;border-collapse:collapse;font-size:0.83rem}
.admin-table th{text-align:left;font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.07em;color:var(--text-light);padding:0.5rem 0.75rem;border-bottom:1.5px solid var(--cream-dark)}
.admin-table td{padding:0.7rem 0.75rem;border-bottom:1px solid var(--cream-dark);color:var(--text);vertical-align:middle}
.admin-table tr:last-child td{border-bottom:none}
.admin-table tr:hover td{background:var(--cream-dark)}
.admin-badge-verified{background:#d4edda;color:#155724;font-size:0.7rem;font-weight:700;padding:0.2rem 0.5rem;border-radius:20px}
.admin-badge-pending{background:#fff3cd;color:#856404;font-size:0.7rem;font-weight:700;padding:0.2rem 0.5rem;border-radius:20px}
.admin-action-btn{border:none;border-radius:6px;padding:0.3rem 0.65rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.75rem;font-weight:600;cursor:pointer;transition:opacity 0.18s;margin-right:0.3rem}
.admin-action-btn:hover{opacity:0.78}
.btn-verify{background:var(--green,#2e7d32);color:white}
.btn-unverify{background:#e8a020;color:white}
.btn-delete{background:#c0392b;color:white}
.admin-empty{text-align:center;padding:2rem;color:var(--text-light);font-size:0.85rem}
.reviews-section{margin-top:1.5rem;border-top:1.5px solid var(--cream-dark);padding-top:1.25rem}
.reviews-section>h4{font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-light);margin-bottom:1rem}
.reviews-avg{display:flex;align-items:center;gap:0.75rem;margin-bottom:1rem;background:var(--cream-dark);border-radius:10px;padding:0.75rem 1rem}
.reviews-avg-score{font-family:'Fraunces',serif;font-size:2rem;color:var(--dark);font-weight:700;line-height:1}
.reviews-avg-stars{color:#F4A72D;font-size:1rem;letter-spacing:2px}
.reviews-avg-count{font-size:0.75rem;color:var(--text-light);margin-top:0.15rem}
.review-card{background:var(--cream-dark);border-radius:10px;padding:0.875rem 1rem;margin-bottom:0.65rem}
.review-card-header{display:flex;align-items:center;justify-content:space-between}
.review-card-name{font-weight:700;font-size:0.85rem;color:var(--dark)}
.review-card-stars{color:#F4A72D;font-size:0.82rem;letter-spacing:1px}
.review-card-date{font-size:0.7rem;color:var(--text-light);margin-top:0.15rem}
.review-card-comment{font-size:0.85rem;line-height:1.6;color:var(--text);margin-top:0.5rem}
.review-form{background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:12px;padding:1rem;margin-top:1rem}
.review-form h5{font-size:0.82rem;font-weight:700;color:var(--dark);margin-bottom:0.75rem}
.star-rating{display:flex;gap:0.2rem;margin-bottom:0.75rem}
.star-rating .star{font-size:1.5rem;cursor:pointer;color:#ddd;transition:color 0.12s;line-height:1}
.star-rating .star.active{color:#F4A72D}
.review-form textarea{width:100%;border:1.5px solid var(--cream-dark);border-radius:8px;padding:0.6rem 0.75rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.85rem;resize:vertical;min-height:72px;background:white;color:var(--text);outline:none;box-sizing:border-box;transition:border-color 0.18s}
.review-form textarea:focus{border-color:var(--terracotta)}
.review-submit-btn{margin-top:0.65rem;background:var(--terracotta);color:white;border:none;border-radius:8px;padding:0.6rem 1.25rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.82rem;font-weight:700;cursor:pointer;transition:background 0.18s}
.review-submit-btn:hover{opacity:0.88}
.review-submit-btn:disabled{opacity:0.6;cursor:not-allowed}
.review-login-prompt{text-align:center;padding:0.75rem 0;font-size:0.83rem;color:var(--text-light)}
.review-login-prompt button{background:none;border:none;color:var(--terracotta);font-weight:600;cursor:pointer;font-family:inherit;font-size:inherit;padding:0}
.contact-gate{background:var(--cream-dark);border-radius:12px;padding:1.25rem 1rem;text-align:center;margin-top:1.5rem}
.contact-gate-msg{font-size:0.9rem;color:var(--text-dark);margin:0 0 1rem;font-weight:500}
.contact-gate-msg strong{color:var(--terracotta)}
.contact-gate-google{display:block;width:100%;padding:0.7rem;border-radius:8px;border:none;background:var(--terracotta);color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.875rem;font-weight:700;cursor:pointer;margin-bottom:0.6rem}
.contact-gate-register{display:block;width:100%;padding:0.65rem;border-radius:8px;border:1.5px solid var(--terracotta);background:transparent;color:var(--terracotta);font-family:'Plus Jakarta Sans',sans-serif;font-size:0.875rem;font-weight:600;cursor:pointer}
.contact-gate-login{font-size:0.8rem;color:var(--text-light);margin:0.75rem 0 0}
.contact-gate-login-link{background:none;border:none;color:var(--terracotta);font-weight:600;cursor:pointer;font-family:inherit;font-size:inherit;padding:0}
.reviews-empty{font-size:0.85rem;color:var(--text-light);text-align:center;padding:0.5rem 0;margin:0}
.member-since-text{font-size:0.75rem;color:var(--text-light)}
.new-vendors-section{background:var(--cream-dark);padding:3rem 2rem;display:none}
.new-vendors-inner{max-width:1100px;margin:0 auto}
.new-vendors-inner .section-header{text-align:left}
.vendor-card{position:relative}
.filter-avail-group{display:flex;flex-direction:column;gap:0.35rem;flex:1;min-width:120px}
.filter-avail-group label{font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-light)}
.filter-avail-group select{border:1.5px solid var(--cream-dark);border-radius:8px;padding:0.55rem 0.75rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.875rem;color:var(--text);background:var(--cream);outline:none;transition:border-color 0.2s}
.filter-avail-group select:focus{border-color:var(--terracotta)}
.toast{position:fixed;bottom:2rem;right:2rem;background:var(--dark);color:var(--white);padding:0.875rem 1.25rem;border-radius:10px;font-size:0.875rem;font-weight:500;z-index:999;transform:translateY(100px);opacity:0;transition:all 0.3s;border-left:4px solid var(--gold);max-width:300px}
.toast.show{transform:translateY(0);opacity:1}
.form-divider{border:none;border-top:1.5px solid var(--cream-dark);margin:1.5rem 0}
@media(max-width:640px){
  /* Nav */
  nav{padding:0 1rem;height:auto;min-height:56px;flex-wrap:nowrap}
  .nav-logo{font-size:1.2rem}
  .nav-mantra{display:none}
  .nav-links{gap:0.4rem}
  .nav-link:not(.nav-btn){display:none}
  .nav-btn{padding:0.38rem 0.7rem;font-size:0.75rem;border-radius:5px}

  /* Hero */
  .hero{padding:2.5rem 1.25rem;min-height:auto}
  .hero::before{width:100%;clip-path:none;opacity:0.25}

  /* Browse */
  .filters{padding:1rem;gap:0.75rem}
  .filter-group{min-width:calc(50% - 0.375rem)}
  .filter-avail-group{min-width:100%}

  /* Forms */
  .signup-page{margin:1.5rem auto;padding:0 1rem 3rem}
  .form-card{padding:1.25rem}
  .form-row{grid-template-columns:1fr}

  /* Role picker */
  .role-cards{grid-template-columns:1fr}

  /* Dashboard */
  .dash-page{padding:1.25rem 1rem 3rem}
  .dash-topbar{gap:0.5rem;margin-bottom:1.25rem;align-items:center}
  #dash-add-listing-btn{padding:0.35rem 0.65rem;font-size:0.75rem}
  .dash-logout-btn{padding:0.38rem 0.7rem;font-size:0.75rem}

  /* Misc */
  .photo-previews{grid-template-columns:repeat(2,1fr)}
  .cat-grid{grid-template-columns:repeat(2,1fr)}
}
