/* ── Tokens ── */
:root {
  --dark:        #100E0C;
  --dark-2:      #1A1612;
  --cream:       #F2EDE5;
  --cream-2:     #EAE4DB;
  --ink:         #1A1512;
  --cream-text:  #E8DDD0;
  --gold:        #B8956B;
  --muted-dark:  rgba(232,221,208,0.42);
  --muted-light: #8A7F76;
  --border-dark: rgba(232,221,208,0.10);
  --border-light:rgba(26,21,18,0.12);

  --serif: 'Cormorant Garamond', 'Cormorant', Georgia, serif;
  --sans:  'Jost', system-ui, sans-serif;

  --fs-hero: clamp(4.5rem, 15vw, 16rem);
  --fs-h1:   clamp(3.5rem, 10vw, 11rem);
  --fs-h2:   clamp(2.2rem, 5vw, 5.5rem);
  --fs-h3:   clamp(1.4rem, 2.2vw, 2.25rem);
  --fs-pull: clamp(1.8rem, 4vw, 4.5rem);
  --fs-body: clamp(0.9375rem, 1.1vw, 1.0625rem);
  --fs-sm:   clamp(0.6875rem, 0.85vw, 0.8125rem);

  --px: clamp(1.5rem, 5vw, 5rem);
  --py: clamp(4.5rem, 9vw, 8.5rem);
  --gap: clamp(1rem, 2vw, 2rem);
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:var(--fs-body);line-height:1.7;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{background:none;border:none;cursor:pointer;font:inherit}
input,select,textarea{font:inherit}
ul{list-style:none}

/* ── Film grain overlay ── */
body::after{
  content:'';
  position:fixed;
  inset:-60%;
  width:220%;height:220%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.72' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:200px;
  opacity:0.042;
  pointer-events:none;
  z-index:9999;
  mix-blend-mode:overlay;
}

/* ── Header ── */
.site-header{
  position:fixed;top:0;left:0;right:0;
  z-index:200;
  display:flex;align-items:center;
  padding:1.5rem var(--px);
  gap:2rem;
  transition:background 0.4s ease,backdrop-filter 0.4s ease,box-shadow 0.4s ease;
}
.site-header.scrolled{
  background:rgba(16,14,12,0.88);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--border-dark);
}
.logo{display:flex;flex-direction:column;line-height:1.2;gap:1px}
.logo-name{font-family:var(--serif);font-size:1.1rem;font-weight:400;letter-spacing:0.08em;color:var(--cream-text)}
.logo-sub{font-size:0.62rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--muted-dark)}
.site-nav{display:flex;align-items:center;gap:clamp(1.5rem,3vw,2.5rem);margin-left:auto}
.site-nav a{font-size:var(--fs-sm);letter-spacing:0.1em;text-transform:uppercase;color:rgba(232,221,208,0.78);text-shadow:0 1px 5px rgba(16,14,12,0.45);transition:color 0.25s}
.site-nav a:hover{color:var(--cream-text)}
.nav-cta{
  padding:0.55rem 1.4rem;
  border:1px solid rgba(232,221,208,0.3);
  color:var(--cream-text)!important;
  font-weight:400;
  transition:background 0.25s,border-color 0.25s!important;
}
.nav-cta:hover{background:var(--cream-text);color:var(--dark)!important;border-color:var(--cream-text)!important}

.lang-btn{font-size:var(--fs-sm);letter-spacing:0.12em;color:rgba(232,221,208,0.65);text-shadow:0 1px 5px rgba(16,14,12,0.45);transition:color 0.25s}
.lang-btn:hover{color:var(--cream-text)}

