/* ==========================================================================
   BEN LARIBI DATTES — Design system
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,340;0,9..144,440;0,9..144,560;0,9..144,650;0,9..144,720;1,9..144,500&family=Inter:wght@300;400;500;600;700;800&display=swap');

:root{
  --gold-light:#f0c565;
  --gold:#d1a13a;
  --gold-dark:#a9791f;
  --green:#2f6b3a;
  --green-dark:#1c4423;
  --green-deep:#122d18;
  --black:#15130f;
  --charcoal:#221f19;
  --cream:#fbf6ea;
  --cream-2:#f4ead2;
  --ink:#2a2419;
  --ink-soft:#5b5344;
  --red:#8f2323;
  --white:#ffffff;

  --font-head:'Fraunces', Georgia, serif;
  --font-body:'Inter', 'Segoe UI', sans-serif;

  --radius:14px;
  --radius-sm:8px;
  --shadow:0 18px 40px -18px rgba(20,17,10,.35);
  --shadow-sm:0 8px 20px -10px rgba(20,17,10,.3);
  --container:1200px;
  --header-h:126px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--cream);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4{font-family:var(--font-head);margin:0 0 .5em;line-height:1.15;color:var(--green-deep);font-weight:700;letter-spacing:-.012em;}
p{margin:0 0 1em;color:var(--ink-soft);}
button{font-family:inherit;}
.container{max-width:var(--container);margin:0 auto;padding:0 28px;}
section{position:relative;}
.hide{display:none !important;}

/* ---------- lang toggle: show/hide by data-lang ---------- */
[data-fr],[data-en]{}
html[data-lang="fr"] [data-en-only]{display:none !important;}
html[data-lang="en"] [data-fr-only]{display:none !important;}

/* ---------- utility ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-body);font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;font-size:.75rem;color:var(--gold-dark);
  margin-bottom:14px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--gold);display:inline-block;}
.section-head{max-width:680px;margin:0 auto 48px;text-align:center;}
.section-head h2{font-size:clamp(1.7rem,3.2vw,2.5rem);}
.section-head p{font-size:1.02rem;}
.section-head.left{margin:0 0 40px;text-align:left;}

.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 30px;border-radius:100px;
  font-weight:600;font-size:.92rem;letter-spacing:.02em;
  border:1.5px solid transparent;cursor:pointer;
  transition:all .25s ease;white-space:nowrap;
}
.btn-primary{background:linear-gradient(135deg,var(--gold-light),var(--gold-dark));color:var(--green-deep);box-shadow:var(--shadow-sm);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 28px -12px rgba(169,121,31,.55);}
.btn-outline{border-color:rgba(255,255,255,.55);color:var(--white);}
.btn-outline:hover{background:rgba(255,255,255,.12);border-color:var(--white);}
.btn-dark{background:var(--green-deep);color:var(--cream);}
.btn-dark:hover{background:var(--green-dark);transform:translateY(-2px);}
.btn-sm{padding:10px 20px;font-size:.82rem;}

/* ---------- header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  height:var(--header-h);
  display:flex;align-items:center;
  background:rgba(251,246,234,.96);
  backdrop-filter:blur(8px);
  box-shadow:0 2px 18px rgba(20,17,10,.08);
  transition:background .35s ease, box-shadow .35s ease, height .35s ease;
}
.site-header .container{display:flex;align-items:center;justify-content:space-between;width:100%;position:relative;}
.site-header.solid{
  height:96px;
}
.brand{display:flex;align-items:center;gap:12px;flex:none;min-width:0;overflow:hidden;}
.brand-mark{
  height:100px;width:100px;flex:none;
  display:flex;align-items:center;justify-content:center;
  position:relative;
}
.brand-mark img{height:100%;width:100%;object-fit:contain;display:block;}
/* horizontal logo in the header */
.brand-logo{display:block;height:104px;width:auto;max-width:none;transition:height .35s ease;}
.site-header.solid .brand-logo{height:82px;}
@media (max-width:1280px){.brand-logo{height:80px;}.site-header.solid .brand-logo{height:70px;}}
.brand-word{display:flex;flex-direction:column;line-height:1.05;min-width:0;}
.brand-word b{font-family:var(--font-head);font-size:1.18rem;letter-spacing:.03em;color:var(--green-deep);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.brand-word span{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dark);font-weight:600;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.main-nav{
  display:flex;align-items:center;gap:38px;
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
}
.main-nav a{
  font-size:.92rem;font-weight:500;letter-spacing:.02em;
  color:var(--ink);position:relative;padding:6px 0;
}
.main-nav a::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:0;
  background:var(--gold);transition:width .25s ease;
}
.main-nav a:hover::after,.main-nav a.active::after{width:100%;}
.main-nav a.active{color:var(--gold-dark);}

.header-actions{display:flex;align-items:center;gap:18px;flex:none;}
.lang-toggle{
  display:flex;border:1.5px solid rgba(42,36,25,.25);border-radius:100px;overflow:hidden;
}
.lang-toggle button{
  border:0;background:transparent;padding:6px 13px;font-size:.75rem;font-weight:700;
  letter-spacing:.05em;color:var(--ink);cursor:pointer;
}
.lang-toggle button.active{background:var(--gold);color:var(--green-deep);}
.menu-toggle{
  display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;
}
.menu-toggle span{width:24px;height:2px;background:var(--ink);transition:.25s;}
.nav-extra{display:none;}

