:root{
  --bg:#f6f1e7;
  --surface:rgba(255,255,255,.86);
  --surface-strong:rgba(255,255,255,.94);
  --surface-dark:#43261a;
  --surface-tint:#f2e7d7;
  --maple-red:#a9462c;
  --burnt-orange:#c9652a;
  --gold:#d8af4a;
  --forest:#244636;
  --brown:#4b2e1e;
  --text:#241910;
  --muted:#675548;
  --line:rgba(75,46,30,.14);
  --shadow:0 20px 45px rgba(64,36,21,.12);
  --shadow-soft:0 12px 30px rgba(64,36,21,.08);
  --radius:22px;
  --radius-lg:30px;
  --container:min(1180px,92%);
  --transition:.35s cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0}
body{
  overflow-x:hidden;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  line-height:1.65;
  background:
    radial-gradient(900px 500px at 0% 0%, rgba(201,101,42,.16), transparent 60%),
    radial-gradient(700px 420px at 100% 5%, rgba(169,70,44,.12), transparent 60%),
    radial-gradient(900px 700px at 50% 100%, rgba(36,70,54,.08), transparent 62%),
    linear-gradient(180deg, #f7f1e7 0%, #f5efe3 35%, #f7f3eb 100%);
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed;inset:0;pointer-events:none;opacity:.18;
  background-image:
    linear-gradient(to right, rgba(255,255,255,.08) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size:42px 42px;
  mask-image:radial-gradient(circle at center, #000 35%, transparent 88%);
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block;height:auto}
.container{width:var(--container);margin:0 auto}
.section{padding:88px 0}
.section-tight{padding-top:48px}

header{
  position:sticky;top:0;z-index:100;
  background:rgba(247,241,231,.75);
  border-bottom:1px solid rgba(75,46,30,.08);
  backdrop-filter:blur(18px);
  box-shadow:0 6px 20px rgba(64,36,21,.06);
}
.navbar{
  display:flex;align-items:center;justify-content:space-between;
  gap:18px;padding:16px 0;
}
.brand{
  display:flex;align-items:center;gap:0;
  font-weight:900;letter-spacing:.2px;color:var(--brown);
  flex-shrink:0;
}
.logo{
  width:42px;height:42px;border-radius:14px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.25), transparent 38%),
    linear-gradient(135deg, var(--burnt-orange), var(--maple-red));
  box-shadow:0 12px 28px rgba(201,101,42,.28);
}
.header-logo{
  max-height:70px;
  width:auto;
  display:block;
  object-fit:contain;
  filter:drop-shadow(0 3px 6px rgba(0,0,0,.18));
  transition:transform .3s ease, filter .3s ease;
}
.brand:hover .header-logo{
  transform:scale(1.04);
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.25));
}
.nav-links{display:flex;align-items:center;gap:12px}
.nav-links a{
  font-weight:800;color:var(--muted);
  padding:10px 14px;border-radius:14px;
  transition:background var(--transition), color var(--transition), transform var(--transition), box-shadow var(--transition);
}
.nav-links a:hover,
.nav-links a[aria-current="page"]{
  background:rgba(255,255,255,.74);
  color:var(--brown);
  box-shadow:var(--shadow-soft);
  transform:translateY(-1px);
}
.menu-btn{
  display:none;border:1px solid var(--line);background:rgba(255,255,255,.82);
  color:var(--brown);padding:10px 14px;border-radius:14px;font-weight:800;
}

.hero{padding:84px 0 56px;position:relative}
.hero::after{
  content:"";position:absolute;inset:auto 0 0 0;height:160px;pointer-events:none;
  background:linear-gradient(180deg, transparent, rgba(255,255,255,.18));
}
.premium-hero{overflow:hidden}
.hero-grid,
.premium-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:34px;align-items:center}
.hero-subpage{padding-bottom:42px}
.split-showcase{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}