.menu-btn{display:none;flex-direction:column;justify-content:space-between;width:22px;height:14px;z-index:220}
.menu-btn span{display:block;height:1px;background:var(--cream-text);transition:transform 0.35s var(--ease),opacity 0.3s}
.menu-btn.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.menu-btn.open span:nth-child(2){opacity:0}
.menu-btn.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ── Float contact ── */
.float-cta{
  position:fixed;bottom:2rem;right:2rem;z-index:400;
  display:flex;align-items:center;gap:0.6rem;
  padding:0.875rem 1.6rem;
  background:var(--dark-2);
  border:1px solid var(--border-dark);
  color:var(--cream-text);
  font-size:0.75rem;letter-spacing:0.12em;text-transform:uppercase;
  opacity:0;transform:translateY(10px);
  pointer-events:none;
  transition:opacity 0.45s var(--ease),transform 0.45s var(--ease),background 0.25s;
}
.float-cta::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--gold);flex-shrink:0}
.float-cta.visible{opacity:1;transform:none;pointer-events:auto}
.float-cta:hover{background:#1e1a16}

/* ── Hero ── */
.hero{
  min-height:100svh;
  display:grid;
  grid-template-columns:54% 46%;
  background:var(--dark);
  position:relative;
  overflow:hidden;
}
.hero-left{
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:var(--py) var(--px);
  padding-top:7rem;
  position:relative;z-index:2;
}
.hero-name{
  font-family:var(--serif);
  font-size:var(--fs-hero);
  font-weight:300;
  line-height:0.85;
  letter-spacing:-0.025em;
  text-transform:uppercase;
  color:var(--cream-text);
}
.hero-tag{
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.1rem,2vw,1.75rem);
  font-weight:300;
  color:var(--muted-dark);
  margin-top:2.5rem;
  max-width:36ch;
  line-height:1.5;
}
.hero-meta{
  margin-top:3rem;
  display:flex;align-items:center;gap:2rem;
}
.hero-loc{
  font-size:var(--fs-sm);
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--muted-dark);
}
.hero-scroll{
  display:flex;flex-direction:column;align-items:center;gap:0.75rem;
  margin-top:auto;padding-top:4rem;
}
.hero-scroll span{display:block;width:1px;height:52px;background:rgba(232,221,208,0.3);animation:scrollIn 2.2s ease-in-out infinite}
@keyframes scrollIn{0%,100%{transform:scaleY(1);opacity:.35}50%{transform:scaleY(.4);opacity:1}}
.hero-right{position:relative;overflow:hidden}
.hero-right img{width:100%;height:100%;object-fit:cover;object-position:center top;transform-origin:center center}
.hero-right::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to right,rgba(16,14,12,0.25) 0%,transparent 40%);
}

/* ── Marquee ── */
.marquee{
  overflow:hidden;
  background:var(--dark);
  border-top:1px solid var(--border-dark);
  border-bottom:1px solid var(--border-dark);
  padding:1.1rem 0;
  cursor:default;
  user-select:none;
}
.marquee-track{
  display:flex;
  width:max-content;
  animation:marqueeRun 38s linear infinite;
  font-family:var(--serif);
  font-style:italic;
  font-weight:300;
  font-size:clamp(1rem,1.6vw,1.6rem);
  color:rgba(232,221,208,0.38);
  letter-spacing:0.01em;
}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{padding:0 2.5rem}
.marquee-track span::after{content:'·'}
@keyframes marqueeRun{to{transform:translateX(-50%)}}

/* ── Section intro ── */
.section-intro{margin-bottom:clamp(2.5rem,5vw,4rem)}
.section-intro .eyebrow{margin-bottom:0.875rem}
.eyebrow{
  display:block;font-size:var(--fs-sm);font-weight:500;
  letter-spacing:0.22em;text-transform:uppercase;
  color:var(--muted-light);
}
.dark-section .eyebrow{color:var(--gold)}

/* ── Categories ── */
.categories{background:var(--cream-2)}
.cat-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:48vh 48vh;
  gap:3px;
  background:var(--ink);
  min-height:96vh;
}
.cat-item{
  position:relative;overflow:hidden;
  display:block;
  background:var(--dark);
}
.cat-item:nth-child(2){grid-row:1/3}
.cat-item img{
  width:100%;height:100%;
  object-fit:cover;
  filter:saturate(0.72) contrast(1.04);
  transition:transform 0.9s var(--ease),filter 0.6s ease;
}
.cat-item:hover img{transform:scale(1.04);filter:saturate(1) contrast(1)}
.cat-label{
  position:absolute;left:0;right:0;bottom:0;
  padding:2rem clamp(1.5rem,3vw,2.5rem);
  background:linear-gradient(to top,rgba(16,14,12,0.85) 0%,transparent 100%);
  display:flex;justify-content:space-between;align-items:flex-end;
}
.cat-label h3{
  font-family:var(--serif);font-size:var(--fs-h3);font-weight:300;
  color:var(--cream-text);text-transform:uppercase;letter-spacing:0.04em;
}
.cat-arrow{font-size:1.5rem;color:var(--cream-text);opacity:0.5;transition:opacity 0.25s,transform 0.35s var(--ease)}
.cat-item:hover .cat-arrow{opacity:1;transform:translate(6px,-4px)}
.cat-num{
  font-family:var(--serif);font-size:0.7rem;font-weight:300;
  letter-spacing:0.2em;color:rgba(232,221,208,0.4);
  position:absolute;top:1.5rem;left:clamp(1.5rem,3vw,2.5rem);
}