@media (max-width:920px){
  :root{--header-h:104px;}
  .site-header.solid{height:84px;}
  /* full-screen mobile menu: cream panel under the logo bar, large serif links */
  .main-nav{
    position:fixed;top:0;left:0;right:auto;transform:none;z-index:1;
    width:100vw;height:100vh;height:100dvh;
    background:var(--cream);
    flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;
    padding:calc(var(--header-h) + 14px) 24px calc(28px + env(safe-area-inset-bottom));
    overflow-y:auto;counter-reset:navnum;
    opacity:0;visibility:hidden;transition:opacity .3s ease, visibility .3s ease;
  }
  .main-nav::before{
    content:"";position:absolute;left:24px;right:24px;top:calc(var(--header-h) - 1px);height:1px;
    background:linear-gradient(90deg,transparent,rgba(169,121,31,.45),transparent);
  }
  .main-nav.open{opacity:1;visibility:visible;}
  .main-nav > a{
    counter-increment:navnum;
    display:flex;align-items:center;gap:16px;
    font-family:var(--font-head);font-size:1.65rem;font-weight:600;letter-spacing:-.01em;
    color:var(--green-deep);padding:18px 4px;border-bottom:1px solid rgba(42,36,25,.1);
    transform:translateY(14px);opacity:0;transition:transform .4s ease, opacity .4s ease, color .2s;
  }
  .main-nav.open > a{transform:none;opacity:1;}
  .main-nav > a::before{
    content:counter(navnum,decimal-leading-zero);
    font-family:var(--font-body);font-size:.72rem;font-weight:700;letter-spacing:.12em;color:var(--gold-dark);
    min-width:22px;
  }
  .main-nav > a::after{
    position:static;margin-left:auto;width:9px;height:9px;background:none;
    border-top:2px solid var(--gold);border-right:2px solid var(--gold);transform:rotate(45deg);
  }
  .main-nav > a:hover::after,.main-nav > a.active::after{width:9px;}
  .main-nav > a.active{color:var(--gold-dark);}
  .nav-extra{display:flex;flex-direction:column;gap:14px;margin-top:auto;padding-top:30px;}
  .nav-extra .btn{justify-content:center;width:100%;padding:15px 24px;font-size:.95rem;}
  .nav-extra-line{display:flex;align-items:center;gap:12px;font-size:.92rem;color:var(--ink-soft);}
  .nav-extra-line svg{width:18px;height:18px;color:var(--gold-dark);flex:none;}
  .brand,.header-actions{position:relative;z-index:2;}
  .menu-toggle{display:flex;flex:none;}
  .menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .menu-toggle.is-open span:nth-child(2){opacity:0;}
  .menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  body.menu-open{overflow:hidden;}
  body.menu-open .to-top{opacity:0;pointer-events:none;}
  .header-actions{gap:10px;}
  .brand{gap:8px;min-width:0;}
  .brand-mark{height:80px;width:80px;}
  .brand-logo,.site-header.solid .brand-logo{height:78px;}
  .brand-word{min-width:0;}
  .brand-word b{font-size:1rem;}
}

@media (max-width:560px){
  :root{--header-h:88px;}
  .site-header.solid{height:72px;}
  .container{padding:0 18px;}
  .brand-mark{height:64px;width:64px;}
  .brand-logo,.site-header.solid .brand-logo{height:56px;}
  .lang-toggle button{padding:6px 10px;}
  .header-actions .btn-sm{display:none;} /* the quote button lives in the mobile menu */
}

@media (max-width:400px){
  :root{--header-h:78px;}
  .site-header.solid{height:62px;}
  .header-actions .btn-sm{display:none;}
  .header-actions{gap:6px;}
  .brand-mark{height:54px;width:54px;}
  .brand-logo,.site-header.solid .brand-logo{height:46px;}
  .brand-word b{font-size:.86rem;}
  .lang-toggle button{padding:5px 8px;font-size:.7rem;}
  .menu-toggle{padding:6px 0 6px 6px;}
  .menu-toggle span{width:20px;}
}

/* ---------- ufuk-connect ---------- */
.ufuk-connect{
  min-height:92vh;display:flex;align-items:center;
  position:relative;overflow:hidden;
  background:linear-gradient(160deg,var(--green-deep) 0%, var(--green-dark) 45%, var(--black) 100%);
  padding-top:var(--header-h);
}
.ufuk-connect-photo{position:absolute;inset:0;}
.ufuk-connect-photo img{width:100%;height:100%;object-fit:cover;display:none;}
.ufuk-connect-photo.has-img img{display:block;}
.ufuk-connect-photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(160deg, rgba(18,45,24,.92) 0%, rgba(18,45,24,.72) 45%, rgba(10,10,8,.85) 100%);
}
.ufuk-connect-photo.no-overlay::after{display:none;}

/* animated ufuk-connect slider (homepage) */
.ufuk-connect-slider{position:absolute;inset:0;overflow:hidden;}
.ufuk-connect-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.5s ease;}
.ufuk-connect-slide.is-active{opacity:1;}
.ufuk-connect-slide img{width:100%;height:100%;object-fit:cover;display:none;transform:scale(1.02);}
.ufuk-connect-slide.has-img img{display:block;}
.ufuk-connect-slide.is-active.has-img img{animation:kenburns 7s ease-out forwards;}
@keyframes kenburns{from{transform:scale(1.02);}to{transform:scale(1.13);}}
.ufuk-connect-slider::after{
  content:"";position:absolute;inset:0;z-index:1;
}
.ufuk-connect-dots{position:absolute;left:50%;bottom:40px;transform:translateX(-50%);display:flex;gap:10px;z-index:3;}
.ufuk-connect-dots button{width:8px;height:8px;border-radius:50%;background:rgba(251,246,234,.4);border:1px solid rgba(251,246,234,.5);padding:0;cursor:pointer;transition:.25s;}
.ufuk-connect-dots button.is-active{background:var(--gold-light);border-color:var(--gold-light);width:24px;border-radius:5px;}
@media (prefers-reduced-motion: reduce){.ufuk-connect-slide.is-active.has-img img{animation:none;}}
@media (max-width:640px){
  .ufuk-connect-slide img{object-fit:cover;transform:none;}
  .ufuk-connect-slider::after{
    background:linear-gradient(180deg, rgba(12,30,16,.55) 0%, rgba(12,30,16,.3) 38%, rgba(10,14,9,.78) 100%);
  }
}

.ufuk-connect-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;border:1px solid rgba(251,246,234,.4);background:rgba(18,45,24,.35);
  color:var(--gold-light,#fff);cursor:pointer;transition:.25s;backdrop-filter:blur(2px);
}
.ufuk-connect-arrow svg{width:20px;height:20px;}
.ufuk-connect-arrow:hover{background:rgba(18,45,24,.6);border-color:var(--gold-light);}
.ufuk-connect-arrow-prev{left:20px;}
.ufuk-connect-arrow-next{right:20px;}
@media (max-width:640px){
  .ufuk-connect-arrow{display:none;} /* swipe + dots on phones */
}

.ufuk-connect .container{position:relative;z-index:2;padding-top:40px;padding-bottom:70px;}
.ufuk-connect-inner{max-width:720px;}
.ufuk-connect .eyebrow{color:var(--gold-light);}
.ufuk-connect .eyebrow::before{background:var(--gold-light);}
.ufuk-connect h1{
  color:var(--white);font-size:clamp(2.4rem,5.6vw,4.1rem);
  font-weight:700;margin-bottom:22px;
}
.ufuk-connect h1 em{color:var(--gold-light);font-style:normal;}
.ufuk-connect p.lead{color:rgba(251,246,234,.85);font-size:1.12rem;max-width:560px;margin-bottom:34px;}
.ufuk-connect-actions{display:flex;gap:16px;flex-wrap:wrap;}

