/* ============================================================
   Vista — shared site stylesheet (assets/css/site.css)
   Loaded from every page. Premium polish — tighter typography,
   layered shadows, slower smoother transitions, generous spacing.
   Brand tokens (teal/sand/sage/Fraunces+Work Sans) unchanged.
   ============================================================ */

:root{
  --teal:#1B4D47;
  --teal-dark:#122E2A;
  --sand:#F7F3EA;
  --sand-deep:#EFE8D9;
  --stone-a:#E9E2D1;
  --stone-b:#D9CFB8;
  --ink:#22271F;
  --ink-soft:#6C7266;
  --line: rgba(27,77,71,0.13);
  --sage:#B7CBB6;

  /* Layered, multi-stop shadows for premium depth */
  --shadow-1:    0 1px 2px rgba(20,40,32,0.05);
  --shadow-card: 0 1px 2px rgba(20,40,32,0.04), 0 4px 10px rgba(20,40,32,0.05), 0 16px 32px -12px rgba(20,40,32,0.10);
  --shadow-soft: 0 1px 2px rgba(20,40,32,0.04), 0 6px 18px rgba(20,40,32,0.06), 0 24px 48px -16px rgba(20,40,32,0.14);
  --shadow-lift: 0 1px 2px rgba(20,40,32,0.04), 0 10px 26px rgba(20,40,32,0.08), 0 32px 64px -16px rgba(20,40,32,0.20);

  /* Refined easing — slow, smooth, calm */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);

  --radius-lg: 22px;
  --radius-md: 14px;
  --radius-sm: 10px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html, body{overflow-x:hidden;}
body{
  margin:0;
  font-family:'Work Sans', sans-serif;
  background:var(--sand);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  position:relative;
}

/* Display typography — tighter, more cinematic, premium weight contrast */
h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  margin:0;
  font-weight:500;
  letter-spacing:-0.025em;
  line-height:1.18;
  color:var(--teal-dark);
}
h1{ font-weight:600; letter-spacing:-0.03em; line-height:1.1; }

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

.eyebrow{
  text-transform:uppercase;
  letter-spacing:0.18em;
  font-size:11.5px;
  font-weight:600;
  color:var(--teal);
}
.icon-svg{stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}

/* WhatsApp button — shared structural class */
.wa-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  white-space:nowrap;
  font-family:'Work Sans', sans-serif;
  font-weight:600;
  border:none;
  border-radius:999px;
  text-decoration:none;
  cursor:pointer;
  box-sizing:border-box;
  max-width:100%;
  font-size:clamp(12.5px, 3.2vw, 14.5px);
  padding:clamp(10px, 2.6vw, 13px) clamp(18px, 4.6vw, 26px);
  transition: transform .4s var(--ease-out), box-shadow .4s var(--ease-out), background .3s ease, filter .3s ease;
}
.wa-btn svg{width:clamp(14px, 3.6vw, 17px);height:clamp(14px, 3.6vw, 17px);flex-shrink:0;}
.wa-btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow-lift); }

/* Decorative skyline background */
.skyline-bg{
  position:absolute;
  left:0;bottom:0;
  width:100%;height:auto;
  display:block;
  color:var(--teal);
  opacity:0.16;
  pointer-events:none;
  z-index:0;
}

/* ===== Header + nav — refined elevation ===== */
header{
  position:sticky;top:0;z-index:40;
  background:rgba(247,243,234,0.92);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid var(--line);
  transition: box-shadow .4s var(--ease-out);
}
.header-inner{
  max-width:1200px;margin:0 auto;padding:18px 36px 18px 18px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.brand{display:flex;align-items:center;gap:12px;}
.brand img{height:38px;width:auto;}
.brand-name{font-family:'Fraunces', serif;font-size:18px;font-weight:500;color:var(--teal-dark);letter-spacing:0.01em;}
.brand-sub{font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-soft);}
nav{display:flex;align-items:center;gap:18px;}

