:root{
  --taupe-900:#524a46;
  --taupe-800:#5b524e;
  --taupe-100:#efe7de;
  --paper:#fbf8f4;
  --card:#fffdfb;
  --accent:#d2bda9;
  --shadow:0 10px 30px rgba(0,0,0,.08);

  /* mobile container padding */
  --container-pad:16px;
}

/* Smooth scroll + anchor offset so header never hides content */
html{scroll-behavior:smooth}
#book{scroll-margin-top:80px}

/* Optional “locked booking” overlay */
.booking-embed[data-locked] .container{position:relative}
.booking-embed[data-locked] .container::after{
  content:"Please complete the Intake to unlock booking.";
  position:absolute; inset:0; display:grid; place-items:center;
  background:rgba(255,255,255,.85); backdrop-filter:blur(3px);
  color:#524a46; font-weight:800; text-align:center; border-radius:12px;
}

/* Base */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:var(--paper); color:var(--taupe-800);
  font-family:"Manrope",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  line-height:1.6;
}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif; color:var(--taupe-900); margin:0 0 .5rem}
.container{width:min(1120px,92%);margin:0 auto;padding-left:var(--container-pad);padding-right:var(--container-pad)}

/* Header */
.site-header{background:linear-gradient(#efe6db,#e9dfd3); border-bottom:1px solid #eadfd4}
.header-inner{display:flex;justify-content:space-between;align-items:center;padding:14px 0;gap:12px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.7rem}

/* Vase logo PNG */
.vase-logo{width:34px;height:44px;display:inline-block;background:url('logo-vase.png') no-repeat center/contain;vertical-align:middle;margin-right:8px}
@media (min-width:900px){.vase-logo{width:40px;height:52px}}

.brand-name{font-family:"Playfair Display",serif;font-weight:600;letter-spacing:.2px;color:var(--taupe-900)}
.main-nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.main-nav a{color:var(--taupe-900);text-decoration:none;font-weight:600;opacity:.95;padding:8px 10px;border-radius:999px}

/* Buttons */
.btn{display:inline-block;padding:.7rem 1rem;border-radius:999px;font-weight:700;cursor:pointer;text-decoration:none}
.btn-outline{border:1.5px solid var(--taupe-900);color:var(--taupe-900);background:transparent}
.btn-solid{background:var(--accent);color:#2a2624;border:0}
@media (max-width:640px){.btn{width:100%}}

/* Top-right auth button */
.btn-auth{
  padding:.55rem .9rem;border:1.5px solid var(--taupe-900);color:var(--taupe-900);
  background:#fff;border-radius:999px;font-weight:800;text-decoration:none;white-space:nowrap
}
.btn-auth:hover{background:#f6f2ed}

/* Quote dropdown (used in hero + intake pages) */
.quote-dropdown{position:relative;display:inline-block}
.quote-dropdown .quote-menu{
  position:absolute;right:0;top:110%;background:#fff;border:1px solid #e3d9ce;border-radius:12px;
  box-shadow:0 12px 28px rgba(0,0,0,.12);display:none;min-width:220px;padding:8px;z-index:1000;
  max-width:92vw;
}
.quote-dropdown.open .quote-menu{display:block}
.quote-dropdown .quote-menu a{display:block;padding:10px 12px;text-decoration:none;color:var(--taupe-900);border-radius:10px;font-weight:600}
.quote-dropdown .quote-menu a:hover{background:#f6f2ed}

/* Hero */
.hero{position:relative;isolation:isolate}
.hero-media{position:relative;height:56vh;min-height:420px;overflow:hidden}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.20),rgba(0,0,0,.45))}
.hero-content{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#fff;padding:0 var(--container-pad)}
.script-kicker{font-family:"Allura",cursive;font-size:2rem}
.hero-title{font-size:3rem;margin:.5rem 0}
.hero-sub{margin:0 0 1.1rem}
@media (max-width:1000px){.hero-title{font-size:2.4rem}}

/* Bold hero “Get Your Quote” */
.btn-quote{
  display:inline-block;padding:.9rem 1.25rem;border-radius:999px;font-weight:800;letter-spacing:.2px;border:2px solid #fff;
  background:rgba(255,255,255,.08);color:#fff;backdrop-filter:blur(6px)
}
.btn-quote:hover{background:rgba(255,255,255,.16)}

/* Hero dropdown position */
.hero .quote-dropdown{position:relative;display:inline-block;margin-top:.2rem}
.hero .quote-menu{
  position:absolute;left:0;top:calc(100% + 8px);background:#fff;border:1px solid #e3d9ce;border-radius:12px;
  box-shadow:0 12px 28px rgba(0,0,0,.12);display:none;min-width:240px;padding:8px;z-index:1000;max-width:92vw
}
.hero .quote-dropdown.open .quote-menu{display:block}
.hero .quote-menu a{display:block;padding:10px 12px;text-decoration:none;color:var(--taupe-900);border-radius:10px;font-weight:700}
.hero .quote-menu a:hover{background:#f6f2ed}

/* Sections */
.section{padding:56px 0}

/* Services */
.services{background:#f3ece4}
.cards{display:grid;gap:22px}

/* Phones: 2-up grid (so cards don’t stack in one tall column) */
@media (max-width:640px){
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Tablets: 2 or 3 depending on space */
@media (min-width:641px) and (max-width:899px){
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Desktop: 3 on top, 2 below (left-aligned) */
@media (min-width:900px){
  .cards{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
  }
  /* First row: 1–3 */
  .cards > *:nth-child(1){grid-column:1;grid-row:1}
  .cards > *:nth-child(2){grid-column:2;grid-row:1}
  .cards > *:nth-child(3){grid-column:3;grid-row:1}
  /* Second row: 4–5 side-by-side, leaves col 3 empty if only 4 items */
  .cards > *:nth-child(4){grid-column:1;grid-row:2}
  .cards > *:nth-child(5){grid-column:2;grid-row:2}
  .cards::after{content:"";grid-column:3;grid-row:2}
}

.card{
  background:var(--card);border-radius:14px;padding:22px;text-align:center;box-shadow:var(--shadow);
  transition:transform .15s ease, box-shadow .15s ease
}
.card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,0,0,.10)}
.card h3{margin:.4rem 0}
.service-icon{font-size:42px;color:var(--taupe-900);margin-bottom:12px;display:block}

/* About */
.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:center}
.about-photo img{width:100%;border-radius:16px;box-shadow:var(--shadow)}
@media (max-width:1000px){.about-grid{grid-template-columns:1fr}}

/* Contact */
.contact-strip{background:linear-gradient(#f5efe8,#efe6db)}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:28px}
.contact-form,.contact-details{background:#fff;border-radius:16px;padding:20px;box-shadow:var(--shadow)}
label{display:grid;gap:6px;font-weight:600}
input,textarea,select{border:1px solid #e3d9ce;border-radius:12px;padding:.75rem;background:#fffdfb;color:var(--taupe-900)}
.status{opacity:.9}
@media (max-width:1000px){.contact-grid{grid-template-columns:1fr}}

/* Embedded booking iframe */
.booking-embed{background:#fffdfb}
.booking-embed .microcopy{margin:0 0 12px}
.booking-embed iframe{width:100%;min-height:980px;border:0;border-radius:12px;box-shadow:var(--shadow);background:#fff}
iframe{max-width:100%}

/* Chat stays above iframes */
#ftt-chat-launcher,#ftt-chat{z-index:9999}

/* Chat styles (panel sizing is handled by component block) */
#ftt-chat-launcher{
  position:fixed;right:20px;bottom:20px;width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:#0f172a;color:#fff;font-size:22px;
  box-shadow:0 10px 25px rgba(0,0,0,.25);cursor:pointer;z-index:9999
}
#ftt-chat{
  position:fixed;right:20px;bottom:90px;width:360px;max-width:90vw;background:#fff;border:1px solid #eee;border-radius:16px;overflow:hidden;
  box-shadow:0 20px 50px rgba(0,0,0,.25);z-index:9999;font-family:system-ui,sans-serif
}
.ftt-chat-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#0f172a;color:#fff}
.ftt-title{font-weight:700}
.ftt-subtitle{font-size:12px;opacity:.8}
.ftt-close{background:transparent;border:none;color:#fff;font-size:24px;cursor:pointer}
.ftt-thread{max-height:50vh;overflow:auto;padding:12px;background:#f8fafc;display:flex;flex-direction:column;gap:10px}
.ftt-bubble{max-width:85%;padding:10px 12px;border-radius:12px;line-height:1.35;font-size:14px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.ftt-bubble.bot{background:#fff;border:1px solid #eef2f7;align-self:flex-start}
.ftt-bubble.me{background:#0ea5e9;color:#fff;align-self:flex-end}
.ftt-inputbar{display:flex;gap:8px;padding:10px;border-top:1px solid #eef2f7;background:#fff}
#ftt-input{flex:1;border:1px solid #e5e7eb;border-radius:10px;padding:10px;font-size:14px}
.ftt-send{background:#0f172a;color:#fff;border:none;border-radius:10px;padding:0 14px;cursor:pointer}
.ftt-quick{display:flex;gap:6px;padding:8px 10px;flex-wrap:wrap;background:#fff;border-top:1px solid #eef2f7}
.ftt-quick button{font-size:12px;border:1px solid #e5e7eb;background:#fff;border-radius:999px;padding:6px 10px;cursor:pointer}
@media (max-width:480px){#ftt-chat{right:10px;bottom:80px;width:92vw}}
@media (max-width:640px){
  #ftt-chat{right:0;left:0;bottom:0;width:100vw;height:70vh;border-radius:16px 16px 0 0}
  #ftt-chat-launcher{right:12px;bottom:12px}
}

/* Intake layout helpers */
.grid{display:grid;gap:12px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid-1{display:grid;gap:14px}
@media (max-width:900px){
  .grid-2{grid-template-columns:1fr} /* forms stack */
}
@media (max-width:640px){
  .grid{grid-template-columns:1fr}
}

/* Intake wrapper */
.intake-wrap{
  background:#fff;border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.06);padding:22px;
  width:min(920px,92%);margin:28px auto 60px;
}
@media (max-width:640px){
  .intake-title{font-size:1.5rem}
  .intake-script{font-size:1.35rem}
}
.intake-wrap label{display:grid;gap:6px;font-weight:600}
.intake-wrap input,.intake-wrap select,.intake-wrap textarea{
  appearance:none;width:100%;padding:.85rem .9rem;border:1px solid #e3d9ce;border-radius:12px;background:#fffdfb;font-size:16px
}

/* === Consent checkbox fixes === */
.intake-wrap input[type="checkbox"]{
  appearance: auto;
  -webkit-appearance: checkbox;
  width: 1.15rem; height: 1.15rem; min-width: 1.15rem;
  padding: 0; margin: .2rem .6rem 0 0;
  border: 0; border-radius: 4px; background: transparent; box-shadow: none;
  display: inline-block; vertical-align: top;
  accent-color: #bfa893;
}
.intake-wrap fieldset label span{ line-height: 1.35; }
.intake-wrap input[type="checkbox"]:focus-visible{
  outline: 2px solid #bfa893; outline-offset: 2px;
}

.submit-row{display:grid;gap:10px}
#estimateCleaning,#estimateOrganizing,#estimateDecor,#estimateHoliday{font-size:1rem}

/* Contractor/Admin portal */
.portal{width:min(1100px,94%);margin:24px auto 60px}
.topbar{
  display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;padding:12px 16px;border-radius:14px;
  box-shadow:var(--shadow);flex-wrap:wrap
}
.topbar .right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.tabs{display:flex;gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.tabs::-webkit-scrollbar{display:none}
.filters{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.chip{white-space:nowrap;border:1px solid #e3d9ce;background:#fffdfb;color:#2e2a27;border-radius:999px;padding:.35rem .7rem;cursor:pointer;font-weight:700;font-size:.9rem}
.chip.active{background:#2e2a27;color:#fff;border-color:#2e2a27}

.grid.portal-cards,
.grid{display:grid;gap:12px}
.grid.portal-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.card{
  background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:14px;display:flex;flex-direction:column;gap:8px
}
.meta{display:flex;gap:8px;flex-wrap:wrap;font-size:.95rem;opacity:.9}
.rolepill{font-size:.8rem;padding:.2rem .6rem;border-radius:999px;border:1px solid #e3d9ce;background:#fffdfb}

/* Footer */
.site-footer{background:#efe6db;border-top:1px solid #e2d6c9}
.site-footer p{margin:0;padding:16px 0;text-align:center;color:var(--taupe-900);font-weight:600}

/* === Home > Services: 2x2 on mobile, 4 in a row on desktop === */
.page-home .services .cards{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr)); /* phones: 2 across */
  gap:16px;
  width:min(1200px,95%);
  margin-inline:auto;
}

/* tablets: 3 across (optional) */
@media (min-width: 920px){
  .page-home .services .cards{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}

/* desktop: 4 across */
@media (min-width: 1100px){
  .page-home .services .cards{ grid-template-columns:repeat(4, 1fr); }
}

/* neutralize old nth-child placements that were forcing the staggered rows */
.page-home .services .cards > *{
  grid-column:auto !important;
  grid-row:auto !important;
}
.page-home .services .cards::after{ content:none !important; }