/* hero copy (all pages): white + gold, each with a thin dark halo so it stays legible on light or dark photos */
.ufuk-connect .container{
  --hero-halo:
    0 0 1px rgba(10,22,12,.95),
    0 1px 2px rgba(10,22,12,.9),
    0 0 10px rgba(10,22,12,.55),
    0 2px 22px rgba(10,22,12,.45);
}
.ufuk-connect .container .eyebrow{color:#ffd46e;font-weight:700;text-shadow:var(--hero-halo);}
.ufuk-connect .container .eyebrow::before{background:#ffd46e;box-shadow:0 0 0 1px rgba(10,22,12,.6);}
.ufuk-connect .container h1{color:#fff;text-shadow:var(--hero-halo);}
.ufuk-connect .container h1 em{color:#ffd46e;}
.ufuk-connect .container .eyebrow-hero{color:#fff;font-size:clamp(.95rem,1.6vw,1.15rem);letter-spacing:.1em;}
.ufuk-connect .container .eyebrow-hero::before{background:#fff;}
.ufuk-connect .container p.lead{color:#fff;font-weight:500;text-shadow:var(--hero-halo);}
.ufuk-connect .container .breadcrumb,.ufuk-connect .container .breadcrumb a{color:#fff;text-shadow:var(--hero-halo);}
/* homepage hero: company name + place, same serif style as the H1 accent, in a lighter gold */
.hero-brand{display:flex;flex-direction:column;gap:6px;margin-bottom:22px;}
.hero-brand-name{
  font-family:var(--font-head);font-weight:700;line-height:1.05;letter-spacing:-.005em;
  font-size:clamp(2.4rem,5.4vw,4rem);color:#fff;text-shadow:var(--hero-halo);
}
.hero-brand-place{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-head);font-weight:600;font-style:italic;line-height:1.2;
  font-size:clamp(1.05rem,1.8vw,1.35rem);color:#fff4d8;text-shadow:var(--hero-halo);
}
.hero-brand-place svg{width:.9em;height:.9em;flex:none;color:#ffe6a6;filter:drop-shadow(0 1px 2px rgba(10,22,12,.85));}
.ufuk-connect h1 + .hero-brand{margin-top:-4px;}
.ufuk-connect-inner:has(.hero-brand){max-width:980px;}

/* page (non-home) ufuk-connect, shorter */
.page-ufuk-connect{min-height:52vh;}
.page-ufuk-connect .ufuk-connect-inner{max-width:640px;}
.page-ufuk-connect h1{font-size:clamp(2.1rem,4.6vw,3.2rem);}
.breadcrumb{display:flex;gap:8px;color:rgba(251,246,234,.7);font-size:.85rem;margin-bottom:18px;}
.breadcrumb a:hover{color:var(--gold-light);}

/* ---------- media placeholders (auto image / fallback) ---------- */
.media{
  position:relative;border-radius:var(--radius);overflow:hidden;
  background:transparent;
  aspect-ratio: var(--ar, 4/3);
}
.media img{width:100%;height:100%;object-fit:contain;position:absolute;inset:0;opacity:0;transition:opacity .45s ease;}
.media.has-img img{opacity:1;}
/* While a photo loads: soft shimmer; the placeholder icon only shows if it fails. */
.media:not(.has-img):not(.no-img){background:linear-gradient(100deg,rgba(209,161,58,.06) 30%,rgba(209,161,58,.16) 50%,rgba(209,161,58,.06) 70%) 0 0/200% 100%;animation:media-shimmer 1.4s linear infinite;}
@keyframes media-shimmer{to{background-position:-200% 0;}}
@media (prefers-reduced-motion: reduce){.media:not(.has-img){animation:none;}}
.media .ph{
  position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;color:rgba(251,246,234,.55);
  background:
    radial-gradient(circle at 20% 15%, rgba(209,161,58,.18), transparent 55%),
    radial-gradient(circle at 85% 85%, rgba(209,161,58,.12), transparent 50%);
}
.media.no-img .ph{display:flex;}
.media .ph svg{width:34%;max-width:70px;opacity:.55;}
.media .ph small{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;opacity:.8;text-align:center;padding:0 16px;}

/* ---------- intro / split sections ---------- */
.split{
  display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;
  padding:100px 0;
}
.split.reverse{grid-template-columns:1fr 1fr;}
.split.reverse .split-media{order:2;}
.split-media .media{--ar:5/4.3;}
.split-text .eyebrow{}
.split-text h2{font-size:clamp(1.7rem,3.4vw,2.35rem);}
.check-list{margin:26px 0;display:flex;flex-direction:column;gap:14px;}
.check-list li{display:flex;gap:12px;align-items:flex-start;color:var(--ink);font-weight:500;font-size:.98rem;}
.check-list li svg{flex:none;width:20px;height:20px;color:var(--gold-dark);margin-top:2px;}
@media (max-width:860px){
  .split,.split.reverse{grid-template-columns:1fr;gap:36px;padding:70px 0;}
  .split.reverse .split-media{order:0;}
}

/* ---------- band (dark full width) ---------- */
.band{
  background:var(--green-deep);color:var(--cream);padding:128px 0;position:relative;overflow:hidden;
  clip-path:polygon(0 46px, 100% 0, 100% calc(100% - 46px), 0 100%);
}
.band::before{
  content:"";position:absolute;inset:0;opacity:.08;
  background-image:radial-gradient(circle,var(--gold-light) 1px, transparent 1.4px);
  background-size:22px 22px;
}
.band h2,.band h3{color:var(--white);}
.band p{color:rgba(251,246,234,.78);}
.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;position:relative;z-index:1;margin-top:44px;}
.value-card{
  background:rgba(251,246,234,.06);border:1px solid rgba(251,246,234,.14);
  border-radius:var(--radius);padding:30px 24px;
  transition:transform .35s ease, background .35s ease, border-color .35s ease;
}
.value-card:hover{transform:translateY(-6px);background:rgba(251,246,234,.1);border-color:rgba(251,246,234,.3);}
.value-card svg{width:34px;height:34px;color:var(--gold-light);margin-bottom:16px;}
.value-card h4{color:var(--white);font-size:1.05rem;margin-bottom:8px;}
.value-card p{font-size:.9rem;margin:0;color:rgba(251,246,234,.72);}
.value-grid .reveal:nth-child(1){transition-delay:0s;}
.value-grid .reveal:nth-child(2){transition-delay:.1s;}
.value-grid .reveal:nth-child(3){transition-delay:.2s;}
.value-grid .reveal:nth-child(4){transition-delay:.3s;}
@media (max-width:920px){.value-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.value-grid{grid-template-columns:1fr;}.band{padding:96px 0;}}

/* ---------- products / cards ---------- */
.products-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.product-card{
  background:var(--white);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow-sm);transition:transform .3s ease,box-shadow .3s ease;
  display:flex;flex-direction:column;
}
.product-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.product-card .media{--ar:4/3;border-radius:0;}
.products-grid .reveal:nth-child(1){transition-delay:0s;}
.products-grid .reveal:nth-child(2){transition-delay:.12s;}
.products-grid .reveal:nth-child(3){transition-delay:.24s;}
.products-grid .reveal:nth-child(4){transition-delay:.36s;}
.product-card-body{padding:26px 26px 28px;flex:1;display:flex;flex-direction:column;}
.product-card-body h3{font-size:1.22rem;margin-bottom:8px;}
.product-card-body p{font-size:.92rem;flex:1;}
.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px;}
.tag{
  font-size:.72rem;font-weight:600;letter-spacing:.03em;color:var(--green-dark);
  background:var(--cream-2);border:1px solid rgba(169,121,31,.25);
  padding:5px 12px;border-radius:100px;
}
.product-card-body .btn{align-self:flex-start;}
@media (max-width:980px){.products-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:620px){.products-grid{grid-template-columns:1fr;}}

.section-pad{padding:100px 0;}
.section-pad.tight{padding:70px 0;}
.bg-cream2{background:var(--cream-2);}

/* product detail block (produits page) */
.product-detail{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center;padding:86px 0;border-bottom:1px solid rgba(42,36,25,.08);}
.product-detail:last-child{border-bottom:0;}
.product-detail.reverse{direction:rtl;}
.product-detail.reverse > *{direction:ltr;}
.product-detail .media{--ar:1/1;}
.pack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:24px 0 8px;}
.pack-item{
  background:var(--white);border:1px solid rgba(42,36,25,.1);border-radius:var(--radius-sm);
  padding:14px 16px;font-size:.85rem;
}
.pack-item b{display:block;font-family:var(--font-head);color:var(--green-dark);font-size:1rem;margin-bottom:2px;}
@media (max-width:860px){
  .product-detail,.product-detail.reverse{grid-template-columns:1fr;direction:ltr;gap:30px;padding:56px 0;}
}

/* ---------- gallery ---------- */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:0;padding:0;}
.gallery-item{
  position:relative;margin:0;border-radius:var(--radius);overflow:hidden;
  background:var(--cream-2);box-shadow:var(--shadow-sm);
  transition:transform .4s ease, box-shadow .4s ease;
}
.gallery-item:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.gallery-item .media{--ar:4/3;border-radius:0;}
.gallery-item .media img{transition:transform .7s ease;}
.gallery-item:hover .media img{transform:scale(1.07);}
.gallery-item--small .media img{inset:14%;width:72%;height:72%;}
.gallery-item figcaption{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:22px 16px 14px;
  background:linear-gradient(to top, rgba(18,45,24,.88), transparent);
  color:var(--white);font-size:.85rem;font-weight:600;letter-spacing:.02em;
  transform:translateY(8px);opacity:0;transition:transform .35s ease, opacity .35s ease;
}
.gallery-item:hover figcaption{transform:translateY(0);opacity:1;}
.gallery-grid .reveal:nth-child(1){transition-delay:0s;}
.gallery-grid .reveal:nth-child(2){transition-delay:.1s;}
.gallery-grid .reveal:nth-child(3){transition-delay:.2s;}
.gallery-grid .reveal:nth-child(4){transition-delay:.3s;}
@media (max-width:860px){.gallery-grid{grid-template-columns:1fr 1fr;}}
/* homepage gallery: one main image per product category, in catalogue order */
.gallery-products{display:grid;grid-template-columns:repeat(5,1fr);gap:22px;margin-top:22px;}
.gallery-product{
  display:flex;flex-direction:column;background:var(--white);border-radius:var(--radius);overflow:hidden;
  border:1px solid rgba(42,36,25,.07);box-shadow:var(--shadow-sm);transition:transform .35s ease, box-shadow .35s ease;
}
.gallery-product:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.gallery-product-media{
  position:relative;display:block;aspect-ratio:1/1;overflow:hidden;
  background:radial-gradient(circle at 50% 45%, #fff 0%, var(--cream) 55%, var(--cream-2) 100%);
}
.gallery-product-media img{
  position:absolute;inset:22px;width:calc(100% - 44px);height:calc(100% - 44px);object-fit:contain;
  filter:drop-shadow(0 12px 16px rgba(42,36,25,.22));transition:transform .5s ease;
}
.gallery-product:hover .gallery-product-media img{transform:scale(1.07);}
.gallery-product-name{
  display:flex;align-items:baseline;gap:8px;padding:14px 16px 16px;
  font-family:var(--font-head);font-weight:700;font-size:1rem;color:var(--green-deep);
  border-top:1px solid rgba(42,36,25,.06);
}
.gallery-product-num{font-family:var(--font-body);font-size:.72rem;font-weight:700;letter-spacing:.1em;color:var(--gold-dark);}
@media (max-width:1024px){.gallery-products{grid-template-columns:repeat(3,1fr);}}
@media (max-width:620px){.gallery-products{grid-template-columns:1fr 1fr;gap:14px;}.gallery-product-name{font-size:.9rem;padding:12px;}}

/* ---------- stats strip ---------- */
.strip{
  display:grid;grid-template-columns:repeat(3,1fr);
  background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);
  margin-top:-90px;position:relative;z-index:5;overflow:hidden;
}
.strip .item{padding:34px 30px;text-align:center;border-right:1px solid rgba(42,36,25,.08);}
.strip .item:last-child{border-right:0;}
.strip .item svg{width:30px;height:30px;color:var(--gold-dark);margin-bottom:10px;}
.strip .item h4{font-size:1.02rem;margin-bottom:4px;}
.strip .item p{font-size:.85rem;margin:0;}
@media (max-width:760px){.strip{grid-template-columns:1fr;margin-top:0;box-shadow:none;border-radius:0;}.strip .item{border-right:0;border-bottom:1px solid rgba(42,36,25,.08);}}

/* ---------- quote / founder ---------- */
.founder{
  position:relative;max-width:760px;margin:40px auto 0;text-align:center;
  background:var(--cream-2);border-radius:var(--radius);padding:64px 60px;
}
.founder .quote-mark{
  width:44px;height:44px;margin:0 auto 22px;color:var(--gold);opacity:.85;
}
.founder blockquote{font-family:var(--font-head);font-style:italic;font-weight:500;font-size:1.5rem;line-height:1.4;color:var(--green-deep);margin:0 0 20px;}
.founder cite{font-style:normal;font-weight:600;color:var(--gold-dark);font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;}
@media (max-width:760px){.founder{padding:44px 30px;}}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:50px;align-items:start;}
.contact-card{
  background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:40px 34px;
}
.contact-line{display:flex;gap:16px;align-items:flex-start;padding:18px 0;border-bottom:1px solid rgba(42,36,25,.08);}
.contact-line:last-child{border-bottom:0;}
.contact-line svg{width:22px;height:22px;flex:none;color:var(--gold-dark);margin-top:2px;}
.contact-line h4{font-size:.95rem;margin-bottom:2px;}
.contact-line p,.contact-line a{margin:0;font-size:.92rem;color:var(--ink-soft);}
.contact-line a:hover{color:var(--gold-dark);}
.social-row{display:flex;gap:10px;margin-top:22px;}
.social-row a{
  width:38px;height:38px;border-radius:50%;background:var(--cream-2);
  display:flex;align-items:center;justify-content:center;color:var(--green-dark);
  transition:.2s;
}
.social-row a:hover{background:var(--gold);color:var(--white);}
.social-row svg{width:17px;height:17px;}

.form-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:44px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.field{margin-bottom:20px;}
.field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:7px;color:var(--ink);}
.field input,.field textarea,.field select{
  width:100%;border:1.5px solid rgba(42,36,25,.15);border-radius:var(--radius-sm);
  padding:12px 14px;font-family:inherit;font-size:.94rem;background:var(--cream);
  transition:border-color .2s;
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--gold);}
.field textarea{resize:vertical;min-height:130px;}
.form-note{font-size:.8rem;color:var(--ink-soft);margin-top:10px;}
@media (max-width:920px){.contact-grid{grid-template-columns:1fr;}.form-row{grid-template-columns:1fr;}}

