/* ============================================================
   URBAN CARPET FLOORING · Sand & Sage · shared system
   v1.0 · load site-wide via the enqueue snippet.
   Page-specific rules stay inline under .site-{page}.
   Fonts (Fraunces + Inter) are enqueued separately.
   ============================================================ */

/* ---------- Tokens ---------- */
:root{
  /* Surfaces */
  --ucf-sand:#F4EDE1;
  --ucf-sand-alt:#EBE1D0;
  --ucf-white:#FFFFFF;
  --ucf-dark:#241F19;

  /* Brand */
  --ucf-clay:#C2703D;
  --ucf-clay-deep:#A85E30;
  --ucf-sage:#7E9171;
  --ucf-sage-deep:#5F7459;

  /* Text */
  --ucf-ink:#2A241E;
  --ucf-ink-soft:#5C5247;
  --ucf-on-dark:#EFE7D8;
  --ucf-on-dark-soft:#BCAE99;

  /* Lines + utility */
  --ucf-border:#E2D8C6;
  --ucf-whatsapp:#1FA855;

  /* Type */
  --ucf-font-display:'Fraunces',Georgia,'Times New Roman',serif;
  --ucf-font-body:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;

  /* Radius + elevation */
  --ucf-radius:12px;
  --ucf-radius-sm:8px;
  --ucf-shadow:0 6px 24px rgba(42,36,30,.08);
  --ucf-shadow-lg:0 14px 40px rgba(42,36,30,.12);

  /* Rhythm */
  --ucf-section:clamp(3rem,7vw,6rem);
  --ucf-gap:clamp(1.25rem,3vw,2rem);
  --ucf-maxw:1180px;
}

/* ---------- Reset (light touch, Elementor-safe) ---------- */
.ucf-wrap *,.ucf-card *,.ucf-faq *{box-sizing:border-box;}
.ucf-card img,.ucf-hero__art img{max-width:100%;display:block;}

/* ---------- Layout helpers ---------- */
.ucf-wrap{max-width:var(--ucf-maxw);margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2rem);}
.ucf-section{padding-block:var(--ucf-section);}
.ucf-section--alt{background:var(--ucf-sand-alt);}
.ucf-center{text-align:center;max-width:820px;margin-inline:auto;} /* margin-inline:auto guards centred blocks under RTL */

/* ---------- Typography ---------- */
.ucf-display{font-family:var(--ucf-font-display);font-weight:500;
  font-size:clamp(2.1rem,5vw,3.4rem);line-height:1.06;letter-spacing:-.01em;color:var(--ucf-ink);margin:0;}
.ucf-h2{font-family:var(--ucf-font-display);font-weight:500;
  font-size:clamp(1.6rem,3.6vw,2.3rem);line-height:1.16;color:var(--ucf-ink);margin:0;}
.ucf-h3{font-family:var(--ucf-font-display);font-weight:500;
  font-size:clamp(1.25rem,2.4vw,1.55rem);line-height:1.25;color:var(--ucf-ink);margin:0;}
.ucf-lead{font-size:clamp(1.05rem,1.6vw,1.2rem);line-height:1.7;color:var(--ucf-ink-soft);margin:0;}
.ucf-body{font-size:1rem;line-height:1.75;color:var(--ucf-ink-soft);}
.ucf-eyebrow{font-size:.78rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ucf-clay);display:inline-block;margin:0 0 .6rem;}
.ucf-caption{font-size:.85rem;color:var(--ucf-ink-soft);}