.kicker,.section-kicker{
  display:inline-flex;align-items:center;gap:10px;
  width:fit-content;padding:9px 14px;border-radius:999px;
  border:1px solid rgba(216,175,74,.24);
  background:rgba(255,255,255,.72);
  color:var(--muted);font-weight:800;font-size:14px;
  box-shadow:var(--shadow-soft);
}
.section-kicker{margin-bottom:14px}
.kicker .dot{
  width:10px;height:10px;border-radius:50%;background:var(--gold);
  box-shadow:0 0 0 6px rgba(216,175,74,.18);
}

h1,h2,h3{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.02em;color:var(--brown)}
h1{font-size:clamp(2.35rem,5vw,4.7rem);line-height:1.03;margin:16px 0 16px;max-width:11ch}
h2{font-size:clamp(1.85rem,3vw,3rem);line-height:1.08;margin:0 0 14px}
h3{font-size:clamp(1.25rem,2vw,1.8rem);line-height:1.15;margin:0 0 12px}
p{margin:0 0 12px;color:var(--muted)}
.lead{font-size:clamp(1rem,1.45vw,1.16rem);max-width:62ch}

.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:13px 18px;border-radius:16px;border:1px solid var(--line);
  background:rgba(255,255,255,.78);font-weight:900;color:var(--brown);
  transition:transform var(--transition), box-shadow var(--transition), background var(--transition);
}
.btn.primary{
  color:#fff;border:none;
  background:linear-gradient(135deg, var(--burnt-orange), var(--maple-red));
  box-shadow:0 18px 36px rgba(169,70,44,.25);
}
.btn:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(64,36,21,.15)}

.stats-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.stat-pill{
  min-width:180px;padding:14px 16px;border-radius:18px;
  background:rgba(255,255,255,.68);border:1px solid rgba(75,46,30,.08);
  box-shadow:var(--shadow-soft);
}
.stat-pill strong{display:block;color:var(--brown);font-size:.95rem;margin-bottom:4px}
.stat-pill span{display:block;color:var(--muted);font-size:.88rem}

.card{
  background:var(--surface);
  border:1px solid rgba(75,46,30,.08);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  backdrop-filter:blur(8px);
  transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}
.card:hover{transform:translateY(-6px);box-shadow:0 26px 50px rgba(64,36,21,.16);border-color:rgba(201,101,42,.24)}
.padded{padding:24px}
.hero-card{padding:22px}

.hero-visual{display:grid;gap:16px;min-width:0;max-width:100%}
.hero-visual.reveal.right{transform:none}
.visual-card,
.showcase-photo,
.service-image,
.full-bleed-photo,
.image-stack-card{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  box-shadow:var(--shadow);
}
.visual-card::before,
.showcase-photo::before,
.service-image::before,
.full-bleed-photo::before,
.image-stack-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.12)),
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.18), transparent 30%);
  z-index:1;
  pointer-events:none;
}

.visual-card > img,
.showcase-photo > img,
.service-image > img,
.full-bleed-photo > img,
.image-stack-card > img,
.hero-image,
.section-image,
.band-image,
.showcase-image,
.service-photo,
.service-thumb{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}

/* Image framing controls */
.visual-main > img,
.hero-image-main,
.full-bleed-photo > img,
.premium-photo-stage > img,
.band-image,
.showcase-one > img,
.showcase-photo > img,
.showcase-image{
  object-fit:cover;
  object-position:center 30%;
}

.visual-wedding > img,
.visual-school > img,
.hero-image-secondary,
.service-image > img,
.service-photo,
.service-thumb,
.image-stack-card > img,
.media-frame img,
.image-frame img{
  object-fit:contain;
  object-position:center;
  background:#efe7dc;
}

.visual-card > img,
.showcase-photo > img,
.service-image > img,
.full-bleed-photo > img,
.image-stack-card > img{
  position:absolute;
  inset:0;
}