/* ── About ── */
.about-section{padding:var(--py) var(--px)}
.about-quote{
  margin-bottom:clamp(3.5rem,7vw,6rem);
  padding-bottom:clamp(3.5rem,7vw,6rem);
  border-bottom:1px solid var(--border-light);
}
.pull-quote{
  font-family:var(--serif);font-style:italic;
  font-size:var(--fs-pull);font-weight:300;
  line-height:1.15;letter-spacing:-0.01em;
  color:var(--ink);max-width:20ch;
}
.about-body{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,6vw,6rem);align-items:center}
.about-img{overflow:hidden}
.about-img img,.about-video-wrap video{
  width:100%;aspect-ratio:3/4;object-fit:cover;
  filter:grayscale(0.12);
  transition:transform 0.9s var(--ease),filter 0.5s ease;
  display:block;
}
.about-img:hover img,.about-video-wrap:hover video{transform:scale(1.02);filter:grayscale(0)}
.about-text .eyebrow{margin-bottom:1.25rem}
.about-text h2{
  font-family:var(--serif);font-size:var(--fs-h2);
  font-weight:300;line-height:1.1;letter-spacing:-0.01em;
  color:var(--ink);margin-bottom:1.75rem;
}
.about-text p{color:var(--muted-light);line-height:1.8;margin-bottom:1.25rem;max-width:44ch}
.text-link{
  display:inline-flex;align-items:center;gap:0.6rem;
  font-size:var(--fs-sm);font-weight:500;
  letter-spacing:0.1em;text-transform:uppercase;
  border-bottom:1px solid var(--ink);padding-bottom:1px;
  transition:gap 0.3s var(--ease);
}
.text-link:hover{gap:1.2rem}

/* ── Gallery strip ── */
.gallery-section{padding:var(--py) var(--px);background:var(--cream-2)}
.gal-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:auto auto;
  gap:4px;
  margin-top:clamp(2rem,4vw,3.5rem);
}
.gal-item{overflow:hidden;cursor:pointer}
.gal-item:nth-child(2){grid-row:span 2}
.gal-item img{
  width:100%;height:100%;
  object-fit:cover;aspect-ratio:3/4;
  filter:saturate(0.68) contrast(1.06);
  transition:filter 0.7s ease,transform 0.8s var(--ease);
}
.gal-item:nth-child(2) img{aspect-ratio:2/3}
.gal-item:hover img{filter:saturate(1) contrast(1);transform:scale(1.03)}
.gal-cta{display:flex;justify-content:center;margin-top:clamp(2.5rem,4vw,3.5rem)}

/* ── Testimonials ── */
.testimonials{background:var(--dark);color:var(--cream-text);padding:var(--py) var(--px)}
.testimonials h2{font-family:var(--serif);font-size:var(--fs-h2);font-weight:300;color:var(--cream-text);letter-spacing:-0.01em}
.testi-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:var(--border-dark);
  margin-top:clamp(3rem,5vw,4.5rem);
}
.testi{
  background:var(--dark);
  padding:clamp(2rem,3vw,3rem);
  display:flex;flex-direction:column;justify-content:space-between;gap:2rem;
}
.testi p{
  font-family:var(--serif);font-style:italic;
  font-size:var(--fs-h3);font-weight:300;line-height:1.5;
  color:var(--cream-text);
}
.testi footer{border-top:1px solid var(--border-dark);padding-top:1.25rem;display:flex;flex-direction:column;gap:0.3rem}
.testi cite{font-style:normal;font-weight:500;font-size:var(--fs-sm);letter-spacing:0.1em;color:var(--cream-text)}
.testi-type{font-size:0.65rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold)}