.map-wrap{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);margin-top:34px;}
.map-wrap iframe{width:100%;height:380px;border:0;display:block;filter:grayscale(.15) sepia(.08);}

/* ---------- CTA banner ---------- */
.cta-banner{
  background:linear-gradient(120deg,var(--gold-dark),var(--gold));
  border-radius:var(--radius);padding:56px 60px;
  display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;
  box-shadow:var(--shadow);
  clip-path:polygon(0 0, calc(100% - 44px) 0, 100% 44px, 100% 100%, 0 100%);
}
@media (max-width:560px){.cta-banner{clip-path:none;}}
.cta-banner h3{color:var(--green-deep);font-size:1.55rem;margin-bottom:6px;}
.cta-banner p{color:rgba(21,19,15,.72);margin:0;}
.cta-banner .btn-dark{flex:none;}

/* ---------- footer ---------- */
.site-footer{background:var(--black);color:rgba(251,246,234,.72);padding:80px 0 0;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:44px;padding-bottom:60px;border-bottom:1px solid rgba(251,246,234,.1);}
.footer-brand p{color:rgba(251,246,234,.6);font-size:.9rem;max-width:280px;}
.footer-brand .brand-word b{color:var(--cream);}
.footer-col h5{color:var(--white);font-family:var(--font-head);font-size:1.02rem;margin-bottom:18px;}
.footer-col ul{display:flex;flex-direction:column;gap:11px;}
.footer-col a{font-size:.9rem;color:rgba(251,246,234,.68);}
.footer-col a:hover{color:var(--gold-light);}
.footer-col .contact-line{padding:0 0 14px;border:0;}
.footer-col .contact-line svg{color:var(--gold-light);}
.footer-col .contact-line p,.footer-col .contact-line a{color:rgba(251,246,234,.68);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding:22px 0;font-size:.8rem;color:rgba(251,246,234,.5);flex-wrap:wrap;gap:10px;}
.footer-credit a{color:rgba(251,246,234,.75);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(214,170,74,.5);}
.footer-credit a:hover{color:var(--gold-light);}
@media (max-width:920px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}

