/* =========================================================
   Maria Event — Stylesheet
   Style : Moderne minimaliste — Noir / Blanc / Doré
========================================================= */

:root{
  --black: #0b0b0c;
  --black-soft: #141416;
  --white: #fdfdfb;
  --off: #f4f2ee;
  --gold: #c9a15a;
  --gold-light: #e6cf9e;
  --gray: #8a8a8d;
  --line: rgba(255,255,255,0.12);
  --line-dark: rgba(0,0,0,0.1);
  --serif: 'Cormorant Garamond', serif;
  --sans: 'Montserrat', sans-serif;
  --ease: cubic-bezier(.16,.8,.24,1);
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--sans);
  background: var(--white);
  color: var(--black);
  overflow-x: hidden;
  cursor: none;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family: inherit; cursor:none; }
ul{ list-style:none; margin:0; padding:0; }
.container{ width:min(1200px, 92%); margin:0 auto; }
.anchor{ position:relative; top:-90px; }
em{ font-style: italic; color: var(--gold); font-family: var(--serif); }

h1,h2,h3,h4{ font-family: var(--serif); font-weight:500; margin:0 0 .5em; line-height:1.1; }
p{ line-height:1.7; color:#4a4a4d; margin:0 0 1em; }

::selection{ background: var(--gold); color:#fff; }

/* Custom cursor */
.cursor-dot, .cursor-ring{ position:fixed; top:0; left:0; pointer-events:none; z-index:9999; border-radius:50%; transform:translate(-50%,-50%); }
.cursor-dot{ width:6px; height:6px; background:var(--gold); transition: opacity .2s; }
.cursor-ring{ width:32px; height:32px; border:1px solid var(--gold); transition: width .25s var(--ease), height .25s var(--ease), opacity .2s, border-color .25s; opacity:.6; display:flex; align-items:center; justify-content:center; }
.cursor-ring.hover{ width:56px; height:56px; background: rgba(201,161,90,.1); }
.cursor-ring.view{ width:84px; height:84px; background: var(--black); border-color:var(--black); }
.cursor-label{ opacity:0; font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-light); transition: opacity .25s; white-space:nowrap; }
.cursor-ring.view .cursor-label{ opacity:1; }
@media (hover:none), (max-width: 900px){
  .cursor-dot, .cursor-ring{ display:none; }
  body, button{ cursor:auto; }
}

/* Loader */
.loader{ position:fixed; inset:0; background:var(--black); z-index:10000; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.4em; transition: opacity .6s var(--ease), visibility .6s; }
.loader-logo-img{ height:78px; width:auto; opacity:0; animation: loaderPulse 1.4s var(--ease) forwards; border-radius:12px; background:var(--white); padding:.6em 1em; box-shadow: 0 10px 30px rgba(0,0,0,.35); }
.loader-bar{ width:160px; height:1px; background:rgba(255,255,255,.15); overflow:hidden; }
.loader-bar span{ display:block; width:100%; height:100%; background:var(--gold); transform: translateX(-100%); animation: loaderBar 1.6s var(--ease) forwards .2s; }
@keyframes loaderBar{ to{ transform: translateX(0); } }
@keyframes loaderPulse{ 0%{ opacity:0; transform: scale(.85);} 100%{ opacity:1; transform: scale(1);} }
.loader.done{ opacity:0; visibility:hidden; }

/* Scroll progress bar */
.scroll-progress{ position:fixed; top:0; left:0; height:3px; width:0%; background: linear-gradient(90deg, var(--gold), var(--gold-light)); z-index:1100; transition: width .1s linear; box-shadow: 0 0 12px rgba(201,161,90,.6); }

/* Buttons */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5em; padding: 1em 2.2em; border-radius:2px; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600; border:1px solid transparent; transition: all .35s var(--ease); position:relative; overflow:hidden; }
.btn span{ position:relative; z-index:2; }
.btn::before{ content:''; position:absolute; inset:0; background:var(--gold); transform: translateX(-102%); transition: transform .45s var(--ease); z-index:1; }
.btn-primary{ background:var(--black); color:var(--white); border-color:var(--black); }
.btn-primary:hover{ color:var(--black); border-color:var(--gold); transform: translateY(-3px); box-shadow: 0 14px 30px -10px rgba(201,161,90,.55); }
.btn-primary:hover::before{ transform: translateX(0); }
.btn-ghost{ background:transparent; color:var(--white); border-color:rgba(255,255,255,.5); }
.btn-ghost::before{ background:var(--white); }
.btn-ghost:hover{ color:var(--black); transform: translateY(-3px); }
.btn-ghost:hover::before{ transform: translateX(0); }
.btn-outline{ background:transparent; color:var(--black); border-color:var(--black); }
.btn-outline::before{ background:var(--black); }
.btn-outline:hover{ color:var(--white); }
.btn-outline:hover::before{ transform: translateX(0); }
.btn-block{ width:100%; }
.magnetic{ will-change: transform; }