/* ── Contact ── */
.contact-section{background:var(--dark-2);color:var(--cream-text);padding:var(--py) var(--px);border-top:1px solid var(--border-dark)}
.contact-wrap{display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(4rem,8vw,8rem);align-items:start}
.contact-text h2{font-family:var(--serif);font-size:var(--fs-h2);font-weight:300;color:var(--cream-text);line-height:1.1;margin:1.25rem 0 1.5rem}
.contact-text p{color:var(--muted-dark);line-height:1.8;max-width:38ch;margin-bottom:1.5rem}
.contact-email{font-size:var(--fs-sm);letter-spacing:0.05em;color:var(--gold);border-bottom:1px solid var(--gold);padding-bottom:2px;transition:opacity 0.25s}
.contact-email:hover{opacity:0.7}
/* Form */
.contact-form{display:flex;flex-direction:column;gap:1.5rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.fgroup{display:flex;flex-direction:column;gap:0.5rem}
.fgroup label{font-size:var(--fs-sm);font-weight:500;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted-dark)}
.fgroup input,.fgroup select,.fgroup textarea{
  background:transparent;border:none;border-bottom:1px solid rgba(232,221,208,0.18);
  color:var(--cream-text);padding:0.8rem 0;
  outline:none;-webkit-appearance:none;appearance:none;
  transition:border-color 0.3s;
}
.fgroup select option{background:var(--dark-2);color:var(--cream-text)}
.fgroup input:focus,.fgroup select:focus,.fgroup textarea:focus{border-color:var(--gold)}
.fgroup textarea{resize:vertical;min-height:90px}
.radio-set,.radio-row{display:flex;flex-wrap:wrap;gap:0.625rem;padding-top:0.25rem}
.r-label,.radio-group label{
  display:flex;align-items:center;gap:0.45rem;cursor:pointer;
  font-size:var(--fs-sm);color:rgba(232,221,208,0.65);
  padding:0.5rem 1rem;
  border:1px solid rgba(232,221,208,0.14);
  transition:border-color 0.25s,color 0.25s;
}
.r-label:has(input:checked),.radio-group label:has(input:checked){border-color:var(--gold);color:var(--cream-text)}
.r-label input,.radio-group label input{position:absolute;opacity:0;width:0;height:0}
.radio-label{font-size:var(--fs-sm);font-weight:500;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted-dark);display:block;margin-bottom:0.5rem}
.btn-send{
  align-self:flex-start;
  padding:1rem 2.75rem;background:var(--gold);
  color:var(--dark);font-weight:500;font-size:var(--fs-sm);letter-spacing:0.1em;text-transform:uppercase;
  border:none;cursor:pointer;
  transition:background 0.25s,transform 0.25s;
}
.btn-send:hover{background:#ccaa7e;transform:translateY(-2px)}
/* Calendar placeholder */
.booking-note{margin-top:4rem;padding-top:3rem;border-top:1px solid var(--border-dark)}
.booking-note .eyebrow{margin-bottom:1.25rem}
.booking-note p{font-style:italic;color:var(--muted-dark);font-size:var(--fs-sm)}

/* ── Footer ── */
.site-footer{background:var(--dark);border-top:1px solid var(--border-dark);padding:2.5rem var(--px)}
.footer-inner{display:flex;align-items:center;flex-wrap:wrap;gap:1.5rem}
.footer-logo{font-family:var(--serif);font-size:1.05rem;letter-spacing:0.07em;color:var(--cream-text);margin-right:auto}
.footer-nav{display:flex;gap:2rem}
.footer-nav a{font-size:var(--fs-sm);letter-spacing:0.1em;text-transform:uppercase;color:rgba(232,221,208,0.4);transition:color 0.25s}
.footer-nav a:hover{color:var(--cream-text)}
.footer-social{display:flex;gap:0.625rem;align-items:center}
.social-icon{
  display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;
  border:1px solid var(--border-dark);
  color:rgba(232,221,208,0.4);
  transition:border-color 0.25s,color 0.25s,background 0.25s;
  flex-shrink:0;
}
.social-icon svg{width:17px;height:17px;fill:currentColor}
.social-icon:hover{border-color:var(--gold);color:var(--gold)}
.footer-legal{width:100%;display:flex;gap:2rem;font-size:0.65rem;letter-spacing:0.1em;color:rgba(232,221,208,0.2);padding-top:1.25rem;border-top:1px solid var(--border-dark)}
.footer-legal a{transition:color 0.25s}
.footer-legal a:hover{color:rgba(232,221,208,0.6)}

/* ── Light-background pages (Impressum, Datenschutz) ── */
.page-light .site-header{
  background:rgba(242,237,229,0.96);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--border-light);
}
.page-light .site-header.scrolled{
  background:rgba(242,237,229,0.98);
  box-shadow:0 1px 0 var(--border-light);
}
.page-light .logo-name{color:var(--ink)}
.page-light .logo-sub{color:var(--muted-light)}
.page-light .site-nav a{color:var(--muted-light)}
.page-light .site-nav a:hover{color:var(--ink)}
.page-light .nav-cta{border-color:rgba(26,21,18,0.25);color:var(--ink)!important}
.page-light .nav-cta:hover{background:var(--ink);color:var(--cream)!important;border-color:var(--ink)!important}
.page-light .lang-btn{color:var(--muted-light)}
.page-light .lang-btn:hover{color:var(--ink)}
.page-light .menu-btn span{background:var(--ink)}