.visual-card > *:not(img),
.showcase-photo > *:not(img),
.service-image > *:not(img),
.full-bleed-photo > *:not(img),
.image-stack-card > *:not(img){
  position:relative;
  z-index:2;
}

.visual-main,
.hero-image-main{
  min-height:460px;
  aspect-ratio:16 / 11;
}
.visual-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hero-visual,.visual-card,.visual-overlay,.visual-mini-grid{min-width:0;max-width:100%}
.visual-wedding,
.visual-school,
.hero-image-secondary{
  min-height:180px;
  aspect-ratio:4 / 3;
}

.service-image,
.service-photo,
.service-thumb{
  min-height:220px;
  aspect-ratio:auto;
  margin:-24px -24px 18px;
  border-radius:22px 22px 18px 18px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}

.showcase-one,
.showcase-photo,
.showcase-image{
  min-height:360px;
  aspect-ratio:16 / 10;
}

.full-bleed-photo,
.premium-photo-stage,
.band-image{
  min-height:380px;
  aspect-ratio:16 / 10;
}

.image-band-visual{position:relative;min-height:360px}
.image-stack-card{
  position:absolute;width:68%;height:72%;right:0;top:14%;
}
.stack-one{right:20%;top:0;transform:rotate(-7deg)}
.stack-two{right:6%;top:12%;transform:rotate(5deg)}
.stack-three{right:28%;top:26%;transform:rotate(-2deg)}

.media-frame,
.image-frame{
  position:relative;
  overflow:hidden;
  border-radius:24px;
  box-shadow:var(--shadow);
  background:#e8ddd0;
}
.media-frame img,
.image-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.hero-media{aspect-ratio:16/10;min-height:430px}
.section-media{aspect-ratio:16/10;min-height:340px}
.card-media{aspect-ratio:4/3;min-height:220px}
.tall-media{aspect-ratio:3/4;min-height:320px}
.photo-strip-media{aspect-ratio:9/16;min-height:380px}

