/*
Theme Name: Fiori Denari
Theme URI: https://fioridenari.ro
Author: Fiori Denari
Author URI: https://fioridenari.ro
Description: Tema florarie emotion-first pentru Fiori Denari. Hero fotografic full-bleed, intro animat, petale, cursor personalizat, decor de eveniment. Optimizata pentru mobil.
Version: 2.0
License: GNU General Public License v2 or later
Text Domain: fiori-denari
*/

:root{
    --gold:#9e8d4a;--gold-light:#c2ad6a;--gold-pale:#e6dabb;
    --cream:#f6f0e6;--ivory:#fdfaf3;--sand:#ece1cd;
    --ink:#272620;--ink-soft:#5d584d;
    --olive:#6b7355;--olive-deep:#474d3a;--rose:#c6a596;
    --dark:#1f211b;--darker:#181a14;
    --display:'Cormorant Garamond',serif;--body:'Jost',sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{background:var(--cream);color:var(--ink);font-family:var(--body);font-weight:300;line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  ::selection{background:var(--gold);color:var(--ivory)}
  a{color:inherit}
  .wrap{max-width:1240px;margin:0 auto;padding:0 48px}
  .narrow{max-width:820px;margin:0 auto;padding:0 48px}

  /* page grain */
  .grain-global{position:fixed;inset:0;z-index:200;pointer-events:none;opacity:.035;mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

  /* scroll progress */
  .progress{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--gold),var(--gold-light));z-index:301;transition:width .1s linear}

  /* custom cursor */
  .cur-dot,.cur-ring{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:302;will-change:transform}
  .cur-dot{width:6px;height:6px;background:var(--gold-light);transform:translate(-50%,-50%)}
  .cur-ring{width:42px;height:42px;border:1px solid rgba(194,173,106,.7);transform:translate(-50%,-50%);transition:width .35s ease,height .35s ease,border-color .35s ease,background .35s ease}
  .cur-ring.grow{width:90px;height:90px;background:rgba(194,173,106,.1);border-color:transparent}
  .cur-ring .lbl{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-light);opacity:0;transition:opacity .3s}
  .cur-ring.grow .lbl{opacity:1}
  @media (hover:none),(pointer:coarse){.cur-dot,.cur-ring{display:none}}
  body.has-cursor{cursor:none}
  body.has-cursor a,body.has-cursor button{cursor:none}

  .eyebrow{font-family:var(--body);font-weight:400;font-size:.7rem;letter-spacing:.46em;text-transform:uppercase;color:var(--gold)}
  h1,h2,h3{font-family:var(--display);font-weight:500;letter-spacing:.01em;line-height:1.1}
  h2{font-size:clamp(2.3rem,5.2vw,4rem);font-weight:400}
  .ital{font-style:italic;color:var(--gold)}

  /* ---------- PRELOADER ---------- */
  #pre{position:fixed;inset:0;z-index:1000;background:var(--darker);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;transition:transform 1.1s cubic-bezier(.76,0,.24,1) .2s}
  #pre.done{transform:translateY(-100%)}
  #pre .mono{color:var(--gold-light);opacity:0;transform:scale(.9);animation:preIn 1s ease forwards .15s}
  #pre .mono svg{width:104px;height:67px;display:block}
  #pre .nm{overflow:hidden}
  #pre .nm span{display:inline-block;font-family:var(--display);font-size:1.5rem;letter-spacing:.5em;text-transform:uppercase;color:var(--ivory);transform:translateY(120%);animation:preUp .9s cubic-bezier(.22,.61,.36,1) forwards .5s;padding-left:.5em}
  #pre .bar{width:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-light),transparent);animation:preBar 1.4s ease forwards .7s}
  @keyframes preIn{to{opacity:1;transform:scale(1)}}
  @keyframes preUp{to{transform:translateY(0)}}
  @keyframes preBar{to{width:220px}}

  /* ---------- PETALS ---------- */
  .petals{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
  .petal{position:absolute;top:-8%;color:var(--gold-light);opacity:0;animation:fall linear infinite}
  .petal svg{display:block;width:100%;height:100%}
  @keyframes fall{
    0%{opacity:0;transform:translateY(-10vh) translateX(0) rotate(0deg)}
    10%{opacity:.5}
    50%{transform:translateY(45vh) translateX(40px) rotate(180deg)}
    90%{opacity:.5}
    100%{opacity:0;transform:translateY(110vh) translateX(-30px) rotate(360deg)}
  }

  /* ---------- NAV ---------- */
  nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:26px 48px;transition:background .5s,padding .5s,box-shadow .5s}
  nav.solid{background:rgba(246,240,230,.9);backdrop-filter:blur(12px);padding:15px 48px;box-shadow:0 1px 0 rgba(158,141,74,.16)}
  nav .logo{display:flex;align-items:center;gap:13px;text-decoration:none}
  nav .logo svg{width:50px;height:34px;color:var(--gold);transition:width .4s}
  nav.solid .logo svg{width:42px}
  nav .logo .wm{font-family:var(--display);font-weight:500;font-size:1.2rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ivory);transition:color .4s}
  nav.solid .logo .wm{color:var(--ink)}
  nav .logo .wm b{font-weight:600;color:var(--gold-light)}
  nav.solid .logo .wm b{color:var(--gold)}
  nav ul{display:flex;gap:38px;list-style:none}
  nav ul a{font-family:var(--body);font-weight:400;font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(253,250,243,.9);text-decoration:none;position:relative;transition:color .3s}
  nav.solid ul a{color:var(--ink)}
  nav ul a::after{content:'';position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--gold);transition:width .35s}
  nav ul a:hover{color:var(--gold-light)}nav.solid ul a:hover{color:var(--gold)}
  nav ul a:hover::after{width:100%}
  nav .menu-btn{display:none;background:none;border:none;cursor:pointer;width:30px;height:22px;position:relative;z-index:101}
  nav .menu-btn span{position:absolute;left:0;width:100%;height:1.5px;background:var(--ivory);transition:transform .4s,opacity .3s,background .4s}
  nav.solid .menu-btn span{background:var(--ink)}
  nav .menu-btn span:nth-child(1){top:2px}nav .menu-btn span:nth-child(2){top:10px}nav .menu-btn span:nth-child(3){top:18px}
  body.nav-open nav .menu-btn span{background:var(--ivory)}
  body.nav-open nav .menu-btn span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  body.nav-open nav .menu-btn span:nth-child(2){opacity:0}
  body.nav-open nav .menu-btn span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
  .mobile-menu{position:fixed;inset:0;z-index:99;background:linear-gradient(165deg,#22241d,#2d2e24 60%,#3a3a2d);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;opacity:0;visibility:hidden;transform:translateY(-14px);transition:opacity .45s,transform .45s,visibility .45s}
  .mobile-menu.open{opacity:1;visibility:visible;transform:none}
  .mobile-menu a{font-family:var(--display);font-weight:500;font-size:2.2rem;color:var(--ivory);text-decoration:none;padding:11px;letter-spacing:.03em;opacity:0;transform:translateY(14px);transition:color .3s}
  .mobile-menu.open a{opacity:1;transform:none;transition:color .3s,opacity .5s,transform .5s}
  .mobile-menu.open a:nth-child(1){transition-delay:.1s}.mobile-menu.open a:nth-child(2){transition-delay:.16s}
  .mobile-menu.open a:nth-child(3){transition-delay:.22s}.mobile-menu.open a:nth-child(4){transition-delay:.28s}
  .mobile-menu.open a:nth-child(5){transition-delay:.34s}
  .mobile-menu a:hover{color:var(--gold-light)}

  /* ---------- HERO ---------- */
  .hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:#1c1e17}
  .hero .bg{position:absolute;inset:0;z-index:0;background:
      radial-gradient(120% 90% at 30% 20%,#3a3b2f,transparent 55%),
      radial-gradient(120% 90% at 75% 80%,#2c2e24,transparent 55%),
      linear-gradient(160deg,#33342a 0%,#23241d 55%,#15160f 100%);
      transform:scale(1.04);animation:kenburns 22s ease-in-out infinite alternate}
  @keyframes kenburns{0%{transform:scale(1.04) translate(0,0)}100%{transform:scale(1.12) translate(-1.5%,-1.5%)}}
  .hero .heroart{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;color:rgba(194,173,106,.10)}
  .hero .heroart svg{width:min(64vh,560px);height:auto}
  .hero .scrim{position:absolute;inset:0;z-index:2;background:radial-gradient(120% 120% at 50% 45%,transparent 30%,rgba(18,19,13,.55) 100%),linear-gradient(180deg,rgba(18,19,13,.35),transparent 30%,transparent 60%,rgba(18,19,13,.45))}
  .hero .mesh{position:absolute;inset:-20%;z-index:1;opacity:.4;
    background:
      radial-gradient(40% 40% at 25% 30%,rgba(158,141,74,.22),transparent 70%),
      radial-gradient(35% 45% at 78% 65%,rgba(107,115,85,.22),transparent 70%),
      radial-gradient(30% 30% at 60% 20%,rgba(198,165,150,.14),transparent 70%);
    animation:mesh 18s ease-in-out infinite alternate}
  @keyframes mesh{0%{transform:translate(0,0) scale(1)}100%{transform:translate(-4%,3%) scale(1.08)}}
  .hero .grain{position:absolute;inset:0;z-index:2;opacity:.4;mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E")}
  .hero #heroPetals{z-index:4}
  .hero .frame{position:absolute;inset:24px;border:1px solid rgba(194,173,106,.22);z-index:4;pointer-events:none}
  .hero .side{position:absolute;z-index:4;font-size:.62rem;letter-spacing:.34em;text-transform:uppercase;color:rgba(194,173,106,.7)}
  .hero .side.l{left:40px;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:left center}
  .hero .side.r{right:40px;top:50%;transform:translateY(-50%) rotate(90deg);transform-origin:right center}
  .hero-content{position:relative;z-index:5;padding:0 24px;max-width:1000px}
  .hero .eyebrow{color:var(--gold-light);opacity:0;animation:rise 1s ease forwards 1.3s}
  .hero h1{color:var(--ivory);font-weight:400;font-size:clamp(2.8rem,8vw,6.4rem);line-height:1.04;margin:30px 0 34px}
  .hero h1 .line{display:block;overflow:hidden}
  .hero h1 .line i{display:inline-block;font-style:normal;transform:translateY(110%);animation:lineUp 1.1s cubic-bezier(.22,.61,.36,1) forwards}
  .hero h1 .line:nth-child(1) i{animation-delay:1.4s}
  .hero h1 .line:nth-child(2) i{animation-delay:1.56s}
  .hero h1 .ital{color:var(--gold-light)}
  .hero p{color:#ded7c6;font-size:clamp(1.02rem,1.8vw,1.2rem);max-width:540px;margin:0 auto 40px;opacity:0;animation:rise 1.1s ease forwards 1.9s}
  .hero .cta{opacity:0;animation:rise 1.1s ease forwards 2.1s}
  .btn{display:inline-block;font-family:var(--body);font-weight:400;letter-spacing:.2em;text-transform:uppercase;font-size:.74rem;text-decoration:none;padding:17px 40px;transition:background .4s,color .4s,transform .4s,border-color .4s}
  .btn.light{color:var(--dark);background:var(--gold-light);border:1px solid var(--gold-light)}
  .btn.light:hover{background:var(--ivory);border-color:var(--ivory);transform:translateY(-2px)}
  .btn.ghost{color:var(--ivory);border:1px solid rgba(253,250,243,.4)}
  .btn.ghost:hover{background:var(--ivory);color:var(--dark);transform:translateY(-2px)}
  .btn.dark{color:var(--ivory);background:var(--ink);border:1px solid var(--ink)}
  .btn.dark:hover{background:var(--gold);border-color:var(--gold);transform:translateY(-2px)}
  .hero .scrollcue{position:absolute;bottom:46px;left:50%;transform:translateX(-50%);z-index:5;color:var(--gold-light);font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;opacity:0;animation:fade 1.4s ease forwards 2.4s}
  .hero .scrollcue .dot{display:block;width:1px;height:42px;margin:12px auto 0;background:linear-gradient(var(--gold-light),transparent);animation:pulse 2.4s ease-in-out infinite}
  @keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
  @keyframes lineUp{to{transform:translateY(0)}}
  @keyframes fade{to{opacity:1}}
  @keyframes pulse{0%,100%{opacity:.35;transform:scaleY(.7)}50%{opacity:1;transform:scaleY(1)}}

  /* ---------- MARQUEE ---------- */
  .marquee{background:var(--ink);color:var(--ivory);padding:26px 0;overflow:hidden;white-space:nowrap;border-top:1px solid rgba(194,173,106,.18);border-bottom:1px solid rgba(194,173,106,.18)}
  .marquee .track{display:inline-flex;align-items:center;gap:34px;animation:scrollx 26s linear infinite}
  .marquee span{font-family:var(--display);font-style:italic;font-size:1.7rem;color:var(--ivory)}
  .marquee .dot{width:7px;height:7px;border-radius:50%;background:var(--gold-light);display:inline-block}
  @keyframes scrollx{to{transform:translateX(-50%)}}

  /* ---------- MANIFESTO ---------- */
  .manifesto{padding:160px 0;text-align:center;background:var(--ivory);position:relative;overflow:hidden}
  .manifesto .ghost{position:absolute;font-family:var(--display);font-style:italic;font-size:clamp(8rem,26vw,24rem);color:rgba(158,141,74,.05);top:50%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none;z-index:0}
  .manifesto .narrow{position:relative;z-index:2}
  .manifesto .ornament{display:flex;align-items:center;justify-content:center;gap:18px;color:var(--gold);margin-bottom:42px}
  .manifesto .ornament .ln{width:64px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
  .manifesto .ornament .ln.r{background:linear-gradient(90deg,var(--gold),transparent)}
  .manifesto h2{font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.32;color:var(--ink);font-weight:400}
  .manifesto h2 .w{display:inline-block;opacity:0;transform:translateY(16px);transition:opacity .6s,transform .6s}
  .manifesto.in h2 .w{opacity:1;transform:none}
  .manifesto .sig{margin-top:48px;font-family:var(--display);font-style:italic;font-size:1.4rem;color:var(--gold)}

  /* ---------- SERVICES ---------- */
  .services{padding:60px 0 40px;background:var(--cream)}
  .srv{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding:70px 0;position:relative}
.srv .media{position:relative;border-radius:12px;overflow:hidden}  .srv .ph{height:600px;border-radius:2px}
  .srv .idx{position:absolute;font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(5rem,9vw,9rem);color:var(--gold);opacity:.16;z-index:3;line-height:1}
  .srv:nth-child(odd) .idx{top:-44px;left:-30px}
  .srv:nth-child(even) .idx{top:-44px;right:-30px}
  .srv:nth-child(even) .media{order:2}
  .srv .txt{max-width:440px}
  .srv:nth-child(even) .txt{margin-left:auto}
  .srv .kicker{font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
  .srv h3{font-size:clamp(2rem,3.4vw,2.9rem);margin-bottom:20px;line-height:1.08}
  .srv p{font-size:1.05rem;color:var(--ink-soft);margin-bottom:28px}
  .srv .more{font-family:var(--body);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:5px;transition:color .3s,letter-spacing .3s}
  .srv .more:hover{color:var(--gold);letter-spacing:.24em}

  /* ---------- PHOTO ZONE ---------- */
.photo{position:relative;overflow:hidden;border-radius:12px;background:linear-gradient(135deg,#ece2cf,#e3d6bd 45%,#d9c9a8);isolation:isolate}  
.banner .photo{border-radius:0}
  .photo.rose{background:linear-gradient(135deg,#ecd9d0,#e3c4b8 50%,#d8b3a4)}
  .photo.olive{background:linear-gradient(135deg,#dde0d2,#c9d0b8 50%,#b6c0a0)}
  .photo.dark{background:linear-gradient(135deg,#33352a,#262820 60%,#1f211a)}
  .photo::after{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E")}
  .photo .floral{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(158,141,74,.4)}
  .photo.dark .floral{color:rgba(194,173,106,.5)}
  .photo .floral svg{width:42%;max-width:150px}
  .photo .cap{position:absolute;bottom:16px;left:18px;font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;color:rgba(58,52,38,.5);z-index:4}
  .photo.dark .cap{color:rgba(230,218,187,.55)}
  .photo img{width:100%;height:100%;object-fit:cover;display:block}

  /* clip reveal for media */
  .clip{clip-path:inset(0 0 0 0);transition:clip-path 1.1s cubic-bezier(.76,0,.24,1)}
  .clip.in{clip-path:inset(0 0 0 0)}
  .clip .floral,.clip img{transform:scale(1.18);transition:transform 1.4s cubic-bezier(.22,.61,.36,1)}
  .clip.in .floral,.clip.in img{transform:scale(1)}

  /* ---------- EVENTS ---------- */
  .events{background:var(--dark);color:var(--ivory);padding:150px 0;position:relative;overflow:hidden}
  .events .bloom-bg{position:absolute;opacity:.06;color:var(--gold-light);width:420px;top:-60px;right:-80px}
  .events .head{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end;margin-bottom:70px;position:relative;z-index:2}
  .events .head .eyebrow{color:var(--gold-light)}
  .events .head h2{color:var(--ivory);margin-top:20px}
  .events .head p{color:#cdc6b5;font-size:1.08rem;align-self:end}
  .events .collage{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:128px;gap:18px;position:relative;z-index:2}
  .events .collage .photo{border-radius:12px}
  .c1{grid-column:1/6;grid-row:1/4}.c2{grid-column:6/13;grid-row:1/3}
  .c3{grid-column:6/9;grid-row:3/5}.c4{grid-column:9/13;grid-row:3/5}
  .c5{grid-column:1/6;grid-row:4/6}.c6{grid-column:6/13;grid-row:5/6}
  .events .venues{margin-top:70px;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(194,173,106,.18);border:1px solid rgba(194,173,106,.18);position:relative;z-index:2}
  .events .venue{background:var(--dark);padding:38px 28px;text-align:center;transition:background .4s}
  .events .venue:hover{background:#262820}
  .events .venue .ic{color:var(--gold-light);margin-bottom:16px;display:flex;justify-content:center}
  .events .venue h4{font-family:var(--display);font-weight:500;font-size:1.4rem;color:var(--ivory);margin-bottom:8px}
  .events .venue p{font-size:.9rem;color:#bdb6a5;line-height:1.7}

  /* ---------- FULL-BLEED BANNER ---------- */
  .banner{position:relative;height:72vh;min-height:480px;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center}
  .banner .photo{position:absolute;inset:0;animation:kb 20s ease-in-out infinite alternate}
  @keyframes kb{0%{transform:scale(1.02)}100%{transform:scale(1.1)}}
  .banner .bscrim{position:absolute;inset:0;z-index:2;background:linear-gradient(rgba(22,24,17,.52),rgba(22,24,17,.62))}
  .banner .inner{position:relative;z-index:3;max-width:780px;padding:0 32px}
  .banner .eyebrow{display:block;margin-bottom:20px;color:var(--gold-light)}
  .banner h2{color:var(--ivory);font-weight:400}

  /* ---------- GALLERY ---------- */
  .gallery{padding:150px 0;background:var(--cream)}
  .gallery .head{text-align:center;margin-bottom:70px}
  .gallery .head h2{margin:18px 0 14px}
  .gallery .head p{max-width:560px;margin:0 auto;color:var(--ink-soft);font-size:1.05rem}
  .grid-g{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:200px;gap:18px}
  .grid-g .photo{border-radius: 12px;cursor:pointer}
  .grid-g .photo .ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(31,33,26,.6),transparent 55%);opacity:0;transition:opacity .5s;z-index:3;display:flex;align-items:flex-end;padding:22px}
  .grid-g .photo .ov span{font-family:var(--display);font-style:italic;font-size:1.3rem;color:var(--ivory);transform:translateY(10px);transition:transform .5s}
  .grid-g .photo:hover .ov{opacity:1}.grid-g .photo:hover .ov span{transform:none}
  .grid-g .photo:hover .floral{transform:scale(1.08)}
  .grid-g .floral{transition:transform 1s ease}
  .gg1{grid-column:1/4;grid-row:1/3}.gg2{grid-column:4/7;grid-row:1/2}
.gg3{grid-column:4/6;grid-row:2/4}.gg4{grid-column:6/7;grid-row:2/3}
.gg5{grid-column:6/7;grid-row:3/4}.gg6{grid-column:1/3;grid-row:3/4}
.gg7{grid-column:3/4;grid-row:3/4}
.gg8{grid-column:1/4;grid-row:4/6}.gg9{grid-column:4/7;grid-row:4/5}
.gg10{grid-column:4/6;grid-row:5/7}.gg11{grid-column:6/7;grid-row:5/6}
.gg12{grid-column:6/7;grid-row:6/7}
.gg13{grid-column:1/3;grid-row:6/7}
.gg14{grid-column:3/4;grid-row:6/7}
.gg15{grid-column:1/4;grid-row:7/8}
.gg16{grid-column:4/6;grid-row:7/8}
.gg17{grid-column:6/7;grid-row:7/8}
.gg18{grid-column:4/7;grid-row:8/9}
.gg19{grid-column:1/3;grid-row:8/9}
.gg20{grid-column:3/4;grid-row:8/9}
  /* ---------- PHILOSOPHY ---------- */
  .philo{background:var(--sand);display:grid;grid-template-columns:1.05fr 1fr;align-items:stretch;overflow:hidden}
  .philo .media{position:relative;overflow:hidden}
  .philo .ph{min-height:720px;height:100%}
  .philo .txt{padding:130px 90px;display:flex;flex-direction:column;justify-content:center}
  .philo .eyebrow{margin-bottom:24px}
  .philo h2{margin-bottom:30px;color:var(--ink)}
  .philo p.body{font-size:1.06rem;color:var(--ink-soft);margin-bottom:20px}
  .philo .signoff{margin-top:40px;font-family:var(--display);font-style:italic;font-size:1.5rem;color:var(--gold)}

  /* ---------- QUOTE ---------- */
  .quote{padding:160px 0;text-align:center;background:var(--darker);color:var(--ivory);position:relative;overflow:hidden}
  .quote .petals{opacity:.5}
  .quote .mark{font-family:var(--display);font-size:6rem;color:rgba(194,173,106,.5);line-height:.4;display:block;margin-bottom:6px}
  .quote blockquote{font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(1.8rem,4vw,2.9rem);line-height:1.38;color:var(--ivory);max-width:880px;margin:0 auto;position:relative;z-index:2}
  .quote cite{display:block;margin-top:34px;font-family:var(--body);font-style:normal;font-size:.76rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-light);position:relative;z-index:2}

  /* ---------- CONTACT ---------- */
  .contact{background:var(--cream);padding:150px 0}
  .contact .inner{display:grid;grid-template-columns:1.1fr 1fr;gap:90px;align-items:center}
  .contact h2{margin:20px 0 26px;color:var(--ink)}
  .contact .lead{color:var(--ink-soft);font-size:1.1rem;margin-bottom:40px;max-width:430px}
  .contact .info .row{padding:22px 0;border-top:1px solid var(--gold-pale);display:flex;justify-content:space-between;align-items:baseline;gap:20px}
  .contact .info .row:last-child{border-bottom:1px solid var(--gold-pale)}
  .contact .info .lbl{font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
  .contact .info .val{font-family:var(--display);font-size:1.4rem;color:var(--ink)}
  .contact .info .val a{text-decoration:none;border-bottom:1px solid transparent;transition:border-color .3s}
  .contact .info .val a:hover{border-color:var(--gold)}

  footer{background:var(--darker);color:#928c7c;padding:70px 0 44px;border-top:1px solid rgba(194,173,106,.14);text-align:center}
  footer .logo{display:flex;flex-direction:column;align-items:center;gap:16px;margin-bottom:26px}
  footer .logo svg{width:70px;height:46px;color:var(--gold-light)}
  footer .logo .wm{font-family:var(--display);letter-spacing:.22em;text-transform:uppercase;color:var(--ivory);font-size:1.15rem}
  footer .tagline{font-family:var(--display);font-style:italic;font-size:1.1rem;color:var(--gold-light);margin-bottom:28px}
  footer .fnav{display:flex;gap:28px;justify-content:center;margin-bottom:30px;flex-wrap:wrap}
  footer .fnav a{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#b3ad9d;text-decoration:none;transition:color .3s}
  footer .fnav a:hover{color:var(--gold-light)}
  footer .copy{font-size:.72rem;letter-spacing:.1em}

  /* reveal */
  .reveal{opacity:0;transform:translateY(40px);transition:opacity 1s cubic-bezier(.22,.61,.36,1),transform 1s cubic-bezier(.22,.61,.36,1)}
  .reveal.in{opacity:1;transform:none}

  @media(max-width:980px){
    .srv{grid-template-columns:1fr;gap:36px;padding:50px 0}.srv .ph{height:380px}.srv:nth-child(even) .media{order:0}.srv .txt,.srv:nth-child(even) .txt{margin:0;max-width:none}
    .events .head{grid-template-columns:1fr;gap:20px}
    .events .collage{grid-auto-rows:110px}
    .events .venues{grid-template-columns:repeat(2,1fr)}
    .philo{grid-template-columns:1fr}.philo .ph{min-height:420px}.philo .txt{padding:70px 48px}
    .contact .inner{grid-template-columns:1fr;gap:48px}
    .grid-g{grid-template-columns:repeat(4,1fr)}
  }
  @media(max-width:640px){
    .wrap,.narrow{padding:0 24px}
    nav{padding:18px 24px}nav.solid{padding:13px 24px}
    nav ul{display:none}nav .menu-btn{display:block}
    .hero .side,.hero .frame{display:none}
    .marquee span{font-size:1.3rem}
    .manifesto,.events,.gallery,.quote,.contact{padding:84px 0}
    .events .collage{display:flex;flex-direction:column}.events .collage .photo{height:230px}
    .events .venues{grid-template-columns:1fr}
    .grid-g{display:flex;flex-direction:column}.grid-g .photo{height:260px}
    .philo .txt{padding:56px 24px}
  }
  @media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}.petal{display:none}}
