/* ── ESTRA DESIGN — SHARED STYLES ── */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Tenor+Sans&display=swap');

:root {
  --ink:      #0c0b09;
  --ink2:     #161410;
  --ink3:     #1e1c18;
  --gold:     #c9a96e;
  --gold2:    #e2c48a;
  --gold-dim: #7a5e35;
  --ivory:    #f5f0e8;
  --stone:    #6b6259;
  --border:   rgba(201,169,110,.18);
  --border2:  rgba(201,169,110,.08);
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }

body {
  font-family:'Tenor Sans',sans-serif;
  background:var(--ink);
  color:var(--ivory);
  overflow-x:hidden;
  cursor:none;
}

::-webkit-scrollbar { width:2px; }
::-webkit-scrollbar-track { background:var(--ink); }
::-webkit-scrollbar-thumb { background:var(--gold-dim); }

/* GRAIN */
body::after {
  content:''; position:fixed; inset:0; z-index:9000; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");
  opacity:.028; mix-blend-mode:overlay;
}

/* CURSOR */
.cur { position:fixed; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); }
#cur-dot { width:5px; height:5px; background:var(--gold); border-radius:50%; transition:width .25s,height .25s; }
#cur-ring { width:40px; height:40px; border:1px solid rgba(201,169,110,.5); border-radius:50%; transition:all .08s linear; }
.cur-expand #cur-dot  { width:10px; height:10px; }
.cur-expand #cur-ring { width:60px; height:60px; border-color:var(--gold); }

/* ── NAV ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:500;
  display:flex; align-items:center; justify-content:space-between;
  padding:30px 64px; transition:all .4s;
  border-bottom:1px solid transparent;
}
nav.scrolled {
  padding:18px 64px;
  background:rgba(12,11,9,.92);
  backdrop-filter:blur(20px);
  border-color:var(--border2);
}
.nav-logo { display:flex; align-items:center; gap:12px; text-decoration:none; }
.logo-e {
  width:36px; height:36px; border:1px solid var(--gold);
  display:flex; align-items:center; justify-content:center;
  font-family:'Cormorant Garamond',serif; font-size:18px; color:var(--gold); flex-shrink:0;
}
.logo-wm { font-family:'Cormorant Garamond',serif; font-size:16px; letter-spacing:4px; text-transform:uppercase; color:var(--ivory); }
.nav-links { display:flex; gap:36px; list-style:none; }
.nav-links > li { position:relative; }
.nav-links a { font-size:10px; letter-spacing:3px; text-transform:uppercase; color:rgba(245,240,232,.5); text-decoration:none; transition:color .3s; display:block; padding:4px 0; }
.nav-links a:hover, .nav-links a.active { color:var(--gold); }
.nav-links li:hover > a { color:var(--gold); }

/* DROPDOWN */
.dropdown {
  display:none; position:absolute; top:calc(100% + 18px); left:50%;
  transform:translateX(-50%); background:var(--ink2);
  border:1px solid var(--border2); min-width:210px; z-index:600; padding:8px 0;
}
.nav-links li:hover .dropdown { display:flex; flex-direction:column; }
/* Bridge the hover gap so mouse doesn't lose the dropdown */
.nav-links li::after { content:''; position:absolute; top:100%; left:0; right:0; height:20px; }
.dropdown a { padding:12px 24px; font-size:10px; letter-spacing:2px; color:rgba(245,240,232,.45); border:none; transition:all .2s; }
.dropdown a:hover { color:var(--gold); background:rgba(201,169,110,.05); padding-left:32px; }

.nav-cta {
  font-size:10px; letter-spacing:3px; text-transform:uppercase;
  color:var(--gold); text-decoration:none; padding:11px 24px;
  border:1px solid var(--border); transition:all .3s; white-space:nowrap;
}
.nav-cta:hover { background:var(--gold); color:var(--ink); }