/* ---------- reveal animation ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

/* ---------- back to top ---------- */
.to-top{
  position:fixed;right:24px;bottom:24px;width:46px;height:46px;border-radius:50%;
  background:var(--green-deep);color:var(--gold-light);display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-sm);opacity:0;pointer-events:none;transform:translateY(10px);
  transition:.3s;z-index:900;border:0;cursor:pointer;
}
.to-top.show{opacity:1;pointer-events:auto;transform:translateY(0);}
.to-top svg{width:18px;height:18px;}

/* ---------- misc page: entreprise timeline ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.pillar{
  background:var(--white);border-radius:var(--radius);padding:34px 28px;box-shadow:var(--shadow-sm);
  transition:transform .35s ease, box-shadow .35s ease;
}
.pillar:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.pillar svg{width:32px;height:32px;color:var(--gold-dark);margin-bottom:16px;}
.pillar h4{font-size:1.05rem;margin-bottom:8px;}
.pillar p{font-size:.9rem;margin:0;}
.pillars .reveal:nth-child(1){transition-delay:0s;}
.pillars .reveal:nth-child(2){transition-delay:.12s;}
.pillars .reveal:nth-child(3){transition-delay:.24s;}
@media (max-width:860px){.pillars{grid-template-columns:1fr;}}

/* ---------- products catalogue ---------- */
.cat-nav{
  position:sticky;top:var(--header-h);z-index:50;
  background:rgba(251,246,234,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(42,36,25,.08);
}
.cat-nav .container{display:flex;gap:8px;overflow-x:auto;padding-top:14px;padding-bottom:14px;scrollbar-width:none;}
.cat-nav .container::-webkit-scrollbar{display:none;}
.cat-nav a{
  flex:none;padding:9px 18px;border-radius:999px;font-size:.85rem;font-weight:600;
  color:var(--ink);border:1px solid rgba(42,36,25,.14);background:var(--white);transition:.25s;white-space:nowrap;
}
.cat-nav a:hover{border-color:var(--gold);color:var(--gold-dark);}
.cat-nav a.is-current{background:var(--green-deep);border-color:var(--green-deep);color:var(--cream);}

.cat-section{padding:90px 0;scroll-margin-top:calc(var(--header-h) + 60px);}
.cat-section.alt{background:var(--cream-2);}
.cat-head{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:start;max-width:820px;margin-bottom:46px;}
.cat-num{
  font-family:var(--font-head);font-weight:700;font-size:clamp(3.4rem,7vw,5.2rem);line-height:.85;
  color:transparent;-webkit-text-stroke:1.5px var(--gold);
}
.cat-head h2{font-size:clamp(1.7rem,3.2vw,2.4rem);margin:6px 0 10px;}
.cat-head p{max-width:600px;}
.cat-list{list-style:none;padding:0;margin:0;display:grid;gap:6px;max-width:600px;}
.cat-list li{position:relative;padding-left:18px;}
.cat-list li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:7px;border-radius:50%;background:var(--gold);}
.cat-note{margin-top:10px;font-size:.9rem;font-style:italic;color:var(--gold-dark);}