/* Reveal animation */
.reveal{ opacity:0; transform: translateY(28px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in{ opacity:1; transform:none; }

.eyebrow{ text-transform:uppercase; letter-spacing:.25em; font-size:.72rem; color:var(--gold); font-weight:600; margin-bottom:1em; }

/* ============ HEADER ============ */
.header{ position:fixed; top:0; left:0; right:0; z-index:1000; padding: 1.6em 0; transition: all .4s var(--ease); }
.header.scrolled{ padding:.9em 0; background:rgba(11,11,12,.85); backdrop-filter: blur(10px); box-shadow:0 10px 30px rgba(0,0,0,.15); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; }
.logo{ display:inline-flex; align-items:center; gap:.6em; font-family:var(--serif); font-size:1.4rem; letter-spacing:.05em; color:var(--white); transition: opacity .3s, transform .3s; }
.logo:hover{ opacity:.9; transform: translateY(-1px); }
.logo-img{ display:block; height:52px; width:auto; max-width:170px; object-fit:contain; background:var(--white); border-radius:10px; padding:.35em .6em; box-shadow: 0 6px 18px rgba(0,0,0,.25); }
.logo-text{ display:inline-flex; align-items:baseline; gap:.2em; font-family:var(--serif); }
.logo-text span{ color:var(--gold); }
.nav{ display:flex; align-items:center; gap:2.4em; }
.nav-link{ color:var(--white); font-size:.78rem; text-transform:uppercase; letter-spacing:.1em; font-weight:500; position:relative; padding-bottom:4px; }
.nav-link::after{ content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold); transition: width .3s var(--ease); }
.nav-link:hover::after{ width:100%; }
.nav-cta{ border:1px solid var(--gold); padding:.6em 1.3em; border-radius:2px; }
.burger{ display:none; flex-direction:column; gap:5px; background:none; border:none; padding:6px; z-index:1001; }
.burger span{ width:26px; height:1.5px; background:var(--white); transition: all .3s var(--ease); }

/* ============ HERO ============ */
.hero{ position:relative; min-height:100vh; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; background: var(--black); color:var(--white); overflow:hidden; }
.hero-bg{ position:absolute; inset:0; background:
    radial-gradient(circle at 82% 18%, rgba(201,161,90,.28), transparent 45%),
    radial-gradient(circle at 15% 85%, rgba(201,161,90,.14), transparent 40%),
    linear-gradient(160deg, #0b0b0c 0%, #17140f 55%, #0b0b0c 100%);
}
.hero-grain{ position:absolute; inset:0; opacity:.05; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); mix-blend-mode:overlay; }

/* Floating decorative shapes */
.hero-shapes{ position:absolute; inset:0; z-index:1; pointer-events:none; }
.shape{ position:absolute; }
.shape-ring{ top:14%; right:8%; width:220px; height:220px; border:1px solid rgba(201,161,90,.35); border-radius:50%; animation: floatSlow 9s ease-in-out infinite; }
.shape-ring::before{ content:''; position:absolute; inset:22px; border:1px solid rgba(201,161,90,.18); border-radius:50%; }
.shape-blob{ bottom:8%; left:5%; width:280px; height:280px; border-radius:42% 58% 65% 35% / 45% 40% 60% 55%; background: radial-gradient(circle at 30% 30%, rgba(201,161,90,.18), transparent 70%); animation: blobMove 12s ease-in-out infinite; filter: blur(2px); }
.shape-dot{ border-radius:50%; background: var(--gold); opacity:.6; }
.dot-1{ width:8px; height:8px; top:28%; left:12%; animation: floatSlow 6s ease-in-out infinite; }
.dot-2{ width:5px; height:5px; top:62%; right:22%; animation: floatSlow 7.5s ease-in-out infinite .5s; }
.dot-3{ width:10px; height:10px; bottom:22%; right:38%; animation: floatSlow 8.5s ease-in-out infinite 1s; opacity:.4; }
.shape-line{ top:8%; left:42%; width:1px; height:120px; background: linear-gradient(var(--gold), transparent); opacity:.4; }
@keyframes floatSlow{ 0%,100%{ transform: translateY(0) translateX(0);} 50%{ transform: translateY(-22px) translateX(8px);} }
@keyframes blobMove{ 0%,100%{ border-radius:42% 58% 65% 35% / 45% 40% 60% 55%; transform: scale(1);} 50%{ border-radius:60% 40% 35% 65% / 55% 60% 40% 45%; transform: scale(1.08);} }

/* Orbit badge */
.hero-orbit{ position:absolute; top:6.5em; right:4em; z-index:2; width:130px; height:130px; display:flex; align-items:center; justify-content:center; }
.orbit-badge{ position:relative; width:100%; height:100%; animation: spin 22s linear infinite; }
.orbit-text{ width:100%; height:100%; }
.orbit-text text{ font-size:8.6px; letter-spacing:2px; fill: rgba(255,255,255,.55); text-transform:uppercase; }
.orbit-center{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); color:var(--gold); font-size:1.3rem; animation: spin 22s linear infinite reverse; }
@keyframes spin{ to{ transform: rotate(360deg);} }
@media (max-width: 1024px){ .hero-orbit{ display:none; } }