/* Solid teal CTA — slower transition, stronger lift, refined shadow */
.contact-btn{
  background:var(--teal);color:#fff;
  letter-spacing:0.01em;
  box-shadow:var(--shadow-1);
  transition: background .4s var(--ease-out), transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
}
.contact-btn:hover{
  background:var(--teal-dark);
  transform:translateY(-2px);
  box-shadow:var(--shadow-lift);
}

.instagram-btn{
  display:inline-flex;align-items:center;gap:8px;
  background:linear-gradient(45deg,#FEDA75 0%,#FA7E1E 25%,#D62976 50%,#962FBF 75%,#4F5BD5 100%);
  color:#fff;border:none;padding:11px 20px;border-radius:999px;cursor:pointer;
  font-family:'Work Sans', sans-serif;font-size:13.5px;font-weight:600;
  text-decoration:none;
  box-shadow:var(--shadow-1);
  transition: transform .4s var(--ease-out), box-shadow .4s var(--ease-out), filter .3s ease;
}
.instagram-btn:hover{ filter:brightness(1.06); transform:translateY(-2px); box-shadow:var(--shadow-lift); }
.instagram-btn svg{width:16px;height:16px;flex-shrink:0;}
.facebook-btn{
  display:inline-flex;align-items:center;gap:8px;
  background:linear-gradient(45deg,#0165E1 0%,#17A9FD 100%);
  color:#fff;border:none;padding:11px 20px;border-radius:999px;cursor:pointer;
  font-family:'Work Sans', sans-serif;font-size:13.5px;font-weight:600;
  text-decoration:none;
  box-shadow:var(--shadow-1);
  transition: transform .4s var(--ease-out), box-shadow .4s var(--ease-out), filter .3s ease;
}
.facebook-btn:hover{ filter:brightness(1.06); transform:translateY(-2px); box-shadow:var(--shadow-lift); }
.facebook-btn svg{width:16px;height:16px;flex-shrink:0;}

/* ===== Hamburger mobile menu ===== */
.header-left{display:flex;align-items:center;gap:16px;}
.menu-btn{
  display:inline-flex;align-items:center;gap:10px;
  height:46px;flex-shrink:0;
  background:transparent;border:none;
  cursor:pointer;color:var(--teal-dark);padding:0 2px;
  transition:opacity .3s var(--ease-out), transform .3s var(--ease-out);
}
.menu-btn:hover{opacity:0.7;transform:translateY(-1px);}
.menu-btn:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:6px;}
.menu-btn svg{width:27px;height:27px;flex-shrink:0;transition:transform .3s var(--ease-out);}
.menu-btn-label{
  font-family:'Work Sans', sans-serif;
  font-size:16.5px;font-weight:600;
  color:var(--teal-dark);
  letter-spacing:0.02em;
}
.nav-dropdown{
  position:absolute;top:calc(100% + 12px);left:18px;
  width:280px;max-width:75vw;
  background:var(--teal-dark);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-lift);
  padding:14px;
  opacity:0;transform:translateY(-12px);
  pointer-events:none;
  transition:opacity .35s var(--ease-out), transform .35s var(--ease-out);
  z-index:70;
}
.nav-dropdown.open{opacity:1;transform:translateY(0);pointer-events:auto;}
.nav-dropdown-inner{width:100%;display:flex;flex-direction:column;gap:2px;}
.nav-dropdown-item{
  position:relative;display:block;
  padding:18px 22px;border-radius:var(--radius-sm);
  font-family:'Work Sans', sans-serif;font-size:19px;font-weight:500;
  color:#fff;text-decoration:none;
  transition: background .3s var(--ease-out), padding-left .3s var(--ease-out);
}
.nav-dropdown-item:hover{background:rgba(255,255,255,0.10);padding-left:24px;}
.nav-dropdown-item:focus-visible{outline:2px solid #fff;outline-offset:-2px;}
.nav-dropdown-item.active{
  background:rgba(255,255,255,0.12);font-weight:700;padding-left:24px;
}
.nav-dropdown-item.active::before{
  content:"";position:absolute;left:8px;top:12px;bottom:12px;width:3px;
  border-radius:999px;background:#fff;
}

/* ===== Order Now CTA (primary nav header) ===== */
.order-now-btn{
  background: linear-gradient(155deg, var(--teal) 0%, var(--teal-dark) 100%);
  color:#fff;
  font-size:14.5px;
  padding:12px 24px;
  font-weight:600;
  letter-spacing:0.01em;
  border-radius:999px;
  box-shadow: var(--shadow-card);
  transition: background .4s var(--ease-out), transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
}
.order-now-btn:hover{
  background: linear-gradient(155deg, var(--teal-dark) 0%, var(--teal) 100%);
  transform:translateY(-2px);
  box-shadow: var(--shadow-lift);
}
.order-now-btn:focus-visible{
  outline:2px solid var(--teal-dark);
  outline-offset:3px;
}
.order-now-btn svg{ width:16px; height:16px; flex-shrink:0; }

/* ===== Browse Catalogue button (sits under hero logo) ===== */
.catalogue-hero-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  margin:28px auto;
  background:#fff; color:var(--teal-dark);
  border:1.5px solid var(--teal);
  padding:14px 32px; border-radius:999px;
  font-family:'Work Sans', sans-serif;
  font-weight:600; font-size:15px;
  letter-spacing:0.01em;
  text-decoration:none; cursor:pointer;
  box-shadow: var(--shadow-card);
  transition: background .4s var(--ease-out), transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
}
.catalogue-hero-btn:hover{
  background: var(--sand-deep);
  transform: translateY(-2px);
  box-shadow: var(--shadow-lift);
}
.catalogue-hero-btn:focus-visible{
  outline:2px solid var(--teal);
  outline-offset:3px;
}
.catalogue-hero-btn svg{ width:17px; height:17px; flex-shrink:0; }