.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.cat-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.cat-card{
  background:var(--white);border-radius:var(--radius);overflow:hidden;
  border:1px solid rgba(42,36,25,.07);box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;transition:transform .35s ease, box-shadow .35s ease;
}
.cat-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.cat-card-media{
  position:relative;aspect-ratio:1/1;overflow:hidden;
  background:radial-gradient(circle at 50% 45%, #fff 0%, var(--cream) 55%, var(--cream-2) 100%);
}
.cat-card-media img{
  position:absolute;inset:28px;width:calc(100% - 56px);height:calc(100% - 56px);object-fit:contain;
  filter:drop-shadow(0 14px 18px rgba(42,36,25,.22));transition:transform .45s ease;
}
.cat-card:hover .cat-card-media img{transform:scale(1.06);}
.cat-card-body{padding:18px 20px 22px;border-top:1px solid rgba(42,36,25,.06);}
.cat-card-variety{
  display:block;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold-dark);margin-bottom:4px;
}
.cat-card-body h3{font-size:1.12rem;margin:0;color:var(--green-deep);}

.cat-wide{
  display:grid;grid-template-columns:1.15fr .85fr;align-items:stretch;
  background:var(--white);border-radius:calc(var(--radius) + 4px);overflow:hidden;
  box-shadow:var(--shadow-sm);border:1px solid rgba(42,36,25,.07);
}
.cat-wide-media{
  position:relative;aspect-ratio:16/10;overflow:hidden;
  background:radial-gradient(circle at 50% 45%, #fff 0%, var(--cream) 55%, var(--cream-2) 100%);
}
.cat-wide-media img{position:absolute;inset:34px;width:calc(100% - 68px);height:calc(100% - 68px);object-fit:contain;filter:drop-shadow(0 16px 20px rgba(42,36,25,.22));}
.cat-wide-body{padding:40px 44px;display:flex;flex-direction:column;justify-content:center;border-left:1px solid rgba(42,36,25,.06);}
.cat-wide-label{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dark);}
.cat-wide-body .btn{align-self:flex-start;}
.cat-chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 24px;}
.cat-chip{
  padding:7px 14px;border-radius:999px;font-size:.82rem;font-weight:600;
  background:var(--cream);border:1px solid rgba(169,121,31,.28);color:var(--green-deep);
}

@media (max-width:1024px){.cat-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:860px){
  .cat-grid,.cat-grid.cols-3{grid-template-columns:1fr 1fr;gap:16px;}
  .cat-wide{grid-template-columns:1fr;}
  .cat-wide-body{border-left:0;border-top:1px solid rgba(42,36,25,.06);padding:28px 24px 30px;}
  .cat-section{padding:64px 0;}
  .cat-head{gap:18px;margin-bottom:32px;}
}
@media (max-width:480px){
  .cat-head{grid-template-columns:1fr;}
  .cat-card-media img{inset:16px;width:calc(100% - 32px);height:calc(100% - 32px);}
  .cat-card-body{padding:14px 14px 16px;}
  .cat-card-body h3{font-size:1rem;}
}

/* ==========================================================================
   Mobile polish (phones & small tablets)
   ========================================================================== */