/* ---------- Buttons ---------- */
.ucf-btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--ucf-font-body);
  font-weight:600;font-size:.98rem;line-height:1;padding:.85rem 1.55rem;border-radius:var(--ucf-radius-sm);
  border:1.5px solid transparent;cursor:pointer;text-decoration:none;
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .12s ease;}
.ucf-btn:active{transform:translateY(1px);}
.ucf-btn--primary{background:var(--ucf-clay);color:#fff;}
.ucf-btn--primary:hover{background:var(--ucf-clay-deep);}
.ucf-btn--ghost{background:transparent;color:var(--ucf-ink);border-color:var(--ucf-ink);}
.ucf-btn--ghost:hover{background:var(--ucf-ink);color:var(--ucf-sand);}
.ucf-btn--grass{background:var(--ucf-sage-deep);color:#fff;}
.ucf-btn--grass:hover{background:#52663f;}
.ucf-btn--wa{background:var(--ucf-whatsapp);color:#fff;}
.ucf-btn--wa:hover{filter:brightness(.93);}
.ucf-btn:focus-visible{outline:2px solid var(--ucf-clay);outline-offset:3px;}

/* ---------- Signature: woven selvedge ---------- */
.ucf-selvedge{height:6px;width:100%;border-radius:999px;opacity:.85;
  background:repeating-linear-gradient(90deg,
    var(--ucf-clay) 0 7px, transparent 7px 10px,
    var(--ucf-sage) 10px 17px, transparent 17px 20px);}

/* ---------- Service cards (image-on-top, bound edge) ---------- */
.ucf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--ucf-gap);}
.ucf-card{background:var(--ucf-white);border:1px solid var(--ucf-border);border-radius:var(--ucf-radius);
  overflow:hidden;box-shadow:var(--ucf-shadow);display:flex;flex-direction:column;
  transition:transform .2s ease,box-shadow .2s ease;}
.ucf-card:hover{transform:translateY(-4px);box-shadow:var(--ucf-shadow-lg);}
.ucf-card__media{aspect-ratio:4/3;border-bottom:3px solid var(--ucf-clay);overflow:hidden;position:relative;}
.ucf-card__media img{width:100%;height:100%;object-fit:cover;}
.ucf-card--grass .ucf-card__media{border-bottom-color:var(--ucf-sage);}
.ucf-card__body{padding:1.25rem 1.35rem 1.6rem;}
.ucf-card__body p{margin:.5rem 0 1.1rem;}

/* ---------- Trust / stat strip ---------- */
.ucf-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--ucf-gap);}
.ucf-stat__num{font-family:var(--ucf-font-display);font-weight:600;
  font-size:clamp(2rem,4vw,2.8rem);color:var(--ucf-clay);line-height:1;}
.ucf-stat__label{font-size:.92rem;color:var(--ucf-ink-soft);margin-top:.4rem;}

/* ---------- FAQ (native details, no JavaScript) ---------- */
.ucf-faq details{border:1px solid var(--ucf-border);border-radius:var(--ucf-radius-sm);
  background:var(--ucf-white);margin-bottom:.75rem;overflow:hidden;}
.ucf-faq summary{cursor:pointer;list-style:none;padding:1.05rem 1.2rem;font-weight:600;
  color:var(--ucf-ink);display:flex;justify-content:space-between;gap:1rem;align-items:center;}
.ucf-faq summary::-webkit-details-marker{display:none;}
.ucf-faq summary::after{content:"+";color:var(--ucf-clay);font-size:1.4rem;line-height:1;font-weight:400;}
.ucf-faq details[open] summary::after{content:"\2013";} /* en-dash marker when open */
.ucf-faq details[open] summary{border-bottom:1px solid var(--ucf-border);}
.ucf-faq summary:focus-visible{outline:2px solid var(--ucf-clay);outline-offset:-2px;}
.ucf-faq__a{padding:1rem 1.2rem;color:var(--ucf-ink-soft);line-height:1.7;}

/* ---------- Dark CTA band ---------- */
.ucf-cta{background:var(--ucf-dark);color:var(--ucf-on-dark);border-radius:16px;
  padding:clamp(2.2rem,5vw,3.6rem);text-align:center;}
.ucf-cta .ucf-h2{color:#fff;}
.ucf-cta p{color:var(--ucf-on-dark-soft);max-width:560px;margin:.9rem auto 1.6rem;}
.ucf-cta__btns{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;}

/* ---------- Hero pattern ---------- */
.ucf-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,4vw,3rem);align-items:center;}
.ucf-hero__art{aspect-ratio:5/4;border-radius:16px;box-shadow:var(--ucf-shadow-lg);
  border:6px solid var(--ucf-white);overflow:hidden;}
.ucf-hero__btns{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.6rem;}
@media (max-width:760px){.ucf-hero{grid-template-columns:1fr;}}

/* ---------- Motion preference ---------- */
@media (prefers-reduced-motion:reduce){
  .ucf-card,.ucf-btn{transition:none;}
  .ucf-card:hover{transform:none;}
}