.hero-content{ position:relative; z-index:2; padding-top:5em; }
.hero-title{ font-size: clamp(2.4rem, 6vw, 4.6rem); font-weight:400; }
.hero-title .line{ display:block; overflow:hidden; }
.hero-title .word{ display:inline-block; }
.hero-sub{ max-width:520px; color:rgba(255,255,255,.68); font-size:1.05rem; }
.hero-actions{ display:flex; gap:1.2em; margin-top:1.6em; flex-wrap:wrap; }
.hero-scroll{ position:absolute; right:2.5em; bottom:6.5em; display:flex; flex-direction:column; align-items:center; gap:.6em; z-index:2; }
.hero-scroll span{ width:1px; height:60px; background:linear-gradient(var(--gold), transparent); animation: scrollLine 2s ease-in-out infinite; }
.hero-scroll p{ writing-mode: vertical-rl; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.5); margin:0; }
@keyframes scrollLine{ 0%,100%{ transform: scaleY(1); transform-origin:top;} 50%{ transform: scaleY(.4); transform-origin:top;} }

.hero-marquee{ position:relative; z-index:2; border-top:1px solid var(--line); margin-top:3em; padding:1.3em 0; overflow:hidden; width:100%; }
.marquee-track{ display:flex; gap:2em; white-space:nowrap; width:max-content; animation: marquee 28s linear infinite; font-family:var(--serif); font-size:1.2rem; color: var(--gold-light); }
.hero-marquee:hover .marquee-track{ animation-play-state: paused; }
.marquee-track span:nth-child(2n){ color: rgba(255,255,255,.4); font-family: var(--sans); font-size:.9rem; }
@keyframes marquee{ from{ transform: translateX(0);} to{ transform: translateX(-50%);} }

/* ============ SECTION DIVIDER ============ */
.divider{ line-height:0; background: var(--white); }
.divider svg{ width:100%; height:60px; display:block; }
.divider svg path{ fill: var(--off); }
.divider-flip{ background:var(--off); transform: scaleY(-1); }
.divider-flip svg path{ fill: var(--white); }