@media (max-width:640px){
  body{line-height:1.6;}
  p{font-size:.97rem;}
  .btn{padding:13px 24px;font-size:.9rem;}
  .section-pad{padding:64px 0;}
  .section-pad.tight{padding:44px 0;}
  .section-head{margin-bottom:32px;}
  .section-head h2{font-size:1.65rem;}
  .section-head p{font-size:.97rem;}
  .eyebrow{font-size:.7rem;margin-bottom:10px;}

  /* hero */
  .ufuk-connect{min-height:auto;align-items:flex-end;}
  .ufuk-connect .container{padding-top:56px;padding-bottom:84px;}
  .ufuk-connect h1{font-size:2.15rem;margin-bottom:16px;}
  .hero-brand{margin-bottom:16px;}
  .hero-brand-name{font-size:1.75rem;}
  .hero-brand-place{font-size:1.02rem;}
  .ufuk-connect p.lead{font-size:1rem;line-height:1.55;margin-bottom:26px;}
  .ufuk-connect-actions{gap:10px;}
  .ufuk-connect-actions .btn{flex:1 1 0;justify-content:center;padding:13px 14px;}
  .ufuk-connect-dots{bottom:30px;}
  .page-ufuk-connect{min-height:auto;}
  .ufuk-connect-photo.no-overlay::after{
    display:block;
    background:linear-gradient(180deg, rgba(12,30,16,.7) 0%, rgba(12,30,16,.5) 55%, rgba(10,14,9,.72) 100%);
  }
  .page-ufuk-connect .container{padding-top:48px;padding-bottom:56px;}
  .page-ufuk-connect h1{font-size:1.95rem;}
  .breadcrumb{font-size:.8rem;margin-bottom:12px;}

  /* key-facts strip: compact rows overlapping the hero */
  .strip{margin-top:-40px;border-radius:var(--radius);box-shadow:var(--shadow);}
  .strip .item{
    display:grid;grid-template-columns:44px 1fr;column-gap:14px;align-items:center;
    text-align:left;padding:16px 18px;
  }
  .strip .item svg{grid-row:span 2;width:26px;height:26px;margin:0;justify-self:center;}
  .strip .item h4{font-size:.98rem;margin:0;}
  .strip .item p{font-size:.84rem;line-height:1.4;}

  /* split sections */
  .split,.split.reverse{padding:0;gap:26px;}
  .split-text h2{font-size:1.6rem;}
  .check-list{margin:20px 0 24px;gap:11px;}
  .check-list li{font-size:.93rem;}

  /* product cards */
  .products-grid{gap:18px;}
  .product-card .media{--ar:16/11;background:#fff;}
  .product-card .media img{inset:12px;width:calc(100% - 24px);height:calc(100% - 24px);}
  .product-card-body{padding:20px 20px 22px;}
  .product-card-body h3{font-size:1.15rem;}
  .product-card-body p{font-size:.9rem;margin-bottom:.5em;}
  .tag-row{gap:6px;margin:10px 0 16px;}
  .tag{font-size:.7rem;padding:4px 10px;}
  .product-card-body .btn{align-self:stretch;justify-content:center;}

  /* quote */
  .founder{margin-top:0;padding:36px 22px;}
  .founder .quote-mark{width:34px;height:34px;margin-bottom:16px;}
  .founder blockquote{font-size:1.18rem;}
  .founder cite{font-size:.75rem;}

  /* values band: two compact columns */
  .band{padding:84px 0;clip-path:polygon(0 24px,100% 0,100% calc(100% - 24px),0 100%);}
  .value-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:28px;}
  .value-card{padding:20px 16px;}
  .value-card svg{width:26px;height:26px;margin-bottom:10px;}
  .value-card h4{font-size:.95rem;}
  .value-card p{font-size:.8rem;line-height:1.45;}

  /* gallery: first photo full width, captions always visible (no hover on touch) */
  .gallery-grid{grid-template-columns:1fr 1fr;gap:12px;}
  .gallery-grid .gallery-item:first-child{grid-column:1 / -1;}
  .gallery-grid .gallery-item:first-child .media img{object-fit:cover;}
  .gallery-item figcaption{opacity:1;transform:none;font-size:.78rem;padding:18px 12px 10px;}
  .gallery-products{gap:12px;margin-top:12px;}
  .gallery-products .gallery-product:last-child{grid-column:1 / -1;}
  .gallery-products .gallery-product:last-child .gallery-product-media{aspect-ratio:2/1;}
  .gallery-product-media img{inset:14px;width:calc(100% - 28px);height:calc(100% - 28px);}
  .gallery-product-name{font-size:.88rem;padding:11px 12px 12px;}

  /* CTA */
  .cta-banner{padding:32px 24px;text-align:center;justify-content:center;gap:20px;}
  .cta-banner h3{font-size:1.3rem;}
  .cta-banner .btn-dark{width:100%;justify-content:center;}

  /* about page */
  .pillars{gap:14px;}
  .pillar{padding:24px 22px;}

  /* products page */
  .cat-nav .container{padding-top:10px;padding-bottom:10px;}
  .cat-nav a{padding:8px 14px;font-size:.8rem;}
  .cat-section{padding:52px 0;}
  .cat-head{grid-template-columns:auto 1fr;gap:14px;margin-bottom:24px;}
  .cat-num{font-size:2.8rem;}
  .cat-head h2{font-size:1.5rem;margin-top:2px;}
  .cat-grid,.cat-grid.cols-3{gap:12px;}
  .cat-wide-media{aspect-ratio:4/3;}
  .cat-wide-media img{inset:18px;width:calc(100% - 36px);height:calc(100% - 36px);}
  .cat-wide-body .btn{align-self:stretch;justify-content:center;}

  /* contact */
  .contact-grid{gap:22px;}
  .contact-card{padding:26px 20px;}
  .form-card{padding:28px 20px;}
  .field input,.field textarea,.field select{font-size:16px;} /* stops iOS zoom on focus */
  .form-card .btn{width:100%;justify-content:center;}
  .map-wrap{margin-top:22px;}
  .map-wrap iframe{height:280px;}

  /* footer */
  .site-footer{padding-top:56px;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:30px 20px;padding-bottom:36px;}
  .footer-brand,.footer-grid .footer-col:last-child{grid-column:1 / -1;}
  .footer-brand p{max-width:none;}
  .footer-col h5{margin-bottom:12px;}
  .footer-bottom{flex-direction:column;text-align:center;gap:4px;padding:18px 0 22px;}

  .to-top{right:16px;bottom:16px;width:42px;height:42px;}
}

@media (max-width:480px){
  .cat-head{grid-template-columns:auto 1fr;}
  .cat-num{font-size:2.3rem;}
}

/* ---------- catalogue button (animated) ---------- */
.btn-catalogue{
  position:relative;flex:none;display:inline-flex;align-items:center;gap:16px;
  padding:12px 26px 12px 14px;border:0;border-radius:999px;cursor:pointer;overflow:hidden;isolation:isolate;
  background:linear-gradient(135deg,var(--green-dark),var(--green-deep));color:var(--cream);
  font-family:var(--font-body);text-align:left;
  box-shadow:0 0 0 1.5px rgba(240,197,101,.55) inset,0 16px 32px -14px rgba(18,45,24,.75);
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease;
  animation:catalogue-pulse 2.8s ease-out infinite;
}
.btn-catalogue::before{ /* gold light sweep */
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(105deg,transparent 35%,rgba(240,197,101,.38) 50%,transparent 65%);
  transform:translateX(-120%);animation:catalogue-sweep 3.6s ease-in-out infinite;
}
.btn-catalogue:hover,.btn-catalogue:focus-visible{transform:translateY(-3px) scale(1.02);box-shadow:0 0 0 2px var(--gold-light) inset,0 22px 40px -14px rgba(18,45,24,.85);}
.btn-catalogue:focus-visible{outline:3px solid var(--green-deep);outline-offset:3px;}
.btn-catalogue-book{position:relative;width:38px;height:54px;flex:none;perspective:260px;}
.btn-catalogue-book::before{ /* inner pages */
  content:"";position:absolute;inset:3px 0 3px 4px;border-radius:2px 5px 5px 2px;
  background:repeating-linear-gradient(90deg,#fff 0 2px,#efe5cc 2px 3px);box-shadow:0 6px 12px -4px rgba(0,0,0,.5);
}
.btn-catalogue-cover{
  position:absolute;inset:0;border-radius:3px 6px 6px 3px;transform-origin:left center;
  background:url("../catalogue/catalogue-cover.webp") center top/cover,#f0c565;
  box-shadow:inset 3px 0 4px -1px rgba(0,0,0,.35),0 4px 10px -2px rgba(0,0,0,.45);
  transition:transform .6s cubic-bezier(.2,.8,.2,1);animation:catalogue-peek 3.6s ease-in-out infinite;
}
.btn-catalogue:hover .btn-catalogue-cover,.btn-catalogue:focus-visible .btn-catalogue-cover{animation:none;transform:rotateY(-62deg);}
.btn-catalogue-label{display:flex;flex-direction:column;line-height:1.15;}
.btn-catalogue-label small{font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-light);}
.btn-catalogue-label b{font-family:var(--font-head);font-size:1.22rem;font-weight:600;letter-spacing:.01em;}
.btn-catalogue-arrow{width:20px;height:20px;color:var(--gold-light);transition:transform .35s ease;}
.btn-catalogue:hover .btn-catalogue-arrow{transform:translateX(5px);}
@keyframes catalogue-sweep{0%,55%{transform:translateX(-120%);}100%{transform:translateX(120%);}}
@keyframes catalogue-pulse{
  0%{box-shadow:0 0 0 1.5px rgba(240,197,101,.55) inset,0 16px 32px -14px rgba(18,45,24,.75),0 0 0 0 rgba(18,45,24,.45);}
  70%{box-shadow:0 0 0 1.5px rgba(240,197,101,.55) inset,0 16px 32px -14px rgba(18,45,24,.75),0 0 0 16px rgba(18,45,24,0);}
  100%{box-shadow:0 0 0 1.5px rgba(240,197,101,.55) inset,0 16px 32px -14px rgba(18,45,24,.75),0 0 0 0 rgba(18,45,24,0);}
}
@keyframes catalogue-peek{0%,70%,100%{transform:rotateY(0);}80%{transform:rotateY(-34deg);}90%{transform:rotateY(-8deg);}}
@media (max-width:560px){.btn-catalogue{width:100%;justify-content:center;}}
@media (prefers-reduced-motion: reduce){.btn-catalogue,.btn-catalogue::before,.btn-catalogue-cover{animation:none;}}