.visual-main{
  background-image:
    linear-gradient(135deg, rgba(36,70,54,.28), rgba(169,70,44,.22)),
    radial-gradient(circle at 25% 25%, rgba(255,223,186,.55), transparent 25%),
    radial-gradient(circle at 70% 40%, rgba(255,255,255,.18), transparent 22%),
    linear-gradient(135deg, #775342, #c98f67 46%, #4d2a1f 100%);
}
.visual-overlay{
  position:absolute;inset:auto 22px 22px 22px;z-index:2;
  padding:22px;border-radius:22px;background:rgba(58,32,22,.56);
  backdrop-filter:blur(10px);color:#fff;border:1px solid rgba(255,255,255,.16);
}
.visual-overlay p,.visual-overlay h3,.visual-overlay .eyebrow{color:#fff}
.eyebrow{display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;opacity:.82}
.visual-wedding,
.service-image-wedding{background-image:linear-gradient(135deg, rgba(169,70,44,.15), rgba(216,175,74,.18)), linear-gradient(135deg, #c59b82, #704437)}
.visual-school,
.service-image-school{background-image:linear-gradient(135deg, rgba(36,70,54,.18), rgba(216,175,74,.16)), linear-gradient(135deg, #5c4e44, #c87e39)}
.visual-mini-grid .visual-card{display:flex;align-items:flex-end;padding:16px;color:#fff;font-weight:800}
.visual-mini-grid .visual-card span{position:relative;z-index:2}

.section-head{
  display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:end;margin-bottom:28px;
}
.feature-grid,.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.premium-grid-3 article{position:relative;overflow:hidden}
.icon-chip{
  width:42px;height:42px;border-radius:14px;display:grid;place-items:center;
  background:linear-gradient(135deg, rgba(201,101,42,.14), rgba(169,70,44,.12));
  color:var(--brown);font-weight:900;margin-bottom:14px;border:1px solid rgba(201,101,42,.18);
}

.image-band-section{padding-top:36px;padding-bottom:36px}
.image-band{
  display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:center;
  padding:28px;border-radius:32px;
  background:linear-gradient(135deg, rgba(255,255,255,.62), rgba(242,231,215,.74));
  border:1px solid rgba(75,46,30,.08);box-shadow:var(--shadow);
}
.image-band-copy p{max-width:54ch}
.check-list{margin:16px 0 0;padding-left:18px;color:var(--muted)}
.check-list li{margin:7px 0}

.service-card{overflow:hidden}
.service-card ul{padding-left:18px}
.service-card li{margin:7px 0;color:var(--muted)}
.service-image-corporate{background-image:linear-gradient(135deg, rgba(36,70,54,.24), rgba(75,46,30,.14)), linear-gradient(135deg, #4f4038, #967461)}
.service-image-party{background-image:linear-gradient(135deg, rgba(201,101,42,.22), rgba(216,175,74,.16)), linear-gradient(135deg, #7f5645, #cb8b55)}
.service-image-karaoke{background-image:linear-gradient(135deg, rgba(169,70,44,.18), rgba(36,70,54,.12)), linear-gradient(135deg, #5a413a, #b76f49)}
.service-image-photo{background-image:linear-gradient(135deg, rgba(216,175,74,.18), rgba(201,101,42,.16)), linear-gradient(135deg, #7d5d50, #d59f72)}
.service-image-dance{background-image:linear-gradient(135deg, rgba(36,70,54,.16), rgba(201,101,42,.16)), linear-gradient(135deg, #5d4740, #c37a45)}
.service-image-family{background-image:linear-gradient(135deg, rgba(216,175,74,.18), rgba(169,70,44,.14)), linear-gradient(135deg, #7b5747, #c58b61)}
.service-image-community{background-image:linear-gradient(135deg, rgba(36,70,54,.17), rgba(216,175,74,.14)), linear-gradient(135deg, #705347, #bc7747)}

.service-image > img,
.service-photo,
.service-thumb{
  position:relative;
  inset:auto;
  width:100%;
  height:auto;
  max-height:420px;
}

.visual-mini-grid .visual-card > img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.image-stack-card{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}

.image-stack-card > img{
  position:relative;
  inset:auto;
  width:100%;
  height:auto;
  max-height:100%;
}

.showcase-panel{display:grid;gap:16px}
.showcase-one{background-image:linear-gradient(135deg, rgba(36,70,54,.16), rgba(169,70,44,.18)), linear-gradient(135deg, #7a5648, #d4a17b)}
.showcase-copy{background:rgba(255,255,255,.7)}
.alt-band .image-band{grid-template-columns:.9fr 1.1fr}
.full-bleed-photo,.premium-photo-stage{background-image:linear-gradient(135deg, rgba(36,70,54,.18), rgba(169,70,44,.18)), linear-gradient(135deg, #6b4b3d, #d9a171)}
.premium-two-col{margin-bottom:24px}
.lower-grid{margin-top:22px}

.cta-section{padding-top:34px}
.cta-panel{
  display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;
  padding:28px 30px;border-radius:30px;background:linear-gradient(135deg, rgba(60,34,24,.94), rgba(112,59,35,.94));
  color:#fff;box-shadow:0 24px 50px rgba(64,36,21,.2);
}
.cta-panel h2,.cta-panel p,.cta-panel .section-kicker{color:#fff}
.cta-panel .section-kicker{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12)}

.badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.badge{padding:8px 10px;border-radius:999px;border:1px solid rgba(201,101,42,.25);background:rgba(201,101,42,.10);font-weight:800}
.feature{display:flex;flex-direction:column;gap:6px}
.small{font-size:.94rem;color:var(--muted)}
.notice{
  padding:12px 14px;border-radius:14px;
  border:1px dashed rgba(36,70,54,.4);background:rgba(36,70,54,.08);color:var(--brown);font-weight:700;
}
input,textarea,select{
  width:100%;padding:13px 14px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.92);color:var(--text);outline:none;
}
textarea{min-height:120px;resize:vertical}
input:focus,textarea:focus,select:focus{border-color:rgba(36,70,54,.45);box-shadow:0 0 0 4px rgba(36,70,54,.12)}
label{font-weight:800;color:var(--brown)}
.form{display:grid;gap:12px}

footer{
  padding:28px 0;background:rgba(255,255,255,.52);border-top:1px solid rgba(75,46,30,.08);color:var(--muted);
}
.footer-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease, transform .7s ease}
.reveal.right{transform:translateX(32px)}
.reveal.left{transform:translateX(-32px)}
.reveal.is-visible{opacity:1;transform:none}
.delay-1{transition-delay:.08s}.delay-2{transition-delay:.16s}.delay-3{transition-delay:.24s}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .reveal,.reveal.right,.reveal.left{opacity:1;transform:none;transition:none}
  .card,.btn,.nav-links a,.header-logo{transition:none}
}

@media (min-width:768px){
  .header-logo{max-height:80px}
}

@media (max-width:980px){
  .hero-grid,.premium-grid,.split-showcase,.section-head,.image-band,.alt-band .image-band,.two-col,.grid-3{grid-template-columns:1fr}
  .hero-visual{width:100%;max-width:100%;overflow:hidden}
  .hero-visual .visual-card,
  .hero-visual .visual-mini-grid .visual-card{width:100%;max-width:100%}
  .reveal.right{transform:translateX(0)}
  h1{max-width:none}
  .visual-main,.hero-image-main{min-height:380px}
  .image-band-visual{min-height:320px}
  .showcase-one,.showcase-photo,.showcase-image,.full-bleed-photo,.premium-photo-stage,.band-image{min-height:320px}
  .cta-panel{align-items:flex-start}
  .menu-btn{display:inline-flex}
  .nav-links{
    display:none;position:absolute;right:4%;top:84px;z-index:120;
    width:min(340px,92vw);padding:12px;flex-direction:column;align-items:stretch;
    background:rgba(255,255,255,.94);border:1px solid rgba(75,46,30,.08);border-radius:18px;box-shadow:var(--shadow);
  }
  .nav-links.show{display:flex}
  .nav-links a{width:100%}
}

@media (max-width:640px){
  .section{padding:70px 0}
  .visual-overlay{left:14px;right:14px;bottom:14px;padding:16px;max-width:calc(100% - 28px)}
  .hero-visual .visual-mini-grid{grid-template-columns:1fr 1fr;gap:12px}
  .hero{padding:68px 0 42px}
  .navbar{padding:12px 0}
  .header-logo{max-height:55px}
  .visual-main,.hero-image-main{min-height:300px;aspect-ratio:4/3}
  .visual-wedding,.visual-school,.hero-image-secondary{min-height:150px}
  .service-image,.service-photo,.service-thumb{min-height:190px;aspect-ratio:auto}
  .showcase-one,.showcase-photo,.showcase-image,.full-bleed-photo,.premium-photo-stage,.band-image{min-height:250px;aspect-ratio:4/3}
  .image-band{padding:20px}
  .image-band-visual{min-height:auto;display:grid;grid-template-columns:1fr;gap:14px}
  .image-stack-card{
    position:relative;
    width:100%;
    height:auto;
    min-height:220px;
    top:auto;right:auto;transform:none !important;
  }
  .hero-media,.section-media,.card-media,.tall-media,.photo-strip-media{min-height:unset}
  .stat-pill{min-width:100%}
}

@media (max-width: 768px) {
  .premium-feature-grid,
  .feature-grid,
  .three-col-grid,
  .why-choose-grid {
    grid-template-columns: 1fr !important;
  }

  .premium-feature-grid .card,
  .feature-grid .card,
  .three-col-grid .card,
  .why-choose-grid .card {
    width: 100%;
    min-width: 0;
  }
}