/* ============ SIGNATURE SHOWCASE ============ */
.signature{ background: var(--off); padding: 6em 0 5em; overflow:hidden; }
.signature-head{ text-align:center; margin-bottom:3em; }
.signature-head .eyebrow{ justify-content:center; display:flex; }
.signature-head h2{ font-size:clamp(2rem,3.4vw,2.8rem); }
.signature-track{ display:flex; gap:1.6em; overflow-x:auto; scroll-snap-type: x mandatory; padding: 1em min(4vw,140px) 2.5em; scrollbar-width: thin; scrollbar-color: var(--gold) transparent; }
.signature-track::-webkit-scrollbar{ height:6px; }
.signature-track::-webkit-scrollbar-thumb{ background: var(--gold); border-radius:6px; }
.signature-slide{ flex: 0 0 min(360px, 78vw); scroll-snap-align:start; border-radius:8px; overflow:hidden; position:relative; box-shadow: 0 24px 50px -25px rgba(0,0,0,.3); transition: transform .5s var(--ease); }
.signature-slide:hover{ transform: translateY(-8px); }
.sig-visual{ aspect-ratio: 3/4; display:flex; align-items:center; justify-content:center; background:#1c1a17; overflow:hidden; }
.sig-visual img{ width:100%; height:100%; object-fit:cover; transition: transform .6s var(--ease); }
.signature-slide:hover .sig-visual img{ transform: scale(1.06); }
.sig-visual span{ font-family:var(--serif); font-size:3.4rem; color:rgba(255,255,255,.5); }
.sig-caption{ position:absolute; inset:auto 0 0 0; padding:1.6em; background: linear-gradient(180deg, transparent, rgba(0,0,0,.85)); }
.sig-caption h3{ color:var(--white); font-size:1.4rem; margin-bottom:.2em; }
.sig-caption p{ color:rgba(255,255,255,.7); font-size:.85rem; margin:0; }

/* ============ ABOUT ============ */
.about{ padding: 9em 0; background: var(--white); position:relative; }
.about-grid{ display:grid; grid-template-columns: .85fr 1.15fr; gap:5em; align-items:center; }
.about-visual{ position:relative; perspective: 1000px; }
.about-frame{ aspect-ratio: 4/5; border-radius:4px; overflow:hidden; position:relative; box-shadow: 0 30px 60px -20px rgba(0,0,0,.25); transition: transform .3s var(--ease); transform-style:preserve-3d; }
.frame-shine{ position:absolute; inset:0; background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,.35) 48%, transparent 60%); transform: translateX(-120%); pointer-events:none; }
.about-visual:hover .frame-shine{ animation: shineSweep 1.1s ease; }
@keyframes shineSweep{ to{ transform: translateX(120%); } }
.ph{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; position:relative; }
.ph::after{ content:''; position:absolute; inset:0; background-image: linear-gradient(rgba(0,0,0,.15), rgba(0,0,0,.35)); }
.ph span{ position:relative; z-index:1; font-family:var(--serif); font-size:5rem; color:rgba(255,255,255,.85); }
.ph-1{ background: linear-gradient(135deg, #2b2723, #0b0b0c 60%, #3a2f1d); }
.about-logo-img{ width:100%; height:100%; object-fit:contain; object-position:center; background:var(--white); padding:2em; }
.about-badge{ position:absolute; right:-1.5em; bottom:-1.5em; background:var(--black); color:var(--white); padding:1.4em 1.8em; border-radius:4px; text-align:center; box-shadow:0 20px 40px rgba(0,0,0,.25); z-index:2; }
.about-badge strong{ display:block; font-family:var(--serif); font-size:2rem; color:var(--gold); }
.about-badge span{ font-size:.68rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.7); }
.about-ring{ position:absolute; top:-1.6em; left:-1.6em; width:110px; height:110px; border:1px solid var(--gold); border-radius:50%; opacity:.5; z-index:0; }
.about-text h2{ font-size:clamp(2rem, 3.4vw, 2.8rem); }
.about-stats{ display:flex; gap:2.5em; margin-top:2em; padding-top:2em; border-top:1px solid #e6e3dd; flex-wrap:wrap; }
.stat strong{ display:block; font-family:var(--serif); font-size:1.8rem; color:var(--black); }
.stat span{ font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--gray); }

/* ============ SECTION HEAD (shared) ============ */
.section-head{ max-width:640px; margin-bottom:3.5em; }
.section-head h2{ font-size:clamp(2rem, 3.6vw, 2.9rem); }
.section-desc{ margin-top:.5em; }

/* ============ LIBRARY / GALLERY ============ */
.library{ padding: 9em 0; background: var(--off); position:relative; overflow:hidden; }
.library-glow{ position:absolute; top:-10%; right:-10%; width:500px; height:500px; background: radial-gradient(circle, rgba(201,161,90,.14), transparent 70%); pointer-events:none; }
.filters{ display:flex; gap:.8em; flex-wrap:wrap; margin-bottom:3em; }
.filter-btn{ background:transparent; border:1px solid #d8d3c8; color:#555; padding:.7em 1.4em; border-radius:30px; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; font-weight:600; transition: all .3s var(--ease); }
.filter-btn:hover{ border-color: var(--gold); color:var(--black); }
.filter-btn.active{ background:var(--black); border-color:var(--black); color:var(--white); }

.gallery-grid{ display:grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 190px; gap:1.1em; }
.gallery-item{ position:relative; grid-column: span 1; grid-row: span 1; border-radius:6px; overflow:hidden; cursor:none; opacity:0; transform: translateY(24px) scale(.98); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.gallery-item.in{ opacity:1; transform:none; }
.gallery-item.hide{ display:none; }
.gallery-item.tall{ grid-row: span 2; }
.gallery-item.wide{ grid-column: span 2; }
.gallery-visual{ position:absolute; inset:0; overflow:hidden; background:#1c1a17; }
.gallery-visual img{ width:100%; height:100%; object-fit:cover; display:block; transition: transform .7s var(--ease); }
.gallery-item:hover .gallery-visual img{ transform: scale(1.1); }
.gallery-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,.78) 100%); display:flex; flex-direction:column; justify-content:flex-end; padding:1.2em; opacity:0; transition: opacity .4s var(--ease); }
.gallery-item:hover .gallery-overlay{ opacity:1; }
.gallery-tag{ font-size:.62rem; text-transform:uppercase; letter-spacing:.14em; color:var(--gold-light); margin-bottom:.3em; }
.gallery-title{ color:var(--white); font-family:var(--serif); font-size:1.15rem; margin:0; }
.library-more{ text-align:center; margin-top:3.5em; }

/* ============ LIGHTBOX ============ */
.lightbox{ position:fixed; inset:0; background:rgba(8,8,9,.96); z-index:2000; display:none; align-items:center; justify-content:center; opacity:0; transition: opacity .35s var(--ease); }
.lightbox.open{ display:flex; opacity:1; }
.lightbox-content{ width:min(1000px, 90%); display:grid; grid-template-columns: 1.3fr 1fr; gap:0; background:var(--black-soft); border-radius:6px; overflow:hidden; transform: scale(.95); transition: transform .4s var(--ease); }
.lightbox.open .lightbox-content{ transform:scale(1); }
.lightbox-visual{ aspect-ratio: 4/5; display:flex; align-items:center; justify-content:center; overflow:hidden; background:#1c1a17; }
.lightbox-visual img{ width:100%; height:100%; object-fit:cover; }
.lightbox-info{ padding:3em 2.4em; color:var(--white); display:flex; flex-direction:column; justify-content:center; }
.lb-tag{ text-transform:uppercase; font-size:.7rem; letter-spacing:.14em; color:var(--gold); margin-bottom:.8em; }
.lightbox-info h3{ font-size:1.8rem; }
.lightbox-info p{ color:rgba(255,255,255,.65); }
.lightbox-close{ position:absolute; top:2em; right:2.5em; background:none; border:none; color:var(--white); font-size:2.2rem; line-height:1; cursor:none; transition: transform .3s var(--ease), color .3s; }
.lightbox-close:hover{ transform: rotate(90deg); color:var(--gold); }
.lightbox-nav{ position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); color:var(--white); width:52px; height:52px; border-radius:50%; font-size:1.6rem; cursor:none; transition: all .3s var(--ease); }
.lightbox-nav:hover{ background:var(--gold); color:var(--black); border-color:var(--gold); }
.lightbox-nav.prev{ left:2em; } .lightbox-nav.next{ right:2em; }

/* ============ SERVICES ============ */
.services{ padding:9em 0; background:var(--white); }
.services-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap:1px; background:#e6e3dd; border:1px solid #e6e3dd; }
.service-card{ background:var(--white); padding:2.6em 2em; transition: background .4s var(--ease); position:relative; }
.service-card:hover{ background: var(--black); }
.service-card:hover h3, .service-card:hover p{ color:var(--white); }
.service-card:hover .service-num{ color:var(--gold); border-color:var(--gold); transform: translateY(-4px); }
.service-card:hover .service-arrow{ opacity:1; transform: translateX(0); }
.service-num{ color:var(--gold); border:1px solid var(--gold); width:52px; height:52px; display:flex; align-items:center; justify-content:center; border-radius:50%; margin-bottom:1.4em; transition: all .4s var(--ease); }
.service-num svg{ width:22px; height:22px; }
.service-card h3{ font-size:1.35rem; transition:color .4s; }
.service-card p{ font-size:.9rem; transition:color .4s; }
.service-arrow{ position:absolute; right:2em; bottom:2.2em; color:var(--gold); font-size:1.2rem; opacity:0; transform: translateX(-8px); transition: all .4s var(--ease); }

/* ============ PROCESS ============ */
.process{ padding:9em 0; background:var(--black); color:var(--white); }
.process .eyebrow{ color:var(--gold); }
.process h2{ color:var(--white); }
.process-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:2.5em; }
.step-index{ font-family:var(--serif); font-size:2.6rem; color:var(--gold); display:block; margin-bottom:.3em; }
.process-step h4{ color:var(--white); font-size:1.1rem; }
.process-step p{ color:rgba(255,255,255,.6); font-size:.9rem; }