/* ---------- catalogue viewer ---------- */
.catalogue-modal{
  width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;
  background:rgba(12,24,15,.94);color:var(--cream);
  display:flex;flex-direction:column;overflow:hidden;
}
.catalogue-modal:not([open]){display:none;}
.catalogue-modal::backdrop{background:rgba(12,24,15,.7);backdrop-filter:blur(6px);}
.catalogue-modal[open]{animation:catalogue-open .35s ease-out;}
@keyframes catalogue-open{from{opacity:0;}to{opacity:1;}}
.catalogue-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px clamp(16px,3vw,36px);}
.catalogue-head .eyebrow{color:var(--gold-light);margin:0 0 2px;font-size:.68rem;}
.catalogue-head .eyebrow::before{background:var(--gold-light);}
.catalogue-head h2{font-size:clamp(1.15rem,2.4vw,1.6rem);color:var(--cream);margin:0;}
.catalogue-tools{display:flex;align-items:center;gap:10px;}
.catalogue-dl{
  display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;
  background:linear-gradient(135deg,var(--gold-light),var(--gold-dark));color:var(--green-deep);
  font-weight:700;font-size:.82rem;text-decoration:none;transition:transform .25s ease;
}
.catalogue-dl:hover{transform:translateY(-2px);}
.catalogue-dl svg{width:17px;height:17px;}
.catalogue-icon-btn{
  width:42px;height:42px;border-radius:50%;border:1px solid rgba(251,246,234,.25);background:rgba(251,246,234,.06);
  color:var(--cream);display:grid;place-items:center;cursor:pointer;transition:background .2s ease,border-color .2s ease;
}
.catalogue-icon-btn:hover{background:rgba(251,246,234,.16);border-color:var(--gold-light);}
.catalogue-icon-btn svg{width:20px;height:20px;}
.catalogue-icon-btn:disabled{opacity:.25;cursor:default;}
.catalogue-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:clamp(8px,2vw,24px);padding:0 clamp(10px,2vw,28px);}
.catalogue-page{
  position:relative;margin:0;flex:1;min-width:0;height:100%;display:flex;align-items:center;justify-content:center;
  overflow:hidden;border-radius:10px;touch-action:pan-y;
}
.catalogue-page img{
  max-width:100%;max-height:100%;width:auto;height:auto;border-radius:6px;cursor:zoom-in;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.7);user-select:none;-webkit-user-drag:none;
  transition:transform .35s ease;transform-origin:center;
}
.catalogue-page.is-zoomed{touch-action:none;}
.catalogue-page.is-zoomed img{cursor:zoom-out;transform:scale(2.3);transition:transform .35s ease,transform-origin 0s;}
.catalogue-page.turn-next img{animation:catalogue-turn-next .55s cubic-bezier(.2,.8,.2,1);}
.catalogue-page.turn-prev img{animation:catalogue-turn-prev .55s cubic-bezier(.2,.8,.2,1);}
@keyframes catalogue-turn-next{from{opacity:0;transform:perspective(1800px) rotateY(-18deg) translateX(60px);}to{opacity:1;transform:none;}}
@keyframes catalogue-turn-prev{from{opacity:0;transform:perspective(1800px) rotateY(18deg) translateX(-60px);}to{opacity:1;transform:none;}}
.catalogue-loader{position:absolute;width:42px;height:42px;border-radius:50%;border:3px solid rgba(240,197,101,.25);border-top-color:var(--gold-light);animation:catalogue-spin .8s linear infinite;}
.catalogue-page.is-ready .catalogue-loader{display:none;}
@keyframes catalogue-spin{to{transform:rotate(360deg);}}
.catalogue-foot{display:flex;align-items:center;justify-content:center;gap:18px;padding:16px clamp(16px,3vw,36px) 20px;flex-wrap:wrap;}
.catalogue-thumbs{display:flex;gap:10px;}
.catalogue-thumb{
  width:96px;aspect-ratio:1.414;padding:0;border-radius:6px;overflow:hidden;cursor:pointer;
  border:2px solid transparent;background:none;opacity:.55;transition:opacity .2s ease,border-color .2s ease,transform .2s ease;
}
.catalogue-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.catalogue-thumb:hover{opacity:.85;}
.catalogue-thumb[aria-current="true"]{opacity:1;border-color:var(--gold-light);transform:translateY(-2px);}
.catalogue-count{font-size:.85rem;color:rgba(251,246,234,.7);min-width:72px;text-align:center;}
.catalogue-hint{font-size:.78rem;color:rgba(251,246,234,.5);}
@media (max-width:720px){
  .catalogue-head{padding:14px 16px;}
  .catalogue-dl span{display:none;}
  .catalogue-dl{padding:11px;}
  .catalogue-stage .catalogue-icon-btn{display:none;}
  .catalogue-stage{padding:0 8px;}
  .catalogue-thumb{width:76px;}
  .catalogue-hint{width:100%;text-align:center;order:3;}
}
@media (prefers-reduced-motion: reduce){.catalogue-page.turn-next img,.catalogue-page.turn-prev img,.catalogue-modal[open]{animation:none;}}