/* ── Legal pages ── */
@keyframes legalTitleReveal{
  from{opacity:0;transform:translateY(28px) skewY(0.8deg)}
  to  {opacity:1;transform:none}
}
@keyframes legalLineGrow{
  from{transform:scaleX(0);opacity:0}
  to  {transform:scaleX(1);opacity:1}
}

.legal-wrap{max-width:780px;margin:0 auto;padding:calc(var(--py) + 4rem) var(--px) var(--py)}

.legal-wrap h1{
  font-family:var(--serif);
  font-size:clamp(2.5rem,5vw,5rem);
  font-weight:300;color:var(--ink);
  letter-spacing:-0.03em;line-height:0.95;
  margin-bottom:0.5rem;
  animation:legalTitleReveal 1s var(--ease) both;
}
.legal-title-line{
  display:block;height:1px;
  background:var(--gold);transform-origin:left;
  margin-bottom:3.5rem;margin-top:1.5rem;
  animation:legalLineGrow 1.1s var(--ease) 0.3s both;
}

.legal-wrap h2{
  font-family:var(--serif);
  font-size:clamp(1.25rem,2.2vw,1.9rem);
  font-weight:400;color:var(--ink);
  margin:3rem 0 1rem;letter-spacing:-0.01em;
  padding-left:1.25rem;
  position:relative;
}
.legal-wrap h2::before{
  content:'';
  position:absolute;left:0;top:0.15em;bottom:0.15em;
  width:2px;background:var(--gold);
  transform:scaleY(0);transform-origin:top;
  transition:transform 0.55s var(--ease);
}
.legal-wrap h2.is-visible::before{transform:scaleY(1)}

.legal-wrap h3{
  font-family:var(--sans);font-size:var(--fs-sm);
  font-weight:500;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--muted-light);margin:2rem 0 0.625rem;
}
.legal-wrap p,.legal-wrap li{
  font-size:var(--fs-sm);color:var(--muted-light);
  line-height:1.9;margin-bottom:1rem;max-width:70ch;
}
.legal-wrap ul{padding-left:1.5rem;margin-bottom:1rem}
.legal-wrap address{font-style:normal}
.legal-wrap a{color:var(--gold);transition:opacity 0.2s}
.legal-wrap a:hover{opacity:0.7}
.legal-uppercase{font-size:0.7rem;line-height:2;color:var(--muted-light);margin-bottom:1rem}
.legal-wrap a{color:var(--gold);transition:opacity 0.2s}
.legal-wrap a:hover{opacity:0.7}
.legal-wrap address{font-style:normal}
.legal-uppercase{font-size:0.72rem;line-height:1.9;color:var(--muted-light);margin-bottom:0.875rem}

/* ── Landing hero (portraits/weddings pages) ── */
.landing-hero{
  min-height:92svh;display:flex;flex-direction:column;justify-content:flex-end;
  padding:var(--py) var(--px);padding-top:7rem;
  position:relative;overflow:hidden;background:var(--dark);
}
.landing-bg{position:absolute;inset:0}
.landing-bg img{width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:brightness(.48)}
.landing-content{position:relative;z-index:2;max-width:960px}
.landing-content .eyebrow{margin-bottom:1.25rem}
.landing-content h1{
  font-family:var(--serif);font-size:var(--fs-h1);
  font-weight:300;line-height:0.88;letter-spacing:-0.025em;
  color:var(--cream-text);text-transform:uppercase;margin-bottom:2rem;
}
.landing-content p{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(1.1rem,2vw,1.75rem);
  color:rgba(232,221,208,0.72);max-width:48ch;line-height:1.5;margin-bottom:3rem;
}
.btn-outline{
  display:inline-flex;padding:1rem 2.75rem;
  border:1px solid rgba(232,221,208,0.35);
  color:var(--cream-text);font-size:var(--fs-sm);
  font-weight:400;letter-spacing:0.14em;text-transform:uppercase;
  transition:background 0.25s,border-color 0.25s;
}
.btn-outline:hover{background:var(--cream-text);color:var(--dark);border-color:var(--cream-text)}