/* ============ TESTIMONIALS ============ */
.testimonials{ padding:9em 0; background: var(--off); }
.testi-track{ display:grid; grid-template-columns: repeat(3, 1fr); gap:2em; }
.testi-card{ background:var(--white); padding:2.6em 2.2em; border-radius:6px; box-shadow: 0 20px 40px -25px rgba(0,0,0,.25); transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.testi-card:hover{ transform: translateY(-8px); box-shadow: 0 30px 50px -20px rgba(0,0,0,.3); }
.stars{ color:var(--gold); letter-spacing:.15em; margin-bottom:1em; }
.testi-card p{ font-family:var(--serif); font-size:1.15rem; color:#333; font-style:italic; }
.testi-author{ margin-top:1.4em; padding-top:1em; border-top:1px solid #eee; }
.testi-author strong{ display:block; font-size:.9rem; }
.testi-author span{ font-size:.75rem; color:var(--gray); }

/* ============ CTA BAND ============ */
.cta-band{ background:var(--black); padding:6em 0; position:relative; overflow:hidden; }
.cta-shine{ position:absolute; top:-50%; left:50%; width:800px; height:800px; transform:translateX(-50%); background: radial-gradient(circle, rgba(201,161,90,.16), transparent 65%); pointer-events:none; }
.cta-inner{ text-align:center; position:relative; z-index:1; }
.cta-inner .eyebrow{ justify-content:center; display:flex; }
.cta-inner h2{ color:var(--white); font-size:clamp(1.8rem,3.6vw,2.6rem); margin-bottom:1em; }

/* ============ CONTACT ============ */
.contact{ padding:9em 0; background:var(--white); }
.contact-grid{ display:grid; grid-template-columns: .85fr 1.15fr; gap:5em; }
.contact-list{ margin:2em 0; }
.contact-list li{ display:flex; gap:1.2em; padding:.9em 0; border-bottom:1px solid #eee; align-items:baseline; }
.contact-list li span{ min-width:100px; font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--gray); }
.contact-list li a, .contact-list li p{ font-size:1rem; margin:0; }
.social{ display:flex; gap:1.6em; }
.social a{ font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; border-bottom:1px solid transparent; padding-bottom:2px; transition: border-color .3s; }
.social a:hover{ border-color: var(--gold); color:var(--gold); }

.contact-form{ background:var(--off); padding:2.6em; border-radius:8px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.4em; }
.field{ position:relative; margin-bottom:1.4em; }
.field input, .field select, .field textarea{ width:100%; padding:1em .2em .5em; border:none; border-bottom:1px solid #ccc5b5; background:transparent; font-family:var(--sans); font-size:.95rem; color:var(--black); outline:none; transition: border-color .3s; }
.field textarea{ resize:vertical; }
.field label{ position:absolute; left:.2em; top:1em; color:var(--gray); font-size:.95rem; transition: all .25s var(--ease); pointer-events:none; }
.field input:focus, .field select:focus, .field textarea:focus{ border-bottom-color: var(--gold); }
.field input:focus + label, .field input:not(:placeholder-shown) + label,
.field textarea:focus + label, .field textarea:not(:placeholder-shown) + label{ top:-.4em; font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color: var(--gold); }
.field select{ padding-top:1em; color:var(--black); }
.form-note{ font-size:.85rem; margin-top:1em; color:var(--gold); min-height:1.2em; }

/* ============ FOOTER ============ */
.footer{ background:var(--black); padding:2.6em 0; }
.footer-inner{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1em; }
.footer-inner p{ color:rgba(255,255,255,.5); font-size:.8rem; margin:0; }
.back-to-top{ width:42px; height:42px; border:1px solid rgba(255,255,255,.3); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--white); transition: all .3s var(--ease); }
.back-to-top:hover{ background:var(--gold); border-color:var(--gold); color:var(--black); }

/* ============ RESPONSIVE ============ */
@media (max-width: 1024px){
  .about-grid, .contact-grid{ grid-template-columns:1fr; gap:3em; }
  .services-grid{ grid-template-columns: repeat(2,1fr); }
  .process-grid{ grid-template-columns: repeat(2,1fr); gap:3em 1.5em; }
  .testi-track{ grid-template-columns:1fr; }
  .gallery-grid{ grid-template-columns: repeat(2,1fr); grid-auto-rows:220px; }
  .gallery-item.wide{ grid-column: span 2; }
}
@media (max-width: 760px){
  .header{ padding:1.1em 0; }
  .header.scrolled{ padding:.8em 0; }
  .logo-img{ height:40px; max-width:130px; padding:.3em .5em; }
  .logo{ font-size:1.15rem; gap:.4em; }
  .nav{ position:fixed; top:0; right:0; height:100vh; width:min(320px,80%); background:var(--black); flex-direction:column; justify-content:center; align-items:flex-start; gap:1.6em; padding:3em; transform:translateX(100%); transition: transform .45s var(--ease); z-index:1000; }
  .nav.open{ transform:translateX(0); }
  .burger{ display:flex; }
  .burger.open span:nth-child(1){ transform: translateY(6.5px) rotate(45deg); }
  .burger.open span:nth-child(2){ opacity:0; }
  .burger.open span:nth-child(3){ transform: translateY(-6.5px) rotate(-45deg); }
  .hero{ min-height:100svh; }
  .hero-scroll{ display:none; }
  .hero-shapes{ display:none; }
  .hero-orbit{ display:none; }
  .about, .library, .services, .process, .testimonials, .contact, .signature{ padding:5.5em 0; }
  .about-badge{ right:0; bottom:-1.2em; padding:1em 1.3em; }
  .about-ring{ display:none; }
  .form-row{ grid-template-columns:1fr; }
  .lightbox-content{ grid-template-columns:1fr; }
  .lightbox-visual{ aspect-ratio: 16/10; }
  .lightbox-info{ padding:2em 1.6em; }
  .lightbox-nav{ width:42px; height:42px; font-size:1.3rem; }
  .lightbox-nav.prev{ left:.6em; } .lightbox-nav.next{ right:.6em; }
  .gallery-grid{ grid-template-columns: 1fr; }
  .gallery-item.wide, .gallery-item.tall{ grid-column: span 1; grid-row: span 1; }
  .signature-slide{ flex-basis: 82vw; }
  .services-grid{ grid-template-columns:1fr; }
  .process-grid{ grid-template-columns:1fr; gap:2.2em; }
  .contact-form{ padding:1.8em; }
  .footer-inner{ flex-direction:column; text-align:center; }
}
@media (max-width: 420px){
  .container{ width:94%; }
  .hero-actions{ flex-direction:column; align-items:stretch; gap:.9em; }
  .hero-actions .btn{ width:100%; }
  .about-stats{ gap:1.6em; }
  .stat strong{ font-size:1.4rem; }
  .marquee-track{ font-size:1rem; gap:1.2em; }
  .service-arrow{ display:none; }
}