/* ===== Lightbox / contact popup ===== */
.lightbox-overlay{
  position:fixed;inset:0;z-index:80;
  background:rgba(18,46,42,0.55);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;
  padding:24px;
  opacity:0;pointer-events:none;
  transition:opacity .35s var(--ease-out);
}
.lightbox-overlay.active{opacity:1;pointer-events:auto;}
.lightbox-card{
  background:#fff;
  border-radius:var(--radius-lg); /* slightly tighter */
  max-width:480px;width:100%;
  max-height:90vh;overflow-y:auto;
  box-shadow:var(--shadow-lift);
  transform:translateY(20px) scale(0.97);
  transition:transform .5s var(--ease-out);
  position:relative;
}
.lightbox-overlay.active .lightbox-card{transform:translateY(0) scale(1);}
.lightbox-close{
  position:absolute;top:16px;right:16px;z-index:2;
  width:38px;height:38px;border-radius:999px;
  background:rgba(255,255,255,0.92);border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-1);
  color:var(--teal-dark);
  transition: background .3s var(--ease-out), transform .3s var(--ease-out);
}
.lightbox-close:hover{background:#fff;transform:scale(1.08);}
.lightbox-close svg{width:18px;height:18px;}
.lightbox-body{padding:38px 34px 34px;text-align:center;}
.lightbox-name{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:clamp(24px, 3.2vw, 30px);
  color:var(--teal-dark);
  line-height:1.2;
  letter-spacing:-0.025em;
}
.contact-subtitle{color:var(--ink-soft);font-size:15px;line-height:1.6;margin-top:8px;}
.contact-options{display:flex;flex-direction:column;gap:14px;margin-top:26px;}
.contact-option{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:var(--teal);color:#fff;text-decoration:none;
  border-radius:var(--radius-md);padding:20px 22px;
  box-shadow:var(--shadow-card);
  transition: background .4s var(--ease-out), transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
}
.contact-option:hover{
  background:var(--teal-dark);
  transform:translateY(-2px);
  box-shadow:var(--shadow-lift);
}
.contact-option-label{font-family:'Work Sans', sans-serif;font-weight:700;font-size:16.5px;letter-spacing:0.01em;}
.contact-option-sub{font-family:'Work Sans', sans-serif;font-weight:500;font-size:13px;color:rgba(255,255,255,0.82);margin-top:3px;}

/* ===== Footer — generous breathing room ===== */
footer{
  background:var(--teal-dark);
  color:rgba(255,255,255,0.82);
  padding:80px 28px 36px;
  position:relative;z-index:1;
}
.footer-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.3fr 1fr;gap:48px;}
footer h4{color:#fff;font-size:14.5px;margin-bottom:14px;font-weight:600;font-family:'Work Sans',sans-serif;letter-spacing:0.01em;}
footer .brand img{height:34px;margin-bottom:14px;}
footer p{font-size:13.5px;line-height:1.7;color:rgba(255,255,255,0.62);}
footer .whatsapp-note{
  display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-size:14px;color:#fff;
  background:rgba(255,255,255,0.1);padding:10px 16px;border-radius:var(--radius-sm);text-decoration:none;
  transition: background .3s var(--ease-out);
}
footer .whatsapp-note svg{width:16px;height:16px;}
footer .footer-catalogue-link{
  display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-size:13.5px;color:#fff;
  text-decoration:underline;
  transition: opacity .3s var(--ease-out);
}
footer .footer-catalogue-link:hover{opacity:0.7;}
.foot-bottom{
  max-width:1200px;margin:40px auto 0;border-top:1px solid rgba(255,255,255,0.14);
  padding-top:22px;font-size:12px;color:rgba(255,255,255,0.48);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
}
.legal-strip{
  max-width:1200px;
  margin:18px auto 0;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,0.10);
  text-align:center;
  font-size:11.5px;
  color:rgba(255,255,255,0.55);
  letter-spacing:0.04em;
}
.legal-strip a{
  color:rgba(255,255,255,0.70);
  text-decoration:none;
  transition:color .25s var(--ease-out);
}
.legal-strip a:hover{ color:#fff; text-decoration:underline; }
.legal-strip a:focus-visible{ outline:2px solid #fff; outline-offset:2px; border-radius:2px; }
.legal-strip .sep{ margin:0 8px; opacity:0.4; }

/* ===== Floating contact CTA on mobile ===== */
.fab-contact{
  position:fixed;bottom:20px;left:50%;transform:translateX(-50%);
  background:var(--teal-dark);color:#fff;
  box-shadow:var(--shadow-lift);
  z-index:45;
}

/* ===== Skip link ===== */
.skip-link{
  position:absolute;
  top:-100px;
  left:16px;
  z-index:999;
  background:var(--teal-dark);
  color:#fff;
  padding:12px 20px;
  border-radius:var(--radius-sm);
  font-weight:600;
  text-decoration:none;
  transition:top .3s var(--ease-out);
}
.skip-link:focus{ top:16px; outline:2px solid var(--teal); outline-offset:2px; }

/* ===== Mobile (≤600px) — shared refinements ===== */
@media(max-width:600px){
  .header-inner{padding:14px 18px 14px 12px;gap:12px;flex-wrap:wrap;}
  nav{flex-wrap:wrap;justify-content:flex-end;width:100%;gap:8px;}
  .brand-sub{display:none;}
  .brand img{height:32px;}
  .brand-name{font-size:16px;}
  .instagram-btn, .facebook-btn{
    padding:8px 13px;font-size:12px;gap:5px;
  }
  .instagram-btn svg, .facebook-btn svg{width:14px;height:14px;}
  .menu-btn{gap:7px;height:42px;}
  .menu-btn svg{width:23px;height:23px;}
  .menu-btn-label{font-size:15px;}
  .nav-dropdown{left:12px;width:260px;}
  .nav-dropdown-item{font-size:17.5px;padding:16px 18px;}
  .footer-inner{grid-template-columns:1fr;gap:32px;}
  .footer{padding:64px 22px 28px;}
  .lightbox-body{padding:30px 22px 28px;}
  .lightbox-card{border-radius:18px;}
  .catalogue-hero-btn{
    margin:14px auto; padding:12px 24px; font-size:14px;
  }
  .legal-strip{ font-size:12px; padding-top:16px; }
}

@media(min-width:860px){ .fab-contact{display:none;} }

/* ===== Reduced motion opt-out ===== */
@media(prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