/* ── FOOTER ── */
footer { background:var(--ink); border-top:1px solid var(--border2); padding:96px 64px 48px; }
.footer-i { max-width:1300px; margin:0 auto; }
.footer-top { display:grid; grid-template-columns:1.8fr 1fr 1fr 1fr; gap:64px; padding-bottom:72px; border-bottom:1px solid var(--border2); margin-bottom:48px; }
.footer-brand-name { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:300; letter-spacing:4px; text-transform:uppercase; color:var(--ivory); margin-bottom:18px; }
.footer-brand-name span { color:var(--gold); }
.footer-tagline { font-size:13px; line-height:1.9; color:var(--stone); max-width:280px; margin-bottom:28px; }
.footer-socials { display:flex; gap:24px; }
.footer-socials a { font-size:10px; letter-spacing:2.5px; text-transform:uppercase; color:rgba(245,240,232,.3); text-decoration:none; transition:color .2s; }
.footer-socials a:hover { color:var(--gold); }
.fc h5 { font-size:9px; letter-spacing:3.5px; text-transform:uppercase; color:var(--gold-dim); margin-bottom:24px; }
.fc ul { list-style:none; display:flex; flex-direction:column; gap:13px; }
.fc a { font-size:13px; color:rgba(245,240,232,.4); text-decoration:none; transition:color .2s; }
.fc a:hover { color:var(--ivory); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; font-size:11px; color:rgba(245,240,232,.2); flex-wrap:wrap; gap:12px; letter-spacing:1px; }

/* ── SHARED COMPONENTS ── */
.eyebrow { display:flex; align-items:center; gap:14px; font-size:10px; letter-spacing:4px; text-transform:uppercase; color:var(--gold); margin-bottom:24px; }
.eyebrow-line { width:28px; height:1px; background:var(--gold); flex-shrink:0; }
.sec-h { font-family:'Cormorant Garamond',serif; font-size:clamp(38px,4.5vw,68px); font-weight:300; line-height:1.06; letter-spacing:-2px; color:var(--ivory); }
.sec-h--sm { font-size:clamp(28px,3vw,46px); letter-spacing:-1.5px; }
.sec-h em { font-style:italic; color:var(--gold2); }
.sec-body { font-size:14px; line-height:1.9; color:var(--stone); }

.btn-gold { display:inline-block; background:var(--gold); color:var(--ink); font-family:'Tenor Sans',sans-serif; font-size:10px; letter-spacing:3px; text-transform:uppercase; padding:16px 38px; text-decoration:none; transition:background .3s; border:none; cursor:none; }
.btn-gold:hover { background:var(--gold2); }
.btn-outline { display:inline-block; background:transparent; color:var(--ivory); font-family:'Tenor Sans',sans-serif; font-size:10px; letter-spacing:3px; text-transform:uppercase; padding:15px 38px; text-decoration:none; border:1px solid var(--border); transition:all .3s; cursor:none; }
.btn-outline:hover { border-color:var(--gold); color:var(--gold); }
.btn-dark { display:inline-block; background:var(--ink); color:var(--ivory); font-family:'Tenor Sans',sans-serif; font-size:10px; letter-spacing:3px; text-transform:uppercase; padding:16px 38px; text-decoration:none; transition:background .3s; border:1px solid var(--border2); cursor:none; }
.btn-dark:hover { background:var(--ink2); border-color:var(--border); }

/* PAGE HERO */
.page-hero { padding:200px 64px 100px; background:var(--ink2); position:relative; overflow:hidden; }
.page-hero::before { content:''; position:absolute; bottom:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--gold-dim),transparent); }
.ph-inner { max-width:1300px; margin:0 auto; }
.ph-tag { font-size:10px; letter-spacing:4px; text-transform:uppercase; color:var(--gold); margin-bottom:20px; display:flex; align-items:center; gap:12px; }
.ph-tag::before { content:''; width:24px; height:1px; background:var(--gold); }
.ph-h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(48px,6vw,88px); font-weight:300; line-height:.98; letter-spacing:-3px; color:var(--ivory); }
.ph-h1 em { font-style:italic; color:var(--gold2); -webkit-text-stroke:0; }
.ph-sub { font-size:15px; line-height:1.85; color:var(--stone); max-width:520px; margin-top:24px; }

/* GOLD STRIP */
.gstrip { background:var(--gold); height:52px; overflow:hidden; display:flex; align-items:center; filter:brightness(.88); }
.gstrip-track { display:flex; white-space:nowrap; animation:stripScroll 30s linear infinite; }
.gstrip-item { display:inline-flex; align-items:center; gap:32px; padding:0 32px; font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--ink); opacity:.65; }
.gstrip-dot { width:3px; height:3px; background:var(--ink); border-radius:50%; opacity:.4; }