/* ── Process steps ── */
.process-section{padding:var(--py) var(--px)}
.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-top:clamp(3rem,5vw,4.5rem)}
.process-step{padding-top:2rem;border-top:1px solid var(--border-light)}
.step-num{font-family:var(--serif);font-size:3.5rem;font-weight:300;color:var(--border-light);line-height:1;margin-bottom:1rem}
.process-step h3{font-family:var(--serif);font-size:var(--fs-h3);font-weight:300;color:var(--ink);margin-bottom:0.875rem}
.process-step p{color:var(--muted-light);line-height:1.8}

/* ── Breathing photos ── */
@keyframes breathe{
  from{transform:scale(1)}
  to  {transform:scale(1.022)}
}
@media(prefers-reduced-motion:no-preference){
  .hero-right img{
    animation:breathe 9s ease-in-out infinite alternate;
  }
  .cat-item img{
    animation:breathe 11s ease-in-out infinite alternate;
  }
  .cat-item:nth-child(2) img{animation-delay:-3.5s}
  .cat-item:nth-child(3) img{animation-delay:-7s}
  .cat-item:hover img{animation-play-state:paused}
  .about-img img,
  .about-video-wrap video{
    animation:breathe 13s ease-in-out infinite alternate;
    animation-delay:-5s;
  }
  .about-img:hover img,
  .about-video-wrap:hover video{animation-play-state:paused}
}

/* ── Scroll reveal ── */
[data-reveal]{opacity:0;transform:translateY(32px);transition:opacity 0.8s var(--ease),transform 0.8s var(--ease)}
[data-reveal].is-visible{opacity:1;transform:none}

/* ── Lightbox ── */
.lb-overlay{
  position:fixed;inset:0;z-index:600;
  background:rgba(16,14,12,0.96);
  display:none;align-items:center;justify-content:center;
  cursor:zoom-out;
}
.lb-overlay.open{display:flex}
.lb-overlay img{max-width:92vw;max-height:90svh;object-fit:contain}
.lb-close{
  position:absolute;top:1.5rem;right:1.5rem;
  font-size:1.5rem;color:var(--cream-text);opacity:0.5;
  transition:opacity 0.25s;background:none;border:none;cursor:pointer;
}
.lb-close:hover{opacity:1}

/* ── Responsive ── */
@media(max-width:1024px){
  .testi-grid{grid-template-columns:1fr 1fr}
  .testi:last-child{grid-column:span 2}
  .contact-wrap{grid-template-columns:1fr}
}
@media(max-width:768px){
  .site-header{padding:1.25rem 1.5rem}
  .site-nav{
    position:fixed;inset:0;background:var(--dark);
    flex-direction:column;justify-content:center;align-items:center;
    gap:2.5rem;
    transform:translateX(100%);transition:transform 0.45s var(--ease);z-index:210;
  }
  .site-nav.open{transform:none}
  .site-nav a{font-size:1.25rem}
  .menu-btn{display:flex}
  .lang-btn{display:none}
  .hero{grid-template-columns:1fr;min-height:100svh}
  .hero-right{height:55vw;min-height:280px}
  .hero-left{padding:5rem 1.5rem 2.5rem}
  .cat-grid{grid-template-columns:1fr;grid-template-rows:auto;min-height:unset}
  .cat-item{height:72vw}
  .cat-item:nth-child(2){grid-row:auto;height:92vw}
  .about-body{grid-template-columns:1fr}
  .about-img{aspect-ratio:4/3;max-height:420px;overflow:hidden}
  .about-img img{aspect-ratio:auto;height:100%}
  .gal-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .gal-item:nth-child(2){grid-row:auto}
  .gal-item img,.gal-item:nth-child(2) img{aspect-ratio:3/4}
  .process-grid{grid-template-columns:1fr}
  .testi-grid{grid-template-columns:1fr}
  .testi:last-child{grid-column:auto}
  .form-row{grid-template-columns:1fr}
  .footer-inner{flex-direction:column;align-items:flex-start}
  .footer-logo{margin-right:0}
  .float-cta{bottom:1.25rem;right:1.25rem}
}
@media(prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1;transform:none;transition:none}
  .marquee-track{animation:none}
  .scroll-line{animation:none}
}
