/* OFLOOR.MA */

:root {
  --dark: #1a1a1a;
  --gold: #B8935A;
  --gold-hover: #a07e4a;
  --text: #333;
  --text-light: #777;
  --bg-warm: #f7f5f2;
  --border: #e8e5e0;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; overflow-x: hidden; }

body { color: var(--text); font-size: 15px; line-height: 1.6; }

img { display: block; max-width: 100%; }

/* Scrollbar */
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-thumb { background: #bbb; border-radius: 10px; }

/* Top bar */
.topbar { background: var(--dark); color: #aaa; font-size: 11px; letter-spacing: .04em; }
.topbar a { color: #ccc; }
.topbar a:hover { color: var(--gold); }

/* Nav */
.main-nav {
  background: #fff;
  border-bottom: 1px solid var(--border);
  transition: box-shadow .3s;
}
.main-nav.scrolled { box-shadow: 0 1px 15px rgba(0,0,0,.06); }

.nav-link-item {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #444;
  position: relative;
  padding-bottom: 2px;
}
.nav-link-item::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 0;
  width: 0; height: 1.5px;
  background: var(--gold);
  transition: width .3s;
}
.nav-link-item:hover { color: var(--dark); }
.nav-link-item:hover::after, .nav-link-item.active::after { width: 100%; }
.nav-link-item.active { color: var(--dark); }

/* Hamburger */
.hamburger { cursor: pointer; z-index: 601; position: relative; }
.hamburger span {
  display: block; width: 22px; height: 2px;
  background: #333; margin: 5px 0;
  transition: .4s cubic-bezier(.16,1,.3,1);
  border-radius: 1px;
}
.hamburger.active span:nth-child(1) { transform: rotate(45deg) translate(4px,5px); }
.hamburger.active span:nth-child(2) { opacity: 0; }
.hamburger.active span:nth-child(3) { transform: rotate(-45deg) translate(4px,-5px); }

.mobile-menu { display: none; }

/* Mobile slide panel */
.mob-panel-tw { position: fixed; top: 0; right: 0; width: min(380px,85vw); height: 100%; background: #FAF7F4; z-index: 600; transform: translateX(100%); transition: transform .45s cubic-bezier(.16,1,.3,1); box-shadow: -10px 0 50px rgba(0,0,0,.1); display: flex; flex-direction: column; padding: 5.5rem 2.5rem 2.5rem; overflow-y: auto; }
.mob-panel-tw.open { transform: translateX(0); }
.mob-backdrop-tw { position: fixed; inset: 0; background: rgba(26,26,26,.35); z-index: 599; opacity: 0; pointer-events: none; transition: opacity .35s; }
.mob-backdrop-tw.open { opacity: 1; pointer-events: auto; }
.mob-panel-tw a.mob-link-tw { font-size: 1.05rem; font-weight: 500; color: #1a1a1a; text-decoration: none; padding: 1rem 0; border-bottom: 1px solid rgba(180,170,158,.2); display: block; transition: color .3s, padding-left .3s; }
.mob-panel-tw a.mob-link-tw:hover { color: #B8935A; padding-left: .5rem; }
.mob-panel-tw .mob-cta-tw { margin-top: auto; display: block; text-align: center; padding: 1rem 2rem; background: #B8935A; color: #fff; font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; transition: all .35s; }
.mob-panel-tw .mob-cta-tw:hover { background: #a07e4a; }
.mob-panel-tw .mob-phone-tw { display: flex; align-items: center; gap: .5rem; margin-top: 1.2rem; font-size: .85rem; color: #777; text-decoration: none; padding: .6rem 0; }
.mob-panel-tw .mob-phone-tw:hover { color: #B8935A; }

/* Hero */
.hero {
  position: relative;
  min-height: 75vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: #fff;
}
.hero-bg {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
}
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to right, rgba(0,0,0,.65), rgba(0,0,0,.3));
}
.page-hero { min-height: 45vh; }
@media (max-width: 639px) { .page-hero { min-height: 25vh; } }

/* Buttons */
.btn {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 14px 32px;
  transition: all .3s;
  cursor: pointer;
  text-align: center;
}
.btn-gold { background: var(--gold); color: #fff; }
.btn-gold:hover { background: var(--gold-hover); }
.btn-outline { border: 1.5px solid #fff; color: #fff; }
.btn-outline:hover { background: #fff; color: var(--dark); }
.btn-dark { background: var(--dark); color: #fff; }
.btn-dark:hover { background: #333; }

/* Section */
.section-heading {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--dark);
  text-align: center;
  margin-bottom: 40px;
}
.section-heading::after {
  content: '';
  display: block;
  width: 40px; height: 1.5px;
  background: var(--gold);
  margin: 12px auto 0;
}

/* Product card */
.prod-card {
  position: relative;
  overflow: hidden;
  background: #fff;
}
.prod-card img { transition: transform .6s; }
.prod-card:hover img { transform: scale(1.06); }
.prod-card-label {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 16px;
  background: linear-gradient(transparent, rgba(0,0,0,.6));
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .05em;
}

/* Tab */
.tab-btn {
  font-size: 11px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  padding: 10px 24px; border: 1.5px solid var(--border);
  background: transparent; color: var(--text-light);
  cursor: pointer; transition: .3s;
}
.tab-btn.active { background: var(--dark); color: #fff; border-color: var(--dark); }
.tab-btn:hover:not(.active) { border-color: var(--dark); color: var(--dark); }
.tab-panel { display: none; }
.tab-panel.active { display: grid; }

/* Gallery strip */
.gallery-strip { display: grid; grid-template-columns: repeat(4,1fr); gap: 3px; }
.gallery-strip img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform .5s; }
.gallery-strip a:hover img { transform: scale(1.05); }
@media(max-width:768px) { .gallery-strip { grid-template-columns: repeat(2,1fr); } }

/* Testimonial */
.testimonial {
  border: 1px solid var(--border);
  padding: 32px;
  background: #fff;
}
.stars { color: var(--gold); font-size: 14px; letter-spacing: 2px; }

/* Filter */
.filter-btn {
  font-size: 11px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  padding: 8px 20px; background: transparent;
  border: 1.5px solid var(--border);
  color: var(--text-light); cursor: pointer; transition: .3s;
}
.filter-btn.active { background: var(--dark); color: #fff; border-color: var(--dark); }

/* Reveal */
.reveal { opacity: 0; transform: translateY(25px); transition: .7s ease; }
.reveal.revealed { opacity: 1; transform: translateY(0); }

/* Form */
.form-input {
  width: 100%; padding: 12px 16px;
  border: 1px solid var(--border);
  font-size: 14px; color: var(--text);
  transition: border .3s;
  background: #fff;
}
.form-input:focus { outline: none; border-color: var(--gold); }

/* Pre-footer CTA */
.prefooter-tw { background: #1A1714; padding: clamp(4rem,8vw,7rem) 0; text-align: center; position: relative; overflow: hidden; }
.prefooter-tw::before { content:''; position:absolute; top:-50%; left:50%; transform:translateX(-50%); width:600px; height:600px; background:radial-gradient(circle,rgba(184,147,90,.06) 0%,transparent 70%); pointer-events:none; }
.prefooter-tw .pf-inner { max-width:700px; margin:0 auto; padding:0 1.5rem; position:relative; }
.prefooter-tw h2 { font-family: 'Cormorant Garamond',serif; font-size: clamp(2rem,3.5vw,2.8rem); font-weight: 400; color: #fff; line-height: 1.12; margin-bottom: 1rem; }
.prefooter-tw h2 em { font-style: italic; }
.prefooter-tw p { font-size: 1rem; font-weight: 300; color: rgba(255,255,255,.5); margin-bottom: 2.5rem; line-height: 1.8; }
.prefooter-tw .pf-actions { display:flex; align-items:center; justify-content:center; gap:1.5rem; flex-wrap:wrap; }
.prefooter-tw .pf-btn { display:inline-flex; align-items:center; gap:.7rem; padding:1rem 2.4rem; background:var(--gold); color:#fff; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; transition:all .4s; }
.prefooter-tw .pf-btn:hover { background:var(--gold-hover); transform:translateY(-2px); box-shadow:0 12px 35px rgba(184,147,90,.25); }
.prefooter-tw .pf-wa { display:inline-flex; align-items:center; gap:.5rem; color:rgba(255,255,255,.5); font-size:.85rem; text-decoration:none; transition:color .3s; }
.prefooter-tw .pf-wa:hover { color:#25D366; }

/* Footer */
.footer { background: var(--gold); color: #fff; padding: 5rem 0 0; position: relative; }
.footer::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent 10%,rgba(255,255,255,.3) 50%,transparent 90%); }
.footer a { color: rgba(255,255,255,.7); transition: color .3s; text-decoration: none; }
.footer a:hover { color: #fff; }
.footer h4 { color: rgba(255,255,255,.45); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; margin-bottom: 1.2rem; }
.footer-socials-tw { display:flex; gap:.6rem; margin-top:1.2rem; }
.footer-socials-tw a { width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.6); transition:all .35s; }
.footer-socials-tw a:hover { border-color:#fff; color:#fff; background:rgba(255,255,255,.1); transform:translateY(-2px); }
.footer-contact-tw { display:flex; align-items:flex-start; gap:.7rem; margin-bottom:.9rem; font-size:13px; color:rgba(255,255,255,.7); line-height:1.5; }
.footer-contact-tw svg { width:15px; height:15px; flex-shrink:0; margin-top:2px; color:rgba(255,255,255,.4); }
.footer-divider-tw { height:1px; background:rgba(255,255,255,.15); margin:0; }
.footer-bottom-tw { display:flex; justify-content:space-between; align-items:center; padding:1.8rem 0; font-size:11px; color:rgba(255,255,255,.35); flex-wrap:wrap; gap:.8rem; }
.footer-bottom-tw a { color:rgba(255,255,255,.4); }
.footer-bottom-tw a:hover { color:#fff; }
@media(max-width:768px) { .footer-bottom-tw { flex-direction:column; text-align:center; } }

/* WhatsApp */
.wa-float {
  position: fixed; bottom: 20px; right: 20px; z-index: 999;
  width: 52px; height: 52px; border-radius: 50%;
  background: #25D366; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 3px 10px rgba(37,211,102,.35);
  transition: transform .3s;
}
.wa-float:hover { transform: scale(1.08); }

/* Timeline dot */
.tl-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--gold); flex-shrink: 0;
}

/* Lightbox */
.lightbox { display:none; position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,.92); align-items:center; justify-content:center; cursor:pointer; }
.lightbox.active { display:flex; }
.lightbox img { max-width:90vw; max-height:90vh; object-fit:contain; }

@media print { .no-print { display: none !important; } }