/* PRODUCT CARD */
.prod-card { display:flex; flex-direction:column; cursor:none; transition:transform .4s; text-decoration:none; }
.prod-card:hover { transform:translateY(-4px); }
.prod-img { position:relative; overflow:hidden; background:var(--ink2); }
.prod-img img { width:100%; aspect-ratio:1; object-fit:cover; filter:brightness(.85) saturate(.75); transition:filter .6s,transform .6s; }
.prod-card:hover .prod-img img { filter:brightness(1) saturate(1); transform:scale(1.06); }
.prod-overlay { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(12,11,9,.5); opacity:0; transition:opacity .3s; }
.prod-card:hover .prod-overlay { opacity:1; }
.prod-view-btn { font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--ivory); border:1px solid rgba(245,240,232,.4); padding:11px 24px; }
.prod-info { padding:16px 0 0; }
.prod-name { font-family:'Cormorant Garamond',serif; font-size:18px; font-weight:400; color:var(--ivory); margin-bottom:5px; }
.prod-price { font-size:12px; letter-spacing:1.5px; color:var(--gold); }
.prod-tag { font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--stone); margin-bottom:5px; }

/* FORM */
.form-wrap { display:flex; flex-direction:column; gap:16px; }
.form-row-2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.fgroup { display:flex; flex-direction:column; gap:8px; }
.flabel { font-size:9px; letter-spacing:3px; text-transform:uppercase; color:var(--stone); }
.finput,.fsel,.ftextarea {
  background:rgba(255,255,255,.03); border:1px solid var(--border2);
  padding:14px 18px; color:var(--ivory); font-family:'Tenor Sans',sans-serif;
  font-size:13px; width:100%; outline:none; transition:border-color .3s,box-shadow .3s;
}
.finput:focus,.fsel:focus,.ftextarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,169,110,.08); }
.ftextarea { height:140px; resize:none; }
.fsel option { background:var(--ink2); color:var(--ivory); }
.finput::placeholder { color:rgba(245,240,232,.2); }
.ftextarea::placeholder { color:rgba(245,240,232,.2); }

/* SECTION PAD */
.sec { padding:100px 64px; }
.sec-inner { max-width:1300px; margin:0 auto; }

/* DIVIDER */
.gold-div { width:40px; height:1px; background:var(--gold); margin:32px 0; }

/* TESTIMONIAL CARD */
.tcard { background:var(--ink2); padding:48px 40px; transition:background .4s; position:relative; overflow:hidden; }
.tcard::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,var(--gold),transparent); transform:scaleX(0); transform-origin:left; transition:transform .5s; }
.tcard:hover { background:var(--ink3); }
.tcard:hover::before { transform:scaleX(1); }
.tcard-qm { font-family:'Cormorant Garamond',serif; font-size:72px; line-height:.7; color:var(--gold); opacity:.3; margin-bottom:20px; display:block; }
.tcard-body { font-family:'Cormorant Garamond',serif; font-size:18px; font-style:italic; font-weight:300; line-height:1.8; color:rgba(245,240,232,.85); margin-bottom:32px; }
.tcard-author { display:flex; align-items:center; gap:14px; }
.tcard-av { width:40px; height:40px; border-radius:50%; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-size:14px; color:var(--gold); flex-shrink:0; }
.tcard-name { font-size:13px; color:var(--ivory); }
.tcard-proj { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--stone); margin-top:3px; }

/* ANIMATIONS */
@keyframes stripScroll { from{transform:translateX(0);} to{transform:translateX(-50%);} }
@keyframes riseUp { from{opacity:0;transform:translateY(32px);} to{opacity:1;transform:translateY(0);} }
@keyframes heroZoom { from{transform:scale(1.04);} to{transform:scale(1.1) translateY(-8px);} }
@keyframes slowFloat { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);} }

.reveal { opacity:0; transform:translateY(32px); transition:opacity .85s cubic-bezier(0.25,0.46,0.45,0.94),transform .85s cubic-bezier(0.25,0.46,0.45,0.94); }
.reveal.in { opacity:1; transform:none; }
.rd1{transition-delay:.12s;} .rd2{transition-delay:.24s;} .rd3{transition-delay:.36s;}
.rd4{transition-delay:.48s;} .rd5{transition-delay:.6s;}

/* RESPONSIVE */
@media(max-width:1100px){
  .port-grid { grid-template-rows:clamp(220px,28vw,360px) clamp(150px,19vw,240px); }
  #numbers { grid-template-columns:repeat(4,1fr); }
}
@media(max-width:960px){
  nav,nav.scrolled { padding:18px 24px; }
  .nav-links { display:none; }
  .page-hero { padding:140px 24px 72px; }
  footer { padding:72px 24px 40px; }
  .footer-top { grid-template-columns:1fr 1fr; gap:40px; }
  .sec { padding:72px 24px; }
  .form-row-2 { grid-template-columns:1fr; }
  body { cursor:auto; }
  .cur { display:none; }
}
