:root{--ink:#222222;--muted:#555555;--cream:#fbf7ef;--paper:#fffdf8;--copper:#b9985a;--deep:#8a6f3e;--shadow:0 18px 60px rgba(80,45,22,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(180deg,var(--cream),var(--paper) 50%,var(--cream));color:var(--ink);font-family:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.topbar{position:fixed;z-index:10;top:0;left:0;right:0;height:80px;display:flex;align-items:center;gap:28px;padding:0 max(24px,calc((100vw - 1180px)/2));background:rgba(251,247,239,.88);border-bottom:1px solid rgba(185,152,90,.12);backdrop-filter:blur(16px)}.logo{display:flex;align-items:center;gap:12px}.logo span{font-family:"Playfair Display",Georgia,serif;font-size:48px;color:var(--deep);letter-spacing:-8px}.logo strong{font-family:"Playfair Display",Georgia,serif;font-size:20px;line-height:1}.logo small{display:block;font:300 10px "Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.nav{display:flex;gap:28px;margin-left:auto;font-size:12px;font-weight:700;text-transform:uppercase}.nav a:hover{color:var(--copper)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:8px;border:1px solid var(--copper);padding:0 18px;font-size:13px;font-weight:700;text-transform:uppercase;background:white;cursor:pointer}.primary{background:var(--copper);color:white}.ghost{border-radius:999px;color:var(--deep);background:rgba(255,255,255,.76)}.menu-btn{display:none;margin-left:auto}.mobile-nav{display:none}.hero{position:relative;min-height:760px;padding-top:80px;display:grid;align-items:center;overflow:hidden}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--cream),rgba(251,247,239,.78),rgba(251,247,239,.14))}.hero-copy{position:relative;z-index:1;width:min(1180px,calc(100% - 32px));margin:auto}.eyebrow{color:var(--copper);text-transform:uppercase;font-size:12px;font-weight:800;letter-spacing:.18em}.hero h1,.section h2,.dark h2{font-family:"Playfair Display",Georgia,serif;font-size:clamp(46px,7vw,82px);line-height:1.05;max-width:760px;margin:0}.hero h1 span,.script{font-family:"Playfair Display",Georgia,serif;color:var(--copper);font-weight:400;display:block;font-size:clamp(58px,8vw,96px)}.sub{font-weight:700;text-transform:uppercase}.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}.section{width:min(1180px,calc(100% - 32px));margin:auto;padding:80px 0}.two-col{display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:center}.lead{color:var(--muted);line-height:1.8}.rounded{border-radius:8px}.media{height:520px;width:100%;object-fit:cover;box-shadow:var(--shadow)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:30px}.stats div,.cards article,.prices article,.panel,.list article{border:1px solid rgba(138,111,62,.15);background:rgba(255,253,248,.82);border-radius:8px;box-shadow:var(--shadow);padding:22px}.stats b{display:block;font-family:"Playfair Display",Georgia,serif;font-size:36px;color:var(--copper)}.stats span{font-size:11px;font-weight:800;text-transform:uppercase}.band{background:var(--paper)}.section-head{margin-bottom:36px}.center{text-align:center}.center h2{margin:auto}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.cards img{height:240px;width:100%;object-fit:cover;border-radius:8px}.cards h3{font-family:"Playfair Display",Georgia,serif;font-size:26px;color:var(--deep)}.cards p{color:var(--muted);line-height:1.7}.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.album-card{position:relative;border-radius:8px;overflow:hidden;box-shadow:var(--shadow);background:var(--paper)}.album-card>img{height:330px;width:100%;object-fit:cover}.album-card>div{padding:22px}.album-card h3{font-family:"Playfair Display",Georgia,serif;font-size:30px;margin:4px 0}.album-card p{color:var(--muted);line-height:1.6}.album-card details{padding:0 22px 22px}.album-card summary{cursor:pointer;font-weight:800;color:var(--deep);text-transform:uppercase;font-size:12px}.detail-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:14px}.detail-grid img{aspect-ratio:4/3;width:100%;object-fit:cover;border-radius:8px}.dark{background:var(--ink);color:white}.prices{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.prices article{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.15)}.prices .hot{background:white;color:var(--ink);border-color:var(--copper)}.prices h3{font-family:"Playfair Display",Georgia,serif;font-size:38px}.prices span{color:inherit;opacity:.72}.prices li{margin:12px 0}.reviews img{height:72px;width:72px;border-radius:50%}.contact{display:grid;grid-template-columns:.85fr 1.15fr;padding-bottom:110px}.contact-copy{background:var(--ink);color:white;border-radius:8px 0 0 8px;padding:42px}.contact-copy h2{font-family:"Playfair Display",Georgia,serif;font-size:42px}form{display:grid;gap:14px;background:var(--paper);padding:42px;border-radius:0 8px 8px 0;box-shadow:var(--shadow)}label{display:grid;gap:7px;font-size:14px;font-weight:800}input,select,textarea{width:100%;border:1px solid rgba(138,111,62,.2);border-radius:8px;background:white;min-height:44px;padding:10px 12px}textarea{min-height:110px;resize:vertical}.form-message{font-weight:800;color:var(--deep)}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:32px max(24px,calc((100vw - 1180px)/2));background:var(--paper);border-top:1px solid rgba(185,152,90,.12)}.mobile-cta{display:none}.admin-body{background:var(--cream)}.admin-shell{width:min(1180px,calc(100% - 32px));margin:auto;padding:28px 0}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.admin-header h1,.login-panel h1{font-family:"Playfair Display",Georgia,serif;font-size:42px}.login-panel{max-width:520px;margin:12vh auto;padding:32px;border-radius:8px;background:var(--paper);box-shadow:var(--shadow)}.tabs{display:flex;gap:10px;margin:24px 0}.tabs a{border:1px solid var(--copper);border-radius:999px;background:white;color:var(--deep);padding:12px 18px;font-weight:800}.tabs .active{background:var(--copper);color:white}.admin-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:24px}.list{display:grid;gap:14px}.list article{display:grid;grid-template-columns:140px 1fr auto;gap:16px;align-items:center}.list img{width:140px;height:104px;object-fit:cover;border-radius:8px}.list h3{font-family:"Playfair Display",Georgia,serif;font-size:24px;margin:0}.list p{color:var(--muted)}.danger{border-color:#b42318;color:#b42318}.message{margin:16px 0;padding:14px 18px;border-radius:8px;background:white;color:var(--deep);font-weight:800;box-shadow:var(--shadow)}@media(max-width:900px){.topbar{height:auto;min-height:72px}.nav,.topbar>.primary{display:none}.menu-btn{display:block;border:1px solid var(--copper);border-radius:8px;background:white;padding:10px 14px}.mobile-nav{position:fixed;z-index:11;top:72px;left:0;right:0;background:var(--paper);padding:12px 24px;box-shadow:var(--shadow)}.mobile-nav.open{display:grid;gap:12px}.hero{min-height:660px}.two-col,.contact,.admin-grid{grid-template-columns:1fr}.stats,.cards,.album-grid,.prices{grid-template-columns:1fr}.media{height:360px}.contact-copy,form{border-radius:8px}.mobile-cta{position:fixed;z-index:9;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px;background:var(--paper);box-shadow:var(--shadow)}.mobile-cta a{text-align:center;border-radius:8px;background:var(--copper);color:white;font-weight:800;padding:12px}footer{display:block;padding-bottom:80px}.list article{grid-template-columns:1fr}.list img{width:100%;height:180px}}@media(max-width:520px){.section{padding:58px 0}.hero h1{font-size:44px}.hero h1 span{font-size:64px}.logo strong{display:none}.stats{grid-template-columns:repeat(2,1fr)}}
:root{--ink:#222222;--muted:#555555;--cream:#fbf7ef;--paper:#fffdf8;--copper:#b9985a;--deep:#8a6f3e;--shadow:0 18px 60px rgba(80,45,22,.12)}
.hero-slider{position:absolute;inset:0}.hero-dots{position:absolute;z-index:2;left:50%;bottom:32px;display:flex;gap:10px;transform:translateX(-50%)}.hero-dots button{width:38px;height:4px;min-height:4px;border:0;border-radius:999px;background:rgba(255,255,255,.62);cursor:pointer;padding:0}.hero-dots button.active{background:var(--copper)}

body,input,select,textarea,button{font-family:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.logo strong,.hero h1,.section h2,.dark h2,.cards h3,.album-card h3,.prices h3,.contact-copy h2,.admin-header h1,.login-panel h1,.list h3{font-family:"Playfair Display",Georgia,serif;font-weight:400;letter-spacing:.01em}.logo span,.stats b{font-family:"Playfair Display",Georgia,serif;font-weight:400}.hero h1{font-weight:400;letter-spacing:.005em}.hero h1 span,.script{font-family:"Playfair Display",Georgia,serif;font-weight:400;letter-spacing:0}.eyebrow,.nav,.btn,.stats span,.album-card summary,.tabs a{font-family:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.12em}.lead,.cards p,.album-card p,.list p{font-weight:400;line-height:1.78}

.btn,.tabs a,.menu-btn,.mobile-cta a,.album-card summary{position:relative;overflow:hidden;isolation:isolate;transition:transform 180ms ease,box-shadow 180ms ease,border-color 180ms ease,background-color 180ms ease,color 180ms ease}.btn:before,.tabs a:before,.menu-btn:before,.mobile-cta a:before{content:"";position:absolute;z-index:-1;inset:-2px auto -2px -55%;width:46%;background:linear-gradient(110deg,transparent,rgba(255,255,255,.58),transparent);transform:skewX(-18deg);opacity:0;transition:left 520ms ease,opacity 180ms ease}.btn:hover,.tabs a:hover,.menu-btn:hover,.mobile-cta a:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(185,152,90,.22);border-color:rgba(185,152,90,.78)}.btn:hover:before,.tabs a:hover:before,.menu-btn:hover:before,.mobile-cta a:hover:before{left:112%;opacity:1}.primary:hover,.mobile-cta a:hover{background:#a88748;color:#fff}.ghost:hover,.tabs a:hover,.menu-btn:hover{background:#fbf2e8;color:#7f6538}.btn:active,.tabs a:active,.menu-btn:active,.mobile-cta a:active{transform:translateY(0);box-shadow:0 8px 18px rgba(185,152,90,.14)}.btn:focus-visible,.tabs a:focus-visible,.menu-btn:focus-visible,.mobile-cta a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(185,152,90,.28);outline-offset:3px}.danger:hover{background:#fff3f1;border-color:#b42318;color:#8f1d14}.album-card summary:hover{color:var(--copper);transform:translateX(4px)}@media(hover:none){.btn:hover,.tabs a:hover,.menu-btn:hover,.mobile-cta a:hover{transform:none;box-shadow:none}.btn:before,.tabs a:before,.menu-btn:before,.mobile-cta a:before{display:none}}

.btn,.tabs a,.menu-btn,.mobile-cta a{cursor:pointer;will-change:transform,box-shadow}.btn:after,.tabs a:after,.menu-btn:after,.mobile-cta a:after{content:"";position:absolute;top:-35%;bottom:-35%;left:-70%;z-index:1;width:46%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.72),transparent);transform:skewX(-18deg);pointer-events:none;opacity:0}.btn:hover,.tabs a:hover,.menu-btn:hover,.mobile-cta a:hover{transform:translateY(-3px) scale(1.015)!important;box-shadow:0 18px 38px rgba(185,152,90,.28)!important}.btn:hover:after,.tabs a:hover:after,.menu-btn:hover:after,.mobile-cta a:hover:after{left:125%;opacity:1;transition:left 680ms ease,opacity 160ms ease}.primary:hover{background:#a88748!important}.ghost:hover,.tabs a:hover,.menu-btn:hover{background:#fff!important;color:#765c32!important}

.hero:after{background:linear-gradient(90deg,rgba(251,247,239,.58) 0%,rgba(251,247,239,.36) 34%,rgba(251,247,239,.13) 64%,rgba(251,247,239,.02) 100%)!important}.hero-copy{text-shadow:0 1px 18px rgba(251,247,239,.58)}.hero-dots button{background:rgba(36,27,22,.24)!important}.hero-dots button.active{background:var(--copper)!important}

.hero{height:40vw!important;min-height:0!important;max-height:none!important;aspect-ratio:5/2!important;padding-top:80px!important}.hero-copy{align-self:center}@media(max-width:900px){.hero{height:40vw!important;min-height:0!important;padding-top:72px!important}.hero-copy{transform:scale(.82);transform-origin:left center}}@media(max-width:520px){.hero-copy{transform:scale(.68);width:145%!important}}

.nav a{position:relative;display:inline-flex;align-items:center;padding:10px 0;transform-origin:center;transition:color 180ms ease,transform 180ms ease}.nav a:after{content:"";position:absolute;left:50%;right:50%;bottom:3px;height:2px;border-radius:999px;background:var(--copper);opacity:0;transition:left 220ms ease,right 220ms ease,opacity 180ms ease}.nav a:hover{color:var(--copper)!important;transform:scale(1.08)}.nav a:hover:after{left:0;right:0;opacity:1}.nav a:focus-visible{outline:3px solid rgba(185,152,90,.24);outline-offset:6px;border-radius:6px}

.hero:after{background:linear-gradient(180deg,rgba(0,0,0,0) 48%,rgba(0,0,0,.28) 100%),linear-gradient(90deg,rgba(251,247,239,.18) 0%,rgba(251,247,239,.08) 34%,rgba(251,247,239,.02) 68%,rgba(251,247,239,0) 100%)!important}.hero-copy{position:absolute!important;z-index:3;left:50%;bottom:66px;width:min(760px,calc(100% - 32px))!important;margin:0!important;transform:translateX(-50%)!important;text-align:center;text-shadow:0 2px 18px rgba(0,0,0,.42)!important;align-self:auto!important}.hero-copy .sub{margin:0;color:#fff;font-size:14px;line-height:1.45;letter-spacing:.15em}.hero-copy .actions{justify-content:center;margin-top:16px}.hero-dots{bottom:24px!important}@media(max-width:900px){.hero-copy{bottom:58px!important;transform:translateX(-50%)!important}.hero-copy .sub{font-size:12px}.hero-copy .actions{margin-top:12px}}@media(max-width:520px){.hero-copy{bottom:50px!important;width:calc(100% - 24px)!important;transform:translateX(-50%)!important}.hero-copy .sub{font-size:11px;letter-spacing:.08em}.hero-copy .actions{gap:8px}.hero-copy .btn{min-height:38px;padding:0 12px;font-size:11px}.hero-dots{bottom:16px!important}}

.hero:after{background:linear-gradient(180deg,rgba(0,0,0,0) 58%,rgba(0,0,0,.34) 100%)!important}

/* Refined editorial typography inspired by luxury bridal layouts. */
:root{
  --display-font:"Playfair Display",Georgia,serif;
  --body-font:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
body,input,select,textarea,button{
  font-family:var(--body-font)!important;
  font-weight:400;
  letter-spacing:0;
}
.logo span,
.logo strong,
.hero h1,
.section h2,
.dark h2,
.cards h3,
.album-card h3,
.prices h3,
.contact-copy h2,
.admin-header h1,
.login-panel h1,
.list h3,
.stats b{
  font-family:var(--display-font)!important;
  font-weight:400!important;
  letter-spacing:.015em!important;
}
.section-head,
.two-col>div:first-child>.eyebrow,
.dark .section-head{
  text-align:center;
}
.section-head .eyebrow,
.two-col>div:first-child>.eyebrow{
  position:relative;
  display:block;
  width:fit-content;
  margin:0 auto 34px;
  color:#333333!important;
  font-family:var(--display-font)!important;
  font-size:clamp(42px,6.2vw,86px)!important;
  font-weight:400!important;
  line-height:.95!important;
  letter-spacing:.035em!important;
  text-transform:uppercase!important;
}
.section-head .eyebrow:after,
.two-col>div:first-child>.eyebrow:after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-22px;
  width:92px;
  height:2px;
  background:rgba(51,48,46,.62);
  transform:translateX(-50%);
}
.section-head h2,
.two-col>div:first-child>h2{
  max-width:980px!important;
  margin:0 auto!important;
  color:#333333!important;
  font-family:var(--body-font)!important;
  font-size:clamp(20px,2.2vw,36px)!important;
  font-weight:300!important;
  line-height:1.42!important;
  letter-spacing:.005em!important;
}
.section-head{
  margin-bottom:48px!important;
}
.two-col>div:first-child>.lead{
  margin-top:26px;
  text-align:left;
}
.dark .section-head .eyebrow,
.dark .section-head h2{
  color:#fff!important;
}
.dark .section-head .eyebrow:after{
  background:rgba(255,255,255,.62);
}
.cards h3,
.album-card h3,
.prices h3,
.contact-copy h2{
  line-height:1.04!important;
}
.cards p,
.album-card p,
.lead,
.contact-copy p,
.prices span,
.prices li{
  font-family:var(--body-font)!important;
  font-weight:300!important;
  letter-spacing:.005em;
}
@media(max-width:900px){
  .section-head .eyebrow,
  .two-col>div:first-child>.eyebrow{
    font-size:clamp(36px,10vw,58px)!important;
    margin-bottom:30px;
  }
  .section-head h2,
  .two-col>div:first-child>h2{
    font-size:clamp(18px,4.8vw,25px)!important;
  }
}

/* Hero support layout. */
.hero-copy{
  bottom:54px!important;
}
.hero-copy .actions{
  margin-top:0!important;
}
.hero-slider{
  overflow:hidden;
  background:#111;
}
.hero-quote{
  width:min(1180px,calc(100% - 32px));
  margin:0 auto;
  padding:36px 0 18px;
  text-align:center;
}
.hero-quote div{
  width:112px;
  height:1px;
  margin:0 auto 22px;
  background:rgba(51,48,46,.42);
}
.hero-quote p{
  max-width:980px;
  margin:0 auto;
  color:#333333;
  font-family:"Playfair Display",Georgia,serif!important;
  font-size:clamp(24px,3vw,42px);
  font-style:italic;
  font-weight:300;
  line-height:1.42;
  letter-spacing:.006em;
}
.section-head .eyebrow,
.two-col>div:first-child>.eyebrow{
  font-size:clamp(34px,4.4vw,60px)!important;
  margin-bottom:30px!important;
  letter-spacing:.03em!important;
}
.section-head .eyebrow:after,
.two-col>div:first-child>.eyebrow:after{
  bottom:-18px!important;
  width:84px!important;
}
.section-head h2,
.two-col>div:first-child>h2{
  max-width:900px!important;
  font-size:clamp(17px,1.65vw,28px)!important;
  line-height:1.5!important;
}
.section-head{
  margin-bottom:42px!important;
}
.band .section{
  padding-top:62px!important;
}
@media(max-width:900px){
  .hero-copy{
    bottom:48px!important;
  }
  .hero-quote{
    padding:28px 0 10px;
  }
  .hero-quote p{
    font-size:clamp(22px,6.3vw,32px);
  }
  .section-head .eyebrow,
  .two-col>div:first-child>.eyebrow{
    font-size:clamp(30px,8.4vw,46px)!important;
  }
  .section-head h2,
  .two-col>div:first-child>h2{
    font-size:clamp(16px,4.2vw,22px)!important;
  }
}

/* Smaller, lighter section typography. */
.section-head .eyebrow,
.two-col>div:first-child>.eyebrow{
  font-size:clamp(28px,3.55vw,48px)!important;
  font-weight:300!important;
  line-height:1.02!important;
  letter-spacing:.026em!important;
  margin-bottom:28px!important;
}
.section-head h2,
.two-col>div:first-child>h2{
  max-width:780px!important;
  font-size:clamp(15px,1.28vw,21px)!important;
  font-weight:300!important;
  line-height:1.58!important;
  color:#4d4743!important;
}
.section-head .eyebrow:after,
.two-col>div:first-child>.eyebrow:after{
  width:72px!important;
  height:1px!important;
  bottom:-16px!important;
}
.section-head{
  margin-bottom:36px!important;
}
@media(max-width:900px){
  .section-head .eyebrow,
  .two-col>div:first-child>.eyebrow{
    font-size:clamp(26px,7.2vw,38px)!important;
  }
  .section-head h2,
  .two-col>div:first-child>h2{
    font-size:clamp(14px,3.7vw,18px)!important;
  }
}

/* Real NOW MEDIA logo image. */
.image-logo{
  flex:0 0 auto;
  gap:0!important;
}
.image-logo img{
  display:block;
  width:auto;
  height:46px;
  max-width:230px;
  object-fit:contain;
}
footer .image-logo img{
  height:58px;
  max-width:300px;
}
@media(max-width:900px){
  .image-logo img{
    height:38px;
    max-width:180px;
  }
  footer .image-logo img{
    height:46px;
    max-width:230px;
  }
}
@media(max-width:520px){
  .image-logo img{
    height:34px;
    max-width:150px;
  }
}

/* Cropped logo. */
.topbar .image-logo img{
  height:54px!important;
  max-width:260px!important;
}
footer .image-logo img{
  height:66px!important;
  max-width:340px!important;
}
@media(max-width:900px){
  .topbar .image-logo img{
    height:42px!important;
    max-width:205px!important;
  }
  footer .image-logo img{
    height:52px!important;
    max-width:260px!important;
  }
}
@media(max-width:520px){
  .topbar .image-logo img{
    height:36px!important;
    max-width:170px!important;
  }
}

/* Hero track slide: frames sit side by side, never layered on top of each other. */
.hero-slider{
  position:absolute!important;
  inset:0!important;
  display:flex!important;
  width:100%!important;
  height:100%!important;
  overflow:visible!important;
  background:#111!important;
  transform:translate3d(0,0,0);
  transition:transform 1450ms cubic-bezier(.55,.02,.18,1)!important;
  will-change:transform!important;
}
.hero-slider.no-transition{
  transition:none!important;
}
.hero-slider img{
  position:relative!important;
  inset:auto!important;
  flex:0 0 100%!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  z-index:auto!important;
  transform:none!important;
  transform-origin:center center!important;
  clip-path:none!important;
  animation:none!important;
  transition:none!important;
  will-change:auto!important;
  backface-visibility:hidden!important;
}
.hero-slider img.is-active{
  transform:none!important;
}

/* Gentle first-load reveal for the hero quote. */
.hero-quote div{
  animation:quoteLineEnter 3600ms ease-out 1000ms both;
}
.hero-quote p{
  animation:quoteTextEnter 4200ms cubic-bezier(.22,.72,.18,1) 1100ms both;
}
@keyframes quoteLineEnter{
  0%{
    opacity:0;
    transform:translateY(10px) scaleX(.55);
  }
  100%{
    opacity:1;
    transform:translateY(0) scaleX(1);
  }
}
@keyframes quoteTextEnter{
  0%{
    opacity:0;
    transform:translateY(18px);
  }
  100%{
    opacity:1;
    transform:translateY(0);
  }
}
@media(prefers-reduced-motion:reduce){
  .hero-quote div,
  .hero-quote p{
    animation:none!important;
  }
}

/* Scroll reveal inspired by Mimosa Wedding's soft section entrances. */
.reveal-on-scroll{
  opacity:0;
  transform:translate3d(0,34px,0);
  transition:opacity 1800ms ease,transform 2100ms cubic-bezier(.22,.72,.18,1);
  will-change:opacity,transform;
}
.reveal-on-scroll.is-visible{
  opacity:1;
  transform:translate3d(0,0,0);
}
.reveal-on-scroll .section-head,
.reveal-on-scroll.two-col>div,
.reveal-on-scroll.two-col>.media,
.reveal-on-scroll .cards>article,
.reveal-on-scroll .album-card,
.reveal-on-scroll .prices>article,
.reveal-on-scroll .contact-copy,
.reveal-on-scroll form,
.reveal-on-scroll footer{
  opacity:0;
  transform:translate3d(0,26px,0);
  transition:opacity 1640ms ease,transform 1960ms cubic-bezier(.22,.72,.18,1);
}
.reveal-on-scroll.is-visible .section-head,
.reveal-on-scroll.is-visible.two-col>div,
.reveal-on-scroll.is-visible.two-col>.media,
.reveal-on-scroll.is-visible .cards>article,
.reveal-on-scroll.is-visible .album-card,
.reveal-on-scroll.is-visible .prices>article,
.reveal-on-scroll.is-visible .contact-copy,
.reveal-on-scroll.is-visible form,
.reveal-on-scroll.is-visible footer{
  opacity:1;
  transform:translate3d(0,0,0);
}
.reveal-on-scroll.is-visible .cards>article:nth-child(2),
.reveal-on-scroll.is-visible .album-card:nth-child(2),
.reveal-on-scroll.is-visible .prices>article:nth-child(2){
  transition-delay:240ms;
}
.reveal-on-scroll.is-visible .cards>article:nth-child(3),
.reveal-on-scroll.is-visible .album-card:nth-child(3),
.reveal-on-scroll.is-visible .prices>article:nth-child(3){
  transition-delay:440ms;
}
.reveal-on-scroll.is-visible .contact-copy + form,
.reveal-on-scroll.is-visible.two-col>.media{
  transition-delay:320ms;
}
@media(prefers-reduced-motion:reduce){
  .reveal-on-scroll,
  .reveal-on-scroll *,
  .reveal-on-scroll.is-visible,
  .reveal-on-scroll.is-visible *{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}

/* Dedicated services reveal and hover interaction. */
#services .service-card{
  position:relative;
  overflow:hidden;
  transition:transform 320ms ease,box-shadow 320ms ease!important;
}
#services .service-card img{
  transition:transform 520ms ease,filter 520ms ease;
}
#services .service-content{
  position:relative;
  z-index:1;
}
#services .service-overlay{
  position:absolute;
  z-index:3;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:13px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:0;
  transform:translateY(8px);
  transition:opacity 320ms ease,transform 320ms ease;
}
#services .service-overlay span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  border:1px solid rgba(255,255,255,.8);
  border-radius:999px;
  background:rgba(255,255,255,.12);
  padding:0 20px;
  backdrop-filter:blur(6px);
}
#services .service-card:before{
  content:"";
  position:absolute;
  z-index:2;
  left:0;
  right:0;
  bottom:0;
  height:66.666%;
  background:linear-gradient(180deg,rgba(185,152,90,0) 0%,rgba(185,152,90,.48) 42%,rgba(154,121,67,.82) 100%);
  opacity:0;
  transform:translate3d(0,100%,0);
  transition:opacity 360ms ease,transform 420ms cubic-bezier(.22,.72,.18,1);
  pointer-events:none;
}
#services .service-card:hover{
  transform:translateY(-6px) scale(1.035)!important;
  box-shadow:0 24px 58px rgba(36,27,22,.18)!important;
}
#services .service-card:hover:before,
#services .service-card:hover .service-overlay{
  opacity:1;
}
#services .service-card:hover:before{
  transform:translate3d(0,0,0);
}
#services .service-card:hover .service-overlay{
  transform:translateY(0);
}
#services .service-card:hover img{
  transform:scale(1.06);
  filter:saturate(.95) contrast(.96);
}
#services.reveal-on-scroll .service-card{
  opacity:0;
  transition:opacity 1700ms ease,transform 1900ms cubic-bezier(.22,.72,.18,1),box-shadow 320ms ease!important;
}
#services.reveal-on-scroll .service-card:nth-child(1){
  transform:translate3d(-58px,0,0);
}
#services.reveal-on-scroll .service-card:nth-child(2){
  transform:translate3d(0,58px,0);
}
#services.reveal-on-scroll .service-card:nth-child(3){
  transform:translate3d(58px,0,0);
}
#services.reveal-on-scroll.is-visible .service-card{
  opacity:1;
  transform:translate3d(0,0,0);
}
#services.reveal-on-scroll.is-visible .service-card:nth-child(2){
  transition-delay:180ms;
}
#services.reveal-on-scroll.is-visible .service-card:nth-child(3){
  transition-delay:320ms;
}
#services.reveal-on-scroll.is-visible .service-card:hover{
  transform:translateY(-6px) scale(1.035)!important;
}
@media(hover:none){
  #services .service-card:hover{
    transform:none!important;
    box-shadow:var(--shadow)!important;
  }
  #services .service-card:before,
  #services .service-overlay{
    display:none;
  }
}

/* Dropdown navigation and subpage layouts. */
.nav-item{
  position:relative;
  display:inline-flex;
  align-items:center;
}
.nav a.active{
  color:var(--copper)!important;
}
.has-dropdown:hover .dropdown,
.has-dropdown:focus-within .dropdown{
  opacity:1;
  visibility:visible;
  transform:translate3d(-50%,0,0);
}
.dropdown{
  position:absolute;
  top:100%;
  left:50%;
  z-index:20;
  min-width:210px;
  display:grid;
  gap:4px;
  padding:12px;
  border:1px solid rgba(138,111,62,.16);
  border-radius:8px;
  background:rgba(255,253,248,.96);
  box-shadow:0 18px 50px rgba(36,27,22,.16);
  opacity:0;
  visibility:hidden;
  transform:translate3d(-50%,12px,0);
  transition:opacity 220ms ease,transform 220ms ease,visibility 220ms ease;
}
.dropdown a{
  display:block!important;
  padding:11px 12px!important;
  border-radius:6px;
  white-space:nowrap;
  color:var(--ink)!important;
  transform:none!important;
}
.dropdown a:after{
  display:none!important;
}
.dropdown a:hover{
  background:#fff3e9;
  color:var(--copper)!important;
}
.subpage{
  padding-top:80px;
}
.page-hero{
  position:relative;
  min-height:480px;
  display:grid;
  align-items:end;
  overflow:hidden;
  color:#fff;
}
.page-hero img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.page-hero:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.58));
}
.page-hero>div{
  position:relative;
  z-index:1;
  width:min(1180px,calc(100% - 32px));
  margin:0 auto;
  padding:0 0 70px;
}
.page-hero h1,
.page-title h1{
  max-width:820px;
  margin:0 0 24px;
  font-family:var(--display-font)!important;
  font-size:clamp(38px,5.4vw,72px);
  font-weight:300;
  line-height:1.06;
}
.page-title{
  width:min(1180px,calc(100% - 32px));
  margin:0 auto;
  padding:110px 0 24px;
  text-align:center;
}
.page-title h1{
  margin:0 auto;
}
.page-content{
  padding-top:70px;
}
.feature-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.feature-grid article{
  min-height:190px;
  border:1px solid rgba(138,111,62,.15);
  border-radius:8px;
  background:rgba(255,253,248,.84);
  box-shadow:var(--shadow);
  padding:26px;
}
.feature-grid h3{
  margin:0 0 12px;
  font-family:var(--display-font)!important;
  font-size:30px;
  font-weight:400;
  color:var(--deep);
}
.feature-grid p{
  color:var(--muted);
  line-height:1.75;
}
@media(max-width:900px){
  .dropdown{
    display:none;
  }
  .subpage{
    padding-top:72px;
  }
  .page-hero{
    min-height:420px;
  }
  .feature-grid{
    grid-template-columns:1fr;
  }
}

/* Global interaction pass: all links/buttons/cards respond to hover and press. */
a,
button,
summary{
  transition:color 180ms ease,background-color 180ms ease,border-color 180ms ease,box-shadow 180ms ease,transform 180ms ease,opacity 180ms ease;
}
a:active,
button:active,
summary:active{
  transform:translateY(1px) scale(.985);
}
.logo:hover,
footer a:hover,
.contact-copy a:hover,
.album-card summary:hover,
.cards article a:hover,
.feature-grid article a:hover{
  color:var(--copper)!important;
}
.album-card,
.cards article:not(.service-card),
.prices article,
.feature-grid article,
.stats div{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transition:transform 320ms ease,box-shadow 320ms ease,border-color 320ms ease!important;
}
.album-card:before,
.cards article:not(.service-card):before,
.prices article:before,
.feature-grid article:before,
.stats div:before{
  content:"";
  position:absolute;
  z-index:0;
  left:0;
  right:0;
  bottom:0;
  height:66.666%;
  background:linear-gradient(180deg,rgba(185,152,90,0) 0%,rgba(185,152,90,.34) 48%,rgba(154,121,67,.64) 100%);
  opacity:0;
  transform:translate3d(0,100%,0);
  transition:opacity 360ms ease,transform 420ms cubic-bezier(.22,.72,.18,1);
  pointer-events:none;
}
.album-card>*,
.cards article:not(.service-card)>*,
.prices article>*,
.feature-grid article>*,
.stats div>*{
  position:relative;
  z-index:1;
}
.album-card:hover,
.cards article:not(.service-card):hover,
.prices article:hover,
.feature-grid article:hover,
.stats div:hover{
  transform:translateY(-6px) scale(1.018)!important;
  box-shadow:0 24px 58px rgba(36,27,22,.16)!important;
  border-color:rgba(185,152,90,.34)!important;
}
.album-card:hover:before,
.cards article:not(.service-card):hover:before,
.prices article:hover:before,
.feature-grid article:hover:before,
.stats div:hover:before{
  opacity:1;
  transform:translate3d(0,0,0);
}
.album-card:hover>img,
.cards article:not(.service-card):hover>img{
  transform:scale(1.045);
  filter:saturate(.96) contrast(.98);
}
.album-card>img,
.cards article:not(.service-card)>img{
  transition:transform 520ms ease,filter 520ms ease;
}
@media(hover:none){
  .album-card:hover,
  .cards article:not(.service-card):hover,
  .prices article:hover,
  .feature-grid article:hover,
  .stats div:hover{
    transform:none!important;
    box-shadow:var(--shadow)!important;
  }
  .album-card:before,
  .cards article:not(.service-card):before,
  .prices article:before,
  .feature-grid article:before,
  .stats div:before{
    display:none;
  }
}

#services .service-overlay,
#services .service-overlay:hover,
#services .service-overlay:active,
#services .service-overlay:focus,
#services .service-overlay span{
  color:#fff!important;
}

/* Featured album carousel. */
.album-carousel{
  position:relative;
  height:560px;
  margin:0 auto;
  overflow:hidden;
  isolation:isolate;
}
.album-carousel .album-card{
  position:absolute!important;
  top:50%;
  left:50%;
  width:min(32vw,360px);
  min-width:300px;
  padding:0!important;
  opacity:0;
  pointer-events:none;
  transform:translate3d(-50%,-50%,0) scale(.9);
  transition:transform 1100ms cubic-bezier(.22,.72,.18,1),opacity 900ms ease,box-shadow 320ms ease!important;
  will-change:transform,opacity;
}
.album-carousel .album-card.is-left{
  opacity:.86;
  pointer-events:auto;
  transform:translate3d(calc(-50% - 390px),-50%,0) scale(.94)!important;
  z-index:2;
}
.album-carousel .album-card.is-center{
  opacity:1;
  pointer-events:auto;
  transform:translate3d(-50%,-50%,0) scale(1.15)!important;
  z-index:4;
}
.album-carousel .album-card.is-right{
  opacity:.86;
  pointer-events:auto;
  transform:translate3d(calc(-50% + 390px),-50%,0) scale(.94)!important;
  z-index:2;
}
.album-carousel .album-card.is-hidden-left{
  transform:translate3d(calc(-50% - 760px),-50%,0) scale(.86)!important;
  z-index:1;
}
.album-carousel .album-card.is-hidden-right{
  transform:translate3d(calc(-50% + 760px),-50%,0) scale(.86)!important;
  z-index:1;
}
.album-card-link{
  display:block;
  height:100%;
  color:inherit;
  position:static!important;
  z-index:auto!important;
}
.album-card-link>img{
  height:330px;
  width:100%;
  object-fit:cover;
  transition:transform 520ms ease,filter 520ms ease;
}
.album-card-link>div{
  min-height:120px;
  padding:22px;
}
.album-view-btn{
  position:absolute;
  z-index:4;
  top:50%;
  left:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  border:1px solid rgba(255,255,255,.86);
  border-radius:999px;
  background:rgba(255,255,255,.16);
  color:#fff;
  padding:0 22px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:0;
  transform:translate3d(-50%,-42%,0);
  transition:opacity 300ms ease,transform 340ms ease,background-color 220ms ease;
  backdrop-filter:blur(8px);
}
.cards article .btn:hover,
.prices article .btn:hover,
.feature-grid article .btn:hover,
.album-card .album-view-btn:hover,
#services .service-overlay span:hover{
  border-color:rgba(255,255,255,.92);
  box-shadow:0 0 0 1px rgba(255,255,255,.28),0 0 22px rgba(185,152,90,.42),0 12px 30px rgba(185,152,90,.22)!important;
  text-shadow:0 0 14px rgba(255,255,255,.5);
}
.prices article .btn:hover,
.feature-grid article .btn:hover{
  border-color:rgba(185,152,90,.86);
  box-shadow:0 0 0 1px rgba(185,152,90,.2),0 0 24px rgba(185,152,90,.36),0 14px 30px rgba(36,27,22,.12)!important;
}
.album-carousel .album-card:before{
  z-index:3!important;
  background:linear-gradient(180deg,rgba(185,152,90,0) 0%,rgba(185,152,90,.4) 48%,rgba(154,121,67,.72) 100%)!important;
}
.album-carousel .album-card:hover .album-view-btn,
.album-carousel .album-card:focus-within .album-view-btn{
  opacity:1;
  transform:translate3d(-50%,-50%,0);
}
.album-carousel .album-card:hover .album-view-btn{
  background:rgba(255,255,255,.22);
}
.album-carousel .album-card:hover.is-left{
  transform:translate3d(calc(-50% - 390px),-50%,0) scale(.98)!important;
}
.album-carousel .album-card:hover.is-center{
  transform:translate3d(-50%,-50%,0) scale(1.19)!important;
}
.album-carousel .album-card:hover.is-right{
  transform:translate3d(calc(-50% + 390px),-50%,0) scale(.98)!important;
}
.album-carousel .album-card:hover .album-card-link>img{
  transform:scale(1.045);
  filter:saturate(.96) contrast(.98);
}
.album-more{
  display:flex;
  justify-content:center;
  margin-top:18px;
}

/* Featured video showcase. */
.video-showcase{
  width:min(1040px,100%);
  margin:0 auto;
}

.video-showcase-main{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  border:1px solid rgba(185,152,90,.22);
  border-radius:8px;
  background:#111;
  box-shadow:0 24px 70px rgba(36,27,22,.16);
  isolation:isolate;
  padding:0;
  text-align:left;
}

.video-showcase-preview{
  position:absolute;
  inset:0;
}

.video-showcase-preview:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,0) 44%,rgba(25,18,12,.58) 100%);
  pointer-events:none;
}

.video-showcase-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.015);
  transition:opacity 560ms ease,transform 1200ms cubic-bezier(.22,.72,.18,1);
}

.video-showcase-main.is-changing .video-showcase-preview img{
  opacity:.2;
  transform:translate3d(-18px,0,0) scale(1.03);
}

.video-showcase-play{
  position:absolute;
  z-index:2;
  top:50%;
  left:50%;
  width:74px;
  height:74px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:50%;
  background:rgba(255,255,255,.18);
  transform:translate3d(-50%,-50%,0);
  backdrop-filter:blur(10px);
  transition:transform 260ms ease,background-color 260ms ease,box-shadow 260ms ease;
  cursor:pointer;
}

.video-showcase-play:after{
  content:"";
  position:absolute;
  top:50%;
  left:52%;
  width:0;
  height:0;
  border-top:12px solid transparent;
  border-bottom:12px solid transparent;
  border-left:18px solid #fff;
  transform:translate3d(-50%,-50%,0);
}

.video-showcase-preview:hover .video-showcase-play,
.video-showcase-play:hover{
  transform:translate3d(-50%,-50%,0) scale(1.08);
  background:rgba(185,152,90,.52);
  box-shadow:0 0 0 1px rgba(255,255,255,.22),0 0 30px rgba(185,152,90,.42);
}

.video-showcase-meta{
  position:absolute;
  z-index:2;
  left:28px;
  right:28px;
  bottom:24px;
  display:grid;
  gap:7px;
  color:#fff;
}

.video-showcase-open{
  position:absolute;
  z-index:2;
  right:24px;
  bottom:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  border:1px solid rgba(255,255,255,.76);
  border-radius:999px;
  background:rgba(255,255,255,.14);
  color:#fff;
  padding:0 18px;
  font-family:var(--body-font);
  font-size:11px;
  font-weight:300;
  letter-spacing:1.6px;
  text-transform:uppercase;
  backdrop-filter:blur(10px);
  transition:background-color 240ms ease,box-shadow 240ms ease,transform 240ms ease;
}

.video-showcase-preview:hover .video-showcase-open,
.video-showcase-open:hover{
  background:rgba(185,152,90,.52);
  box-shadow:0 0 0 1px rgba(255,255,255,.22),0 0 26px rgba(185,152,90,.36);
  transform:translateY(-2px);
}

.video-showcase-inline-frame{
  position:absolute;
  inset:0;
  z-index:4;
  display:none;
  background:#111;
}

.video-showcase-main.is-playing .video-showcase-preview{
  display:none;
}

.video-showcase-main.is-playing .video-showcase-inline-frame{
  display:block;
}

.video-showcase-inline-frame video,
.video-showcase-inline-frame iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
}

.video-showcase-empty{
  display:grid;
  place-items:center;
  height:100%;
  padding:28px;
  color:#fff;
  font-family:var(--body-font);
  font-size:15px;
  letter-spacing:.04em;
  text-align:center;
}

.video-showcase-meta small{
  font-family:var(--body-font);
  font-size:11px;
  font-style:normal;
  font-weight:300;
  letter-spacing:2px;
  text-transform:uppercase;
  color:rgba(255,255,255,.78);
}

.video-showcase-meta strong{
  font-family:var(--display-font);
  font-size:clamp(30px,4vw,48px);
  font-weight:400;
  line-height:1;
}

.video-showcase-meta em{
  max-width:680px;
  font-family:var(--body-font);
  font-size:14px;
  font-style:normal;
  font-weight:300;
  line-height:1.65;
  color:rgba(255,255,255,.82);
}

.video-showcase-strip{
  margin-top:16px;
  overflow:hidden;
}

.video-showcase-track{
  display:flex;
  gap:14px;
  transition:transform 900ms cubic-bezier(.22,.72,.18,1);
  will-change:transform;
}

.video-showcase-thumb{
  position:relative;
  flex:0 0 calc((100% - 56px)/5);
  aspect-ratio:16/9;
  overflow:hidden;
  border:1px solid rgba(185,152,90,.2);
  border-radius:8px;
  background:#111;
  padding:0;
  cursor:pointer;
  box-shadow:0 14px 36px rgba(36,27,22,.08);
  transition:transform 260ms ease,border-color 260ms ease,box-shadow 260ms ease;
}

.video-showcase-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.72;
  transition:opacity 260ms ease,transform 520ms ease;
}

.video-showcase-thumb:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0) 34%,rgba(25,18,12,.66));
}

.video-showcase-thumb span{
  position:absolute;
  z-index:1;
  left:10px;
  right:10px;
  bottom:9px;
  color:#fff;
  font-size:10px;
  line-height:1.3;
  letter-spacing:1px;
  text-transform:uppercase;
}

.video-showcase-thumb:hover,
.video-showcase-thumb.is-active{
  transform:translateY(-3px);
  border-color:rgba(185,152,90,.78);
  box-shadow:0 18px 42px rgba(185,152,90,.18);
}

.video-showcase-thumb:hover img,
.video-showcase-thumb.is-active img{
  opacity:1;
  transform:scale(1.05);
}

.video-showcase-thumb.is-active{
  outline:2px solid rgba(185,152,90,.62);
  outline-offset:2px;
}

@media(max-width:900px){
  .video-showcase{
    width:100%;
  }

  .video-showcase-meta{
    left:18px;
    right:18px;
    bottom:18px;
  }

  .video-showcase-meta em{
    display:none;
  }

  .video-showcase-open{
    right:18px;
    bottom:18px;
    min-height:36px;
    padding:0 14px;
    font-size:10px;
  }

  .video-showcase-play{
    width:58px;
    height:58px;
  }

  .video-showcase-thumb{
    flex-basis:calc((100% - 24px)/3);
  }
}

@media(max-width:560px){
  .video-showcase-thumb{
    flex-basis:calc((100% - 12px)/2);
  }

  .video-showcase-track{
    gap:12px;
  }
}

.album-grid .album-card:before{
  z-index:3!important;
}
.album-grid .album-card:hover .album-view-btn,
.album-grid .album-card:focus-within .album-view-btn{
  opacity:1;
  transform:translate3d(-50%,-50%,0);
}
.album-grid .album-card:hover .album-card-link>img{
  transform:scale(1.045);
  filter:saturate(.96) contrast(.98);
}

.portfolio-gallery{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}

.portfolio-card{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(138,111,62,.16);
  border-radius:8px;
  background:rgba(255,253,248,.9);
  box-shadow:var(--shadow);
  transition:transform 260ms ease,box-shadow 260ms ease,border-color 260ms ease;
}

.portfolio-card a{
  display:block;
  height:100%;
}

.portfolio-media{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:#f5eee8;
}

.portfolio-gallery--video .portfolio-media{
  aspect-ratio:16/9;
}

.portfolio-media:after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:68%;
  background:linear-gradient(0deg,rgba(185,152,90,.56),rgba(185,152,90,.16) 62%,rgba(185,152,90,0));
  opacity:0;
  transform:translateY(100%);
  transition:opacity 420ms ease,transform 520ms cubic-bezier(.2,.7,.2,1);
  pointer-events:none;
}

.portfolio-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 720ms cubic-bezier(.2,.7,.2,1),filter 420ms ease;
}

.portfolio-view-btn{
  position:absolute;
  z-index:2;
  left:50%;
  top:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 24px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:999px;
  background:rgba(255,255,255,.5);
  color:#fff;
  font-size:12px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  opacity:0;
  transform:translate(-50%,-42%) scale(.96);
  box-shadow:0 14px 34px rgba(80,45,22,.2);
  transition:opacity 240ms ease,transform 260ms ease,background 220ms ease,box-shadow 220ms ease;
  white-space:nowrap;
}

.portfolio-play{
  position:absolute;
  z-index:2;
  left:50%;
  top:50%;
  width:62px;
  height:44px;
  border-radius:14px;
  background:rgba(185,152,90,.9);
  box-shadow:0 18px 44px rgba(185,152,90,.32);
  opacity:1;
  transform:translate(-50%,-50%);
  transition:opacity 220ms ease,transform 260ms ease;
}

.portfolio-play:after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:0;
  height:0;
  border-top:9px solid transparent;
  border-bottom:9px solid transparent;
  border-left:15px solid #fff;
  transform:translate(-36%,-50%);
}

.video-card .portfolio-view-btn{
  top:calc(50% + 58px);
}

.portfolio-card-body{
  padding:24px;
}

.portfolio-card-body small{
  display:block;
  margin-bottom:10px;
  color:var(--copper);
  font-size:11px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.portfolio-card-body h3{
  margin:0;
  color:var(--deep);
  font-family:var(--display-font);
  font-size:clamp(25px,2.7vw,36px);
  font-weight:400;
  line-height:1.12;
}

.portfolio-card-body p{
  margin:16px 0 0;
  color:var(--muted);
  font-size:15.5px;
  line-height:1.7;
}

.portfolio-card:hover{
  transform:translateY(-6px);
  border-color:rgba(185,152,90,.34);
  box-shadow:0 28px 70px rgba(80,45,22,.16);
}

.portfolio-card:hover .portfolio-media img{
  transform:scale(1.08);
  filter:saturate(1.06) contrast(1.02);
}

.portfolio-card:hover .portfolio-media:after{
  opacity:1;
  transform:translateY(0);
}

.portfolio-card:hover .portfolio-view-btn,
.portfolio-card:focus-within .portfolio-view-btn{
  opacity:1;
  transform:translate(-50%,-50%) scale(1);
}

.portfolio-card:hover .portfolio-play{
  transform:translate(-50%,-50%) scale(1.06);
}

.portfolio-pagination{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  margin-top:38px;
}

.portfolio-pagination a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border:1px solid rgba(185,152,90,.34);
  border-radius:999px;
  background:rgba(255,255,255,.58);
  color:var(--deep);
  font-weight:800;
  transition:transform 180ms ease,background 180ms ease,color 180ms ease,box-shadow 180ms ease;
}

.portfolio-pagination a:hover,
.portfolio-pagination a.active{
  background:var(--copper);
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(185,152,90,.22);
}

.pricing-page{
  background:linear-gradient(180deg,#fffdf8 0%,#fbf7ef 46%,#fffdf8 100%);
}

.pricing-group{
  border-top:1px solid rgba(185,152,90,.1);
  scroll-margin-top:96px;
}

.pricing-group:nth-of-type(even){
  background:rgba(251,247,239,.62);
}

.pricing-page .section-head h2{
  max-width:820px;
  margin:0 auto;
  font-size:clamp(30px,4vw,48px);
  font-weight:400;
}

.pricing-page .prices article{
  background:rgba(255,253,248,.88);
  border-color:rgba(138,111,62,.16);
  color:var(--ink);
}

.pricing-page .prices article.hot{
  background:#fff;
  border-color:rgba(185,152,90,.48);
}

.pricing-page .prices.price-count-4{
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.prices.price-count-4{
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.pricing-board-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  align-items:start;
}

.pricing-board-grid.is-single{
  grid-template-columns:minmax(0,1fr);
  max-width:1180px;
  margin:0 auto;
}

.pricing-board-card{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(138,111,62,.16);
  border-radius:8px;
  background:#fffdf8;
  box-shadow:0 22px 60px rgba(80,45,22,.12);
  transform:translateY(0);
  transition:transform .32s ease,border-color .32s ease,box-shadow .32s ease,filter .32s ease;
}

.pricing-board-card:before{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,0) 24%,rgba(255,255,255,.46) 50%,rgba(255,255,255,0) 76%);
  opacity:0;
  transform:translateX(-34%);
  transition:opacity .28s ease,transform .7s ease;
}

.pricing-board-card img{
  width:100%;
  height:auto;
  background:#fdf7ed;
  transition:transform .42s ease,filter .42s ease;
}

.pricing-board-open{
  position:relative;
  display:block;
  width:100%;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  overflow:hidden;
  text-align:inherit;
}

.pricing-board-open span{
  position:absolute;
  z-index:3;
  left:50%;
  top:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 22px;
  border:1px solid rgba(255,255,255,.86);
  border-radius:999px;
  background:rgba(185,152,90,.76);
  color:#fff;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  box-shadow:0 18px 44px rgba(36,27,22,.22);
  opacity:0;
  transform:translate(-50%,-42%) scale(.94);
  transition:opacity .24s ease,transform .24s ease,background-color .24s ease,box-shadow .24s ease;
}

.pricing-board-open:after{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  background:linear-gradient(180deg,rgba(185,152,90,0),rgba(185,152,90,.24));
  opacity:0;
  transition:opacity .28s ease;
}

.pricing-board-card:hover{
  transform:translateY(-8px);
  border-color:rgba(185,152,90,.56);
  box-shadow:0 30px 76px rgba(138,111,62,.22);
}

.pricing-board-card:hover:before{
  opacity:1;
  transform:translateX(34%);
}

.pricing-board-card:hover img{
  transform:scale(1.018);
  filter:saturate(1.04) contrast(1.02) brightness(1.015);
}

.pricing-board-card:hover .pricing-board-open span,
.pricing-board-open:focus-visible span{
  opacity:1;
  transform:translate(-50%,-50%) scale(1);
}

.pricing-board-card:hover .pricing-board-open:after,
.pricing-board-open:focus-visible:after{
  opacity:1;
}

.pricing-board-open:focus-visible{
  outline:3px solid rgba(185,152,90,.32);
  outline-offset:-6px;
}

.pricing-board-card>div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px;
  border-top:1px solid rgba(185,152,90,.12);
}

.pricing-board-card h3{
  margin:0;
  color:#222222;
  font-family:var(--display-font);
  font-size:clamp(24px,2.6vw,34px);
  font-weight:400;
}

@media(hover:none){
  .pricing-board-card,
  .pricing-board-card:hover{
    transform:none;
    box-shadow:0 22px 60px rgba(80,45,22,.12);
  }

  .pricing-board-card:before{
    display:none;
  }

  .pricing-board-card:hover img{
    transform:none;
    filter:none;
  }

  .pricing-board-open span{
    opacity:1;
    top:auto;
    right:12px;
    bottom:12px;
    left:auto;
    min-height:36px;
    padding:0 16px;
    background:rgba(255,255,255,.72);
    color:var(--copper);
    transform:none;
    box-shadow:0 12px 28px rgba(36,27,22,.16);
  }

  .pricing-board-open:after{
    opacity:1;
    background:linear-gradient(180deg,rgba(185,152,90,0) 58%,rgba(185,152,90,.16));
  }
}

.pricing-page .prices.price-count-6{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.pricing-page .prices article>p{
  color:var(--copper);
  font-size:12px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.pricing-page .prices h3{
  color:#222222;
  font-size:clamp(30px,3.2vw,42px);
  font-weight:400;
}

.pricing-page .prices span,
.pricing-page .prices li{
  color:var(--muted);
}

.pricing-extras{
  margin-top:24px;
  border:1px solid rgba(185,152,90,.18);
  border-radius:8px;
  background:rgba(255,255,255,.72);
  padding:24px;
  box-shadow:0 18px 44px rgba(80,45,22,.08);
}

.pricing-extras .eyebrow{
  margin:0 0 14px;
  color:var(--copper);
}

.pricing-extras ul{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
  margin:0;
  padding:0;
  list-style:none;
}

.pricing-extras li{
  border-left:1px solid rgba(185,152,90,.22);
  padding-left:12px;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}

.prices .pricing-consult-btn,
.pricing-page .prices .pricing-consult-btn{
  min-height:44px;
  border-radius:999px!important;
  border:1px solid var(--copper)!important;
  background:#fff!important;
  color:var(--copper)!important;
  box-shadow:none;
}

.prices .pricing-consult-btn:hover,
.pricing-page .prices .pricing-consult-btn:hover{
  background:#fbf2e8!important;
  color:var(--copper)!important;
  border-color:var(--copper)!important;
  box-shadow:0 16px 34px rgba(185,152,90,.2)!important;
}

.cta-offer{
  margin:24px 0 18px;
  border:1px solid rgba(185,152,90,.42);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#fff;
  padding:12px 16px;
  font-size:13px;
  font-weight:800;
  line-height:1.45;
}

.cta-benefits{
  display:grid;
  gap:12px;
  margin:0 0 24px;
  padding:0;
  list-style:none;
}

.cta-benefits li{
  position:relative;
  color:rgba(255,255,255,.86);
  line-height:1.65;
  padding-left:24px;
}

.cta-benefits li:before{
  content:"";
  position:absolute;
  left:0;
  top:.62em;
  width:9px;
  height:9px;
  border:1px solid var(--copper);
  border-radius:50%;
  background:rgba(185,152,90,.28);
}

.cta-details{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  overflow:hidden;
  border:1px solid rgba(185,152,90,.18);
  border-radius:8px;
  background:rgba(255,253,248,.9);
  box-shadow:0 22px 60px rgba(80,45,22,.1);
}

.cta-details article{
  min-width:0;
  padding:28px 24px;
  border-left:1px solid rgba(138,111,62,.16);
}

.cta-details article:first-child{
  border-left:0;
}

.cta-details h3{
  margin:0 0 16px;
  color:var(--deep);
  font-family:var(--display-font);
  font-size:clamp(22px,2.2vw,30px);
  font-weight:400;
}

.cta-details p{
  margin:8px 0 0;
  color:var(--muted);
  line-height:1.55;
}

.cta-details a{
  color:var(--ink);
  transition:color .2s ease,text-shadow .2s ease;
}

.cta-details a:hover{
  color:var(--copper);
  text-shadow:0 0 18px rgba(185,152,90,.18);
}

.cta-payment{
  display:grid;
  grid-template-columns:1fr minmax(110px,150px);
  gap:18px;
  align-items:start;
}

.cta-payment img{
  width:100%;
  border:1px solid rgba(185,152,90,.18);
  border-radius:8px;
  background:#fff;
  box-shadow:0 14px 38px rgba(36,27,22,.1);
}

.site-footer{
  display:block;
  padding:0 max(24px,calc((100vw - 1180px)/2)) 36px;
  background:linear-gradient(180deg,#fbf7ef 0%,#fffdf8 100%);
  border-top:1px solid rgba(138,111,62,.18);
  color:var(--ink);
}

.footer-main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:32px;
  padding:32px 0 0;
  color:var(--muted);
  border-top:1px solid rgba(138,111,62,.14);
}

.footer-details{
  width:100%;
  margin:36px auto 0;
  border-color:rgba(138,111,62,.2);
  background:rgba(251,247,239,.78);
  box-shadow:0 20px 56px rgba(80,45,22,.08);
}

.site-footer .cta-details article{
  border-left-color:rgba(138,111,62,.18);
}

.site-footer .cta-details h3{
  color:var(--deep);
}

.site-footer .cta-details p{
  color:#6f5f55;
}

.site-footer .cta-details a,
.site-footer .footer-links a{
  color:var(--deep);
}

.site-footer .cta-details a:hover,
.site-footer .footer-links a:hover{
  color:var(--copper);
}

.site-footer .cta-payment img{
  border-color:rgba(138,111,62,.2);
  background:#fdf7ed;
  box-shadow:0 14px 34px rgba(80,45,22,.1);
}

.site-footer .social-icon{
  border-color:rgba(138,111,62,.38);
  background:#fdf7ed;
  color:var(--deep);
}

.site-footer .social-icon:hover{
  background:var(--copper);
  color:#fff;
}

@media(max-width:980px){
  .prices.price-count-4{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .pricing-page .prices.price-count-6{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .pricing-page .prices.price-count-4{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .pricing-extras ul{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .pricing-board-grid{
    grid-template-columns:1fr;
  }

  .portfolio-gallery{
    grid-template-columns:repeat(2,1fr);
    gap:16px;
  }
}

@media(max-width:620px){
  .prices.price-count-4{
    grid-template-columns:1fr;
  }

  .pricing-page .prices.price-count-4{
    grid-template-columns:1fr;
  }

  .pricing-board-card>div{
    display:grid;
  }

  .pricing-page .prices.price-count-6{
    grid-template-columns:1fr;
  }

  .pricing-extras ul{
    grid-template-columns:1fr;
  }

  .portfolio-gallery{
    grid-template-columns:1fr;
  }

  .portfolio-card-body{
    padding:20px;
  }

  .portfolio-view-btn{
    opacity:1;
    transform:translate(-50%,-50%) scale(1);
  }
}
@media(max-width:1120px){
  .album-carousel .album-card.is-left{
    transform:translate3d(calc(-50% - 31vw),-50%,0) scale(.9)!important;
  }
  .album-carousel .album-card.is-right{
    transform:translate3d(calc(-50% + 31vw),-50%,0) scale(.9)!important;
  }
  .album-carousel .album-card:hover.is-left{
    transform:translate3d(calc(-50% - 31vw),-50%,0) scale(.94)!important;
  }
  .album-carousel .album-card:hover.is-right{
    transform:translate3d(calc(-50% + 31vw),-50%,0) scale(.94)!important;
  }
}
@media(max-width:900px){
  .album-carousel{
    display:flex;
    gap:16px;
    height:auto;
    margin:0 -16px;
    padding:4px 16px 22px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
  }
  .album-carousel .album-card,
  .album-carousel .album-card.is-left,
  .album-carousel .album-card.is-center,
  .album-carousel .album-card.is-right,
  .album-carousel .album-card.is-hidden-left,
  .album-carousel .album-card.is-hidden-right,
  .album-carousel .album-card:hover.is-left,
  .album-carousel .album-card:hover.is-center,
  .album-carousel .album-card:hover.is-right{
    position:relative!important;
    top:auto;
    left:auto;
    flex:0 0 min(82vw,360px);
    width:auto;
    min-width:0;
    opacity:1;
    pointer-events:auto;
    transform:none!important;
    scroll-snap-align:center;
  }
  .album-card-link>img{
    height:260px;
  }
  .album-view-btn{
    opacity:1;
    top:45%;
    transform:translate3d(-50%,-50%,0);
  }
}

/* Album detail page. */
.album-detail-hero{
  position:relative;
  min-height:620px;
  display:grid;
  align-items:end;
  overflow:hidden;
  color:#fff;
}
.album-detail-hero>img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.album-detail-hero:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.68));
}
.album-detail-hero>div{
  position:relative;
  z-index:1;
  width:min(1180px,calc(100% - 32px));
  margin:0 auto;
  padding:0 0 72px;
}
.album-detail-hero h1{
  max-width:820px;
  margin:12px 0 16px;
  font-family:var(--display-font)!important;
  font-size:clamp(42px,6.5vw,86px);
  font-weight:300;
  line-height:1;
}
.album-detail-hero p:not(.eyebrow){
  max-width:680px;
  margin:0;
  font-size:18px;
  font-weight:300;
  line-height:1.75;
}
.album-detail-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:26px;
}
.album-viewer-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  text-align:left;
  margin-bottom:34px;
}
.album-viewer-head>div{
  flex:1;
}
.album-viewer-head h2{
  margin:0;
  font-family:var(--body-font)!important;
  font-size:clamp(18px,1.8vw,28px)!important;
  font-weight:300!important;
}
.album-media-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.album-media-item{
  position:relative;
  min-height:280px;
  border:0;
  border-radius:8px;
  padding:0;
  overflow:hidden;
  background:#140f0c;
  cursor:pointer;
  box-shadow:var(--shadow);
}
.album-media-item.is-wide{
  grid-column:span 2;
}
.album-media-item img{
  width:100%;
  height:100%;
  min-height:280px;
  object-fit:cover;
  transition:transform 520ms ease,filter 520ms ease;
}
.album-media-item:after{
  content:"Xem ảnh";
  position:absolute;
  top:50%;
  left:50%;
  display:flex;
  width:132px;
  height:46px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.86);
  border-radius:999px;
  background:rgba(255,255,255,.16);
  color:#fff;
  padding:0;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:0;
  transform:translate3d(-50%,-43%,0) scale(.92);
  transition:opacity 280ms ease,transform 320ms ease,background-color 240ms ease,box-shadow 240ms ease;
  backdrop-filter:blur(8px);
}
.album-media-item:hover img{
  transform:scale(1.15);
  filter:saturate(.96) contrast(.98);
}
.album-media-item:hover:after{
  opacity:1;
  transform:translate3d(-50%,-50%,0) scale(1);
  background:rgba(255,255,255,.22);
  border-color:rgba(255,255,255,.92);
  box-shadow:0 0 0 1px rgba(255,255,255,.28),0 0 22px rgba(185,152,90,.42),0 12px 30px rgba(185,152,90,.22);
  text-shadow:0 0 14px rgba(255,255,255,.5);
}
.album-video-block{
  margin-top:54px;
  text-align:center;
}
.album-video-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
  margin-top:20px;
}
.album-video-grid article{
  overflow:hidden;
  border-radius:8px;
  background:#120d0a;
  box-shadow:var(--shadow);
}
.album-video-grid video{
  display:block;
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
}
.album-slideshow{
  position:fixed;
  z-index:60;
  inset:0;
  display:flex;
  flex-direction:column;
  background:#fff;
  --slide-zoom:1;
  opacity:0;
  visibility:hidden;
  transform:translateY(12px);
  transition:opacity 520ms ease,visibility 520ms ease,transform 720ms cubic-bezier(.22,.72,.18,1);
}
.album-slideshow.is-open{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
body.slideshow-open{
  overflow:hidden;
}
.album-slideshow-top{
  position:absolute;
  z-index:4;
  top:26px;
  left:50%;
  width:calc(100% - 56px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  transform:translateX(-50%);
  pointer-events:none;
}
.album-slideshow-top p{
  margin:0;
  color:#333333;
  font-family:var(--display-font)!important;
  font-size:28px;
  font-weight:300;
}
.album-slideshow-top div{
  display:flex;
  gap:10px;
  pointer-events:auto;
}
.album-icon-button,
.album-slide-nav{
  min-height:42px;
  border:1px solid rgba(185,152,90,.62);
  border-radius:999px;
  background:rgba(255,255,255,.14);
  color:#7f6538;
  padding:0 18px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:0 10px 26px rgba(36,27,22,.08);
  backdrop-filter:blur(10px);
}
.album-icon-button{
  width:46px;
  min-height:46px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-color:rgba(185,152,90,.72);
  color:var(--copper);
  font-size:22px;
  letter-spacing:0;
  text-transform:none;
}
.album-icon-button.zoom-button{
  position:relative;
}
.album-zoom-level{
  min-width:54px;
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(185,152,90,.54);
  border-radius:999px;
  background:rgba(255,255,255,.16);
  color:var(--copper);
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  box-shadow:0 10px 26px rgba(36,27,22,.08);
  backdrop-filter:blur(10px);
}
.zoom-symbol{
  position:relative;
  display:block;
  width:22px;
  height:22px;
}
.zoom-symbol:before{
  content:"";
  position:absolute;
  left:1px;
  top:1px;
  width:14px;
  height:14px;
  border:2px solid currentColor;
  border-radius:50%;
}
.zoom-symbol:after{
  content:"";
  position:absolute;
  left:15px;
  top:15px;
  width:8px;
  height:2px;
  border-radius:999px;
  background:currentColor;
  transform:rotate(45deg);
  transform-origin:left center;
}
.zoom-symbol.zoom-in{
  box-shadow:inset 0 0 0 0 currentColor;
}
.zoom-symbol.zoom-in i,
.zoom-symbol.zoom-out i{
  display:none;
}
.zoom-symbol.zoom-in .unused{
  display:none;
}
.zoom-symbol.zoom-in:before,
.zoom-symbol.zoom-out:before{
  box-shadow:none;
}
.zoom-symbol.zoom-in{
  background:
    linear-gradient(currentColor,currentColor) 8px 8px/8px 2px no-repeat,
    linear-gradient(currentColor,currentColor) 11px 5px/2px 8px no-repeat;
}
.zoom-symbol.zoom-out{
  background:linear-gradient(currentColor,currentColor) 8px 8px/8px 2px no-repeat;
}
.album-icon-button.is-wide{
  width:auto;
  min-width:122px;
  padding:0 18px;
  font-size:12px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.album-icon-button:hover,
.album-slide-nav:hover{
  background:rgba(185,152,90,.9);
  border-color:rgba(185,152,90,.9);
  color:#fff;
  transform:translateY(-2px);
}
.album-slideshow-stage{
  position:relative;
  flex:1;
  display:grid;
  place-items:center;
  padding:86px 8px 100px;
}
.album-slide-frame{
  display:none!important;
}
.album-slide-current{
  width:min(calc(100vw - 150px),1500px);
  height:min(calc(100vh - 236px),980px);
  min-height:480px;
  display:block;
  overflow:hidden;
  contain:layout paint;
}
.album-slide-track{
  display:flex;
  width:100%;
  height:100%;
  transform:translate3d(0,0,0);
  transition:transform 1580ms cubic-bezier(.48,.02,.16,1);
  will-change:transform;
  backface-visibility:hidden;
}
.album-slide-track.no-transition{
  transition:none!important;
}
.album-slide-track img{
  flex:0 0 100%;
  min-width:100%;
  min-height:100%;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  transform:scale(1);
  transition:transform 1580ms cubic-bezier(.22,.72,.18,1);
  will-change:transform,opacity;
  backface-visibility:hidden;
  transform-origin:center center;
  contain:paint;
}
.album-slide-track img.is-active{
  transform:scale(var(--slide-zoom));
}
.album-slideshow.is-sliding .album-slide-track img,
.album-slideshow.is-sliding .album-slide-track img.is-active{
  transform:scale(1)!important;
  transition:none;
}
.album-slide-nav{
  position:absolute;
  top:50%;
  z-index:3;
  width:48px;
  min-height:48px;
  padding:0;
  font-size:34px;
  line-height:1;
  letter-spacing:0;
  text-transform:none;
  transform:translateY(-50%);
  color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.35);
  background:rgba(255,255,255,.18);
  border-color:rgba(185,152,90,.72);
}
.album-slide-nav:hover{
  transform:translateY(calc(-50% - 2px));
}
.album-slide-nav.is-prev{
  left:18px;
}
.album-slide-nav.is-next{
  right:18px;
}
.album-slideshow-controls{
  position:absolute;
  z-index:6;
  left:50%;
  bottom:92px;
  display:flex;
  align-items:center;
  gap:10px;
  transform:translateX(-50%);
}
.album-slideshow-thumbs{
  position:absolute;
  z-index:5;
  left:50%;
  bottom:10px;
  width:calc(100% - 16px);
  display:flex;
  gap:4px;
  overflow-x:auto;
  padding:4px;
  background:rgba(255,255,255,.72);
  transform:translateX(-50%);
  scrollbar-width:thin;
}
.album-slideshow-thumbs button{
  flex:0 0 92px;
  width:92px;
  height:72px;
  border:2px solid transparent;
  border-radius:2px;
  padding:0;
  overflow:hidden;
  background:#f5f0eb;
  cursor:pointer;
  opacity:.72;
  transition:opacity 180ms ease,border-color 180ms ease,transform 180ms ease;
}
.album-slideshow-thumbs button:hover{
  opacity:1;
  transform:translateY(-2px);
}
.album-slideshow-thumbs button.active{
  border-color:var(--copper);
  opacity:1;
}
.album-slideshow-thumbs img{
  width:100%;
  height:100%;
  object-fit:cover;
}
@media(max-width:900px){
  .album-detail-hero{
    min-height:520px;
  }
  .album-detail-hero>div{
    padding-bottom:46px;
  }
  .album-detail-hero p:not(.eyebrow){
    font-size:16px;
  }
  .album-viewer-head{
    display:grid;
    text-align:center;
  }
  .album-viewer-head h2{
    margin:0 auto;
  }
  .album-media-grid{
    grid-template-columns:1fr;
  }
  .album-media-item:after{
    width:112px;
    height:40px;
    font-size:11px;
  }
  .album-media-item.is-wide{
    grid-column:auto;
  }
  .album-media-item,
  .album-media-item img{
    min-height:320px;
  }
  .album-video-grid{
    grid-template-columns:1fr;
  }
  .album-slideshow-top{
    top:12px;
    width:calc(100% - 24px);
  }
  .album-slideshow-top p{
    display:none;
  }
  .album-slideshow-stage{
    padding:70px 6px 92px;
  }
  .album-slide-current{
    width:calc(100vw - 70px);
    height:calc(100vh - 190px);
    min-height:320px;
  }
  .album-slide-nav{
    width:40px;
    min-height:40px;
    font-size:28px;
  }
  .album-slide-nav.is-prev{
    left:10px;
  }
  .album-slide-nav.is-next{
    right:10px;
  }
  .album-slideshow-controls{
    bottom:82px;
    gap:7px;
  }
  .album-zoom-level{
    min-width:48px;
    min-height:32px;
    font-size:11px;
  }
  .album-slideshow-thumbs{
    bottom:6px;
    width:calc(100% - 10px);
  }
  .album-slideshow-thumbs button{
    flex-basis:64px;
    width:64px;
    height:50px;
  }
}

.page-loader{
  position:fixed;
  inset:0;
  z-index:99999;
  display:grid;
  place-items:center;
  background:#fbf7ef;
  opacity:1;
  visibility:visible;
  overflow:hidden;
  pointer-events:none;
}
.page-loader:before{
  content:"";
  position:absolute;
  inset:-18%;
  background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.96),rgba(251,247,239,.92) 36%,rgba(251,247,239,1) 70%);
  opacity:1;
}
.page-loader img{
  position:relative;
  z-index:1;
  display:block;
  width:20vw;
  max-width:320px;
  min-width:180px;
  height:auto;
  opacity:0;
  transform:scale(1) translate3d(0,0,0);
  filter:blur(0);
  will-change:transform,opacity;
  backface-visibility:hidden;
  transform-origin:center center;
}
.page-loader.is-ready{
  animation:pageLoaderLayer 2500ms cubic-bezier(.22,.72,.18,1) forwards;
}
.page-loader.is-ready img{
  animation:pageLoaderLogo 2500ms cubic-bezier(.22,.72,.18,1) forwards;
}
@keyframes pageLoaderLogo{
  0%{
    opacity:0;
    transform:scale(1) translate3d(0,0,0);
  }
  64%{
    opacity:.4;
    transform:scale(1) translate3d(0,0,0);
  }
  100%{
    opacity:0;
    transform:scale(2.25) translate3d(0,0,0);
  }
}
@keyframes pageLoaderLayer{
  0%,64%{
    opacity:1;
    visibility:visible;
  }
  100%{
    opacity:0;
    visibility:hidden;
  }
}
@media(max-width:900px){
  .page-loader img{
    width:42vw;
    max-width:260px;
    min-width:150px;
  }
}
@media(prefers-reduced-motion:reduce){
  .page-loader{
    transition:opacity 320ms ease,visibility 0s linear 320ms;
  }
  .page-loader img{
    transform:scale(1);
    animation:none;
    filter:none;
  }
}

.consult-popup{
  position:fixed;
  inset:0;
  z-index:9998;
  display:grid;
  place-items:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity 360ms ease,visibility 0s linear 360ms;
}
.consult-popup.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition-delay:0s;
}
.consult-popup__backdrop{
  position:absolute;
  inset:0;
  background:rgba(255,255,255,.10);
  backdrop-filter:blur(1px);
}
.consult-popup__panel{
  position:relative;
  width:min(520px,100%);
  border:1px solid rgba(185,152,90,.2);
  border-radius:10px;
  background:#fff;
  box-shadow:0 30px 90px rgba(36,27,22,.16);
  padding:34px;
  transform:translateY(22px) scale(.96);
  opacity:0;
  transition:transform 520ms cubic-bezier(.22,.72,.18,1),opacity 420ms ease;
}
.consult-popup.is-open .consult-popup__panel{
  transform:translateY(0) scale(1);
  opacity:1;
}
.consult-popup__close{
  position:absolute;
  top:14px;
  right:14px;
  width:38px;
  min-height:38px;
  border:1px solid rgba(185,152,90,.34);
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:var(--copper);
  font-size:24px;
  line-height:1;
  cursor:pointer;
  transition:transform 180ms ease,box-shadow 180ms ease,background-color 180ms ease;
}
.consult-popup__close:hover{
  transform:translateY(-2px) scale(1.04);
  background:#fbf2e8;
  box-shadow:0 12px 28px rgba(185,152,90,.18);
}
.consult-popup__panel h2{
  max-width:450px;
  margin:8px 0 20px;
  font-family:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:clamp(20px,2.3vw,28px);
  font-weight:600;
  line-height:1.35;
  letter-spacing:.02em;
}
.consult-popup__form{
  padding:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.consult-popup__form .btn{
  width:100%;
  margin-top:4px;
}
body.consult-popup-open{
  overflow:hidden;
}
@media(max-width:700px){
  .consult-popup{
    align-items:end;
    padding:12px;
  }
  .consult-popup__panel{
    max-height:calc(100vh - 24px);
    overflow:auto;
    padding:28px 20px 22px;
  }
  .consult-popup__panel h2{
    font-size:24px;
    line-height:1.2;
  }
}

/* Mobile portrait stability pass */
@media (max-width:900px) and (orientation:portrait){
  html,
  body{
    width:100%;
    overflow-x:hidden;
  }

  .topbar{
    height:68px!important;
    min-height:68px!important;
    padding:0 16px!important;
    gap:12px!important;
  }

  .topbar .image-logo img{
    max-height:46px!important;
    width:auto!important;
  }

  .menu-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:8px 12px;
    font-size:12px;
  }

  .mobile-nav{
    top:68px!important;
    max-height:calc(100dvh - 68px);
    overflow:auto;
    padding:14px 18px 18px;
  }

  .hero{
    margin-top:68px!important;
    padding-top:0!important;
    height:clamp(252px,64vw,390px)!important;
    min-height:clamp(252px,64vw,390px)!important;
    max-height:390px!important;
    aspect-ratio:auto!important;
    display:block!important;
    overflow:hidden!important;
  }

  .hero-slider{
    position:absolute!important;
    inset:0!important;
    height:100%!important;
  }

  .hero-slider img{
    height:100%!important;
    min-height:100%!important;
    object-fit:cover!important;
    object-position:center center!important;
  }

  .hero-copy{
    left:50%!important;
    bottom:48px!important;
    width:calc(100% - 24px)!important;
    max-width:520px!important;
    margin:0!important;
    transform:translateX(-50%)!important;
  }

  .hero-copy .actions{
    justify-content:center;
    gap:8px;
    margin-top:0;
  }

  .hero-copy .btn{
    min-height:36px;
    padding:0 10px;
    font-size:10.5px;
    letter-spacing:.06em;
    white-space:nowrap;
  }

  .hero-dots{
    bottom:16px!important;
    gap:7px;
  }

  .hero-dots button{
    width:28px!important;
    height:3px!important;
    min-height:3px!important;
  }

  .hero-quote{
    width:calc(100% - 28px);
    padding:30px 0 10px;
  }

  .hero-quote p{
    font-size:clamp(23px,7vw,34px);
    line-height:1.32;
  }

  .section{
    width:calc(100% - 28px)!important;
    padding:54px 0!important;
  }

  .band .section{
    padding-top:56px!important;
    padding-bottom:56px!important;
  }

  .section-head{
    margin-bottom:30px!important;
  }

  .section-head .eyebrow,
  .two-col > div:first-child > .eyebrow{
    font-size:clamp(30px,9vw,44px)!important;
    line-height:1.05!important;
    margin-bottom:24px!important;
  }

  .section-head h2,
  .two-col > div:first-child > h2{
    font-size:clamp(17px,4.6vw,22px)!important;
    line-height:1.45!important;
    max-width:100%!important;
  }

  .two-col,
  .contact,
  .admin-grid{
    grid-template-columns:1fr!important;
    gap:26px!important;
  }

  .cards,
  .prices,
  .album-grid{
    grid-template-columns:1fr!important;
    gap:16px!important;
  }

  .stats{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }

  .stats div{
    padding:18px 12px!important;
  }

  .stats b{
    font-size:30px!important;
  }

  .cards img{
    height:220px!important;
  }

  #services .cards img{
    height:260px!important;
  }

  .media{
    height:300px!important;
  }

  .page-hero,
  .album-detail-hero{
    margin-top:68px!important;
    padding-top:0!important;
  }

  .page-hero{
    min-height:320px!important;
  }

  .album-detail-hero{
    min-height:300px!important;
  }

  .album-carousel{
    width:100%!important;
    overflow-x:auto!important;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
  }

  .album-carousel .album-card{
    flex:0 0 84vw!important;
    scroll-snap-align:center;
  }

  .contact-copy,
  form{
    border-radius:8px!important;
    padding:26px 20px!important;
  }

  footer{
    padding:30px 16px 84px!important;
    text-align:center;
  }

  .mobile-cta{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }

  .mobile-cta a{
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:10px 6px;
    font-size:11px;
  }
}

@media (max-width:520px) and (orientation:portrait){
  .topbar{
    height:64px!important;
    min-height:64px!important;
    padding:0 12px!important;
  }

  .topbar .image-logo img{
    max-height:42px!important;
  }

  .mobile-nav{
    top:64px!important;
    max-height:calc(100dvh - 64px);
  }

  .hero{
    margin-top:64px!important;
    height:clamp(238px,70vw,340px)!important;
    min-height:clamp(238px,70vw,340px)!important;
    max-height:340px!important;
  }

  .hero-copy{
    bottom:44px!important;
    width:calc(100% - 18px)!important;
  }

  .hero-copy .actions{
    flex-wrap:nowrap!important;
  }

  .hero-copy .btn{
    min-height:34px;
    padding:0 8px;
    font-size:9.6px;
  }

  .hero-dots{
    bottom:14px!important;
  }

  .section{
    width:calc(100% - 24px)!important;
    padding:48px 0!important;
  }

  .cards img{
    height:206px!important;
  }

  #services .cards img{
    height:238px!important;
  }

  .album-carousel .album-card{
    flex-basis:88vw!important;
  }

  .stats{
    grid-template-columns:1fr 1fr!important;
  }

  .contact-copy h2{
    font-size:30px!important;
  }
}

@media (max-width:900px) and (orientation:portrait) and (prefers-reduced-motion:no-preference){
  .reveal-on-scroll{
    opacity:0!important;
    transform:translate3d(0,28px,0)!important;
    transition:opacity 1800ms ease,transform 2100ms cubic-bezier(.22,.72,.18,1)!important;
    will-change:opacity,transform;
  }

  .reveal-on-scroll.is-visible{
    opacity:1!important;
    transform:translate3d(0,0,0)!important;
  }

  .reveal-on-scroll .section-head,
  .reveal-on-scroll .cards > article,
  .reveal-on-scroll .album-card,
  .reveal-on-scroll .prices > article,
  .reveal-on-scroll .reviews > article,
  .reveal-on-scroll .stats > div,
  .reveal-on-scroll .lead,
  .reveal-on-scroll .media,
  .reveal-on-scroll form,
  .reveal-on-scroll .contact-copy{
    opacity:0!important;
    transform:translate3d(0,22px,0)!important;
    transition:opacity 1600ms ease,transform 1900ms cubic-bezier(.22,.72,.18,1)!important;
  }

  .reveal-on-scroll.is-visible .section-head,
  .reveal-on-scroll.is-visible .cards > article,
  .reveal-on-scroll.is-visible .album-card,
  .reveal-on-scroll.is-visible .prices > article,
  .reveal-on-scroll.is-visible .reviews > article,
  .reveal-on-scroll.is-visible .stats > div,
  .reveal-on-scroll.is-visible .lead,
  .reveal-on-scroll.is-visible .media,
  .reveal-on-scroll.is-visible form,
  .reveal-on-scroll.is-visible .contact-copy{
    opacity:1!important;
    transform:translate3d(0,0,0)!important;
  }
}

@media (prefers-reduced-motion:reduce){
  .reveal-on-scroll,
  .reveal-on-scroll *,
  .reveal-on-scroll.is-visible,
  .reveal-on-scroll.is-visible *{
    animation:none!important;
    transition:none!important;
    opacity:1!important;
    transform:none!important;
  }
}

.contact-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}

.contact-actions .btn{
  min-height:42px;
  padding:0 16px;
}

.social-link span,
.social-icon{
  font-family:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-weight:800;
}

.social-link span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  margin-right:8px;
  border-radius:999px;
  background:var(--copper);
  color:#fff;
  text-transform:none;
}

.footer-links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
}

.social-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border:1px solid rgba(185,152,90,.45);
  border-radius:999px;
  background:rgba(255,255,255,.7);
  color:var(--copper);
  font-size:20px;
  line-height:1;
  transition:transform 180ms ease,box-shadow 180ms ease,background-color 180ms ease,color 180ms ease;
}

.social-icon:hover{
  transform:translateY(-2px) scale(1.05);
  background:var(--copper);
  color:#fff;
  box-shadow:0 14px 32px rgba(185,152,90,.24);
}

@media (max-width:900px){
  .mobile-cta{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:5px!important;
    padding:7px!important;
  }

  .mobile-cta a,
  .mobile-cta button{
    min-height:42px!important;
    padding:9px 4px!important;
    font-size:10px!important;
    border-radius:7px!important;
  }

  .contact-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
  }

  .contact-actions .btn{
    width:100%;
  }

  .footer-links{
    margin-top:14px;
  }
}

.contact-menu,
.mobile-cta-item,
.float-item{
  position:relative;
}

.contact-toggle,
.mobile-cta button,
.float-item button,
.float-button{
  cursor:pointer;
}

.contact-options,
.mobile-cta-menu,
.float-menu{
  position:absolute;
  z-index:30;
  display:grid;
  gap:6px;
  min-width:178px;
  padding:8px;
  border:1px solid rgba(185,152,90,.22);
  border-radius:10px;
  background:rgba(255,253,248,.96);
  box-shadow:0 18px 45px rgba(36,27,22,.16);
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  pointer-events:none;
  transition:opacity 200ms ease,transform 220ms ease,visibility 0s linear 220ms;
}

.contact-options{
  left:0;
  top:calc(100% + 8px);
}

.contact-options a,
.mobile-cta-menu a,
.float-menu a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 12px;
  border-radius:8px;
  color:var(--deep);
  font-size:12px;
  font-weight:800;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(185,152,90,.12);
  transition:transform 180ms ease,background-color 180ms ease,color 180ms ease,box-shadow 180ms ease;
}

.contact-options a:hover,
.mobile-cta-menu a:hover,
.float-menu a:hover{
  transform:translateY(-1px);
  background:var(--copper);
  color:#fff;
  box-shadow:0 10px 24px rgba(185,152,90,.2);
}

.contact-menu:hover .contact-options,
.contact-menu:focus-within .contact-options,
.mobile-cta-item:hover .mobile-cta-menu,
.mobile-cta-item:focus-within .mobile-cta-menu,
.float-item:hover .float-menu,
.float-item:focus-within .float-menu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
  transition-delay:0s;
}

.mobile-cta button{
  width:100%;
  border:0;
  background:var(--copper);
  color:#fff;
  font-weight:800;
  text-transform:uppercase;
}

.mobile-cta-menu{
  left:50%;
  bottom:calc(100% + 8px);
  min-width:150px;
  transform:translate(-50%,8px);
}

.mobile-cta-item:hover .mobile-cta-menu,
.mobile-cta-item:focus-within .mobile-cta-menu{
  transform:translate(-50%,0);
}

.floating-contact{
  position:fixed;
  z-index:20;
  right:22px;
  bottom:96px;
  display:grid;
  gap:10px;
}

.float-item button,
.float-button{
  display:flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border:1px solid rgba(185,152,90,.36);
  border-radius:999px;
  background:rgba(255,253,248,.92);
  color:var(--copper);
  font-size:20px;
  font-weight:900;
  line-height:1;
  box-shadow:0 14px 36px rgba(36,27,22,.13);
  transition:transform 180ms ease,background-color 180ms ease,color 180ms ease,box-shadow 180ms ease;
}

.float-item button:hover,
.float-button:hover{
  transform:translateY(-2px) scale(1.06);
  background:var(--copper);
  color:#fff;
  box-shadow:0 18px 42px rgba(185,152,90,.24);
}

.float-menu{
  right:calc(100% + 10px);
  top:50%;
  transform:translate(8px,-50%);
}

.float-item:hover .float-menu,
.float-item:focus-within .float-menu{
  transform:translate(0,-50%);
}

.back-to-top{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(10px) scale(.92);
}

.back-to-top.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0) scale(1);
}

@media (max-width:900px){
  .floating-contact{
    display:none;
  }

  .contact-options{
    left:50%;
    transform:translate(-50%,8px);
  }

  .contact-menu:hover .contact-options,
  .contact-menu:focus-within .contact-options{
    transform:translate(-50%,0);
  }
}

#services .cards{
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:980px;
  margin:0 auto;
  align-items:stretch;
}

#services .service-card[data-service-id="wedding-photography"]{
  grid-column:1;
  grid-row:1;
}

#services .service-card[data-service-id="wedding-film"]{
  grid-column:2;
  grid-row:1;
}

#services .service-card[data-service-id="photobooth"]{
  grid-column:1;
  grid-row:2;
}

#services .service-card[data-service-id="couple-outdoor"]{
  grid-column:2;
  grid-row:2;
}

#services.reveal-on-scroll .service-card:nth-child(4){
  transform:translate3d(58px,0,0);
}

#services.reveal-on-scroll.is-visible .service-card:nth-child(4){
  transform:translate3d(0,0,0);
  transition-delay:460ms;
}

#services.reveal-on-scroll.is-visible .service-card[data-service-id]{
  transform:translate3d(0,0,0);
}

#services.reveal-on-scroll.is-visible .service-card[data-service-id]:hover{
  transform:translateY(-6px) scale(1.035)!important;
}

#services.reveal-on-scroll.is-visible .service-card[data-service-id]:not(.is-card-visible){
  opacity:0!important;
}

#services.reveal-on-scroll.is-visible .service-card[data-service-id="wedding-photography"]:not(.is-card-visible){
  transform:translate3d(-58px,0,0)!important;
}

#services.reveal-on-scroll.is-visible .service-card[data-service-id="wedding-film"]:not(.is-card-visible){
  transform:translate3d(0,58px,0)!important;
}

#services.reveal-on-scroll.is-visible .service-card[data-service-id="photobooth"]:not(.is-card-visible){
  transform:translate3d(-58px,0,0)!important;
}

#services.reveal-on-scroll.is-visible .service-card[data-service-id="couple-outdoor"]:not(.is-card-visible){
  transform:translate3d(58px,0,0)!important;
}

#services.reveal-on-scroll.is-visible .service-card[data-service-id].is-card-visible{
  opacity:1!important;
  transform:translate3d(0,0,0)!important;
}

#services.reveal-on-scroll.is-visible .service-card[data-service-id].is-card-visible:hover{
  transform:translateY(-6px) scale(1.035)!important;
}

@media (max-width:1100px){
  #services .cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:860px;
  }
}

@media (max-width:620px){
  #services .cards{
    grid-template-columns:1fr;
  }

  #services .service-card[data-service-id]{
    grid-column:auto;
    grid-row:auto;
  }
}

.wedding-photo-page,
.photobooth-page,
.couple-concept-page{
  background:linear-gradient(180deg,#fffdf8 0%,#fbf7ef 46%,#fffdf8 100%);
}

.wedding-film-page{
  background:linear-gradient(180deg,#fffdf8 0%,#fbf7ef 48%,#fffdf8 100%);
}

.wedding-photo-hero:after,
.photobooth-hero:after,
.couple-concept-hero:after{
  background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.62));
}

.wedding-film-hero:after{
  background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.68));
}

.wedding-photo-intro,
.wedding-film-intro,
.photobooth-intro,
.couple-concept-intro{
  padding-bottom:48px;
}

.wedding-photo-copy,
.wedding-film-copy,
.photobooth-copy,
.couple-concept-copy{
  max-width:900px;
  margin:0 auto;
  display:grid;
  gap:22px;
  color:#333333;
  font-size:18px;
  font-weight:300;
  line-height:1.95;
}

.wedding-photo-copy p,
.wedding-film-copy p,
.photobooth-copy p,
.couple-concept-copy p{
  margin:0;
}

.wedding-film-player{
  position:relative;
  width:min(1060px,100%);
  margin:46px auto 0;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:8px;
  background:#130f0d;
  box-shadow:0 28px 80px rgba(36,27,22,.22);
}

.wedding-film-player>img{
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.92;
  transition:transform 900ms cubic-bezier(.2,.7,.2,1),filter 420ms ease;
}

.wedding-film-player:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,.38),rgba(0,0,0,.02) 36%,rgba(0,0,0,.72));
  pointer-events:none;
}

.wedding-film-player:hover>img{
  transform:scale(1.035);
  filter:saturate(1.06) contrast(1.04);
}

.film-play-button{
  position:absolute;
  z-index:3;
  left:50%;
  top:50%;
  width:82px;
  height:58px;
  min-height:58px;
  padding:0;
  border:0;
  border-radius:16px;
  background:rgba(185,152,90,.92);
  box-shadow:0 18px 44px rgba(185,152,90,.36);
  transform:translate(-50%,-50%);
  cursor:pointer;
  transition:transform 220ms ease,box-shadow 220ms ease,background 220ms ease;
}

.film-play-button span{
  display:block;
  width:0;
  height:0;
  margin:auto;
  border-top:13px solid transparent;
  border-bottom:13px solid transparent;
  border-left:22px solid #fff;
  transform:translateX(3px);
}

.film-play-button:hover{
  transform:translate(-50%,-50%) scale(1.08);
  background:#b9985a;
  box-shadow:0 22px 58px rgba(185,152,90,.48);
}

.film-player-top{
  position:absolute;
  z-index:2;
  top:0;
  left:0;
  right:0;
  display:flex;
  justify-content:space-between;
  padding:20px 22px;
  color:#fff;
  font-size:14px;
  font-weight:600;
  letter-spacing:.02em;
}

.film-player-controls{
  position:absolute;
  z-index:2;
  left:0;
  right:0;
  bottom:0;
  display:grid;
  grid-template-columns:34px 1fr auto 22px;
  align-items:center;
  gap:14px;
  padding:18px 22px;
  color:#fff;
}

.film-player-controls button{
  width:30px;
  height:30px;
  min-height:30px;
  border:0;
  background:transparent;
  cursor:pointer;
}

.film-player-controls button:before{
  content:"";
  display:block;
  width:0;
  height:0;
  margin:auto;
  border-top:8px solid transparent;
  border-bottom:8px solid transparent;
  border-left:13px solid #fff;
}

.film-progress{
  height:5px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.32);
}

.film-progress span{
  display:block;
  width:38%;
  height:100%;
  border-radius:inherit;
  background:var(--copper);
}

.film-player-controls small{
  font-size:12px;
  opacity:.88;
  white-space:nowrap;
}

.film-player-controls i{
  width:18px;
  height:14px;
  border:2px solid rgba(255,255,255,.88);
  border-radius:2px;
}

.video-detail-page{
  background:linear-gradient(180deg,#fffdf8 0%,#fbf7ef 52%,#fffdf8 100%);
}

.video-watch-section{
  padding-top:128px;
  padding-bottom:36px;
}

.video-watch-head{
  max-width:980px;
  margin:0 auto 32px;
  text-align:center;
}

.video-watch-head h1{
  margin:10px auto 12px;
  color:#222222;
  font-family:var(--display-font);
  font-size:clamp(42px,6vw,76px);
  font-weight:400;
  line-height:1.05;
}

.video-watch-head p{
  max-width:720px;
  margin:0 auto;
  color:var(--muted);
  font-size:17px;
  font-weight:300;
  line-height:1.75;
}

.video-detail-player{
  width:min(1180px,100%);
  margin-top:0;
}

.video-related-section{
  padding-top:38px;
  padding-bottom:92px;
}

.video-related-section .section-head{
  margin-bottom:28px;
}

.video-related-section .section-head h2{
  font-size:clamp(32px,4vw,52px);
  font-weight:400;
}

.video-related-grid{
  grid-template-columns:repeat(3,1fr);
}

.wedding-photo-highlights,
.wedding-film-highlights,
.photobooth-highlights,
.couple-concept-highlights{
  padding-top:34px;
}

.wedding-photo-highlights .feature-grid article,
.wedding-film-highlights .feature-grid article,
.photobooth-highlights .feature-grid article,
.couple-concept-highlights .feature-grid article{
  min-height:260px;
  padding:34px 30px;
  background:rgba(255,253,248,.9);
}

.wedding-photo-highlights .feature-grid span,
.photobooth-highlights .feature-grid span,
.couple-concept-highlights .feature-grid span{
  display:block;
  margin-bottom:24px;
  color:var(--copper);
  font-family:var(--display-font);
  font-size:44px;
  font-weight:300;
  line-height:1;
}

.wedding-photo-highlights .feature-grid h3,
.photobooth-highlights .feature-grid h3,
.couple-concept-highlights .feature-grid h3{
  font-size:28px;
}

.wedding-photo-quote,
.wedding-film-quote,
.photobooth-quote,
.couple-concept-quote{
  max-width:980px;
  padding-top:36px;
  padding-bottom:58px;
  text-align:center;
}

.wedding-photo-quote blockquote,
.wedding-film-quote blockquote,
.photobooth-quote blockquote,
.couple-concept-quote blockquote{
  margin:0;
  color:#222222;
  font-family:"Playfair Display",Georgia,serif;
  font-size:clamp(32px,4.6vw,58px);
  font-weight:300;
  font-style:italic;
  line-height:1.25;
}

.wedding-photo-quote:before,
.wedding-photo-quote:after,
.wedding-film-quote:before,
.wedding-film-quote:after,
.photobooth-quote:before,
.photobooth-quote:after,
.couple-concept-quote:before,
.couple-concept-quote:after{
  content:"";
  display:block;
  width:92px;
  height:1px;
  margin:0 auto 34px;
  background:rgba(36,27,22,.28);
}

.wedding-photo-quote:after,
.wedding-film-quote:after,
.photobooth-quote:after,
.couple-concept-quote:after{
  margin:34px auto 0;
}

.wedding-photo-gallery,
.service-highlight-gallery{
  padding-top:24px;
}

.wedding-photo-gallery .section-head,
.service-highlight-gallery .section-head{
  margin-bottom:34px;
}

.wedding-photo-gallery-grid,
.service-highlight-gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}

.wedding-photo-gallery-grid figure,
.service-highlight-gallery-grid figure{
  position:relative;
  margin:0;
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:8px;
  background:#f5eee8;
  box-shadow:0 18px 42px rgba(80,45,22,.1);
}

.wedding-photo-gallery-grid figure:after,
.service-highlight-gallery-grid figure:after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:62%;
  background:linear-gradient(0deg,rgba(185,152,90,.42),rgba(185,152,90,.06) 72%,rgba(185,152,90,0));
  opacity:0;
  transform:translateY(100%);
  transition:opacity 420ms ease,transform 520ms cubic-bezier(.2,.7,.2,1);
  pointer-events:none;
}

.wedding-photo-gallery-grid img,
.service-highlight-gallery-grid img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 700ms cubic-bezier(.2,.7,.2,1),filter 420ms ease;
}

.wedding-photo-gallery-grid figure:hover img,
.service-highlight-gallery-grid figure:hover img{
  transform:scale(1.08);
  filter:saturate(1.06) contrast(1.02);
}

.wedding-photo-gallery-grid figure:hover:after,
.service-highlight-gallery-grid figure:hover:after{
  opacity:1;
  transform:translateY(0);
}

.wedding-photo-cta,
.wedding-film-cta,
.photobooth-cta,
.couple-concept-cta{
  margin-bottom:76px;
  border:1px solid rgba(185,152,90,.18);
  border-radius:8px;
  background:rgba(255,255,255,.74);
  box-shadow:var(--shadow);
  padding:58px!important;
  text-align:center;
}

.wedding-photo-cta h2,
.wedding-film-cta h2,
.photobooth-cta h2,
.couple-concept-cta h2{
  margin:0 auto 18px;
  color:#222222;
  font-family:var(--display-font)!important;
  font-size:clamp(34px,4.4vw,56px);
  font-weight:300;
  line-height:1.12;
}

.wedding-photo-cta > p:not(.eyebrow),
.wedding-film-cta > p:not(.eyebrow),
.photobooth-cta > p:not(.eyebrow),
.couple-concept-cta > p:not(.eyebrow){
  max-width:680px;
  margin:0 auto;
  color:var(--muted);
  font-size:17px;
  line-height:1.8;
}

.wedding-photo-cta .actions,
.wedding-film-cta .actions,
.photobooth-cta .actions,
.couple-concept-cta .actions{
  justify-content:center;
  margin-top:30px;
}

@media (max-width:900px){
  .wedding-photo-copy,
  .wedding-film-copy,
  .photobooth-copy,
  .couple-concept-copy{
    font-size:16px;
    line-height:1.85;
    gap:18px;
  }

  .wedding-photo-highlights .feature-grid article,
  .wedding-film-highlights .feature-grid article,
  .photobooth-highlights .feature-grid article,
  .couple-concept-highlights .feature-grid article{
    min-height:0;
    padding:28px 22px;
  }

  .wedding-photo-cta,
  .wedding-film-cta,
  .photobooth-cta,
  .couple-concept-cta{
    width:calc(100% - 28px)!important;
    padding:38px 22px!important;
    margin-bottom:64px;
  }

  .wedding-film-player{
    border-radius:8px;
  }

  .film-play-button{
    width:68px;
    height:48px;
    min-height:48px;
    border-radius:13px;
  }

  .film-player-controls{
    grid-template-columns:28px 1fr auto;
    gap:10px;
    padding:14px;
  }

  .film-player-controls i{
    display:none;
  }

  .video-watch-section{
    padding-top:108px;
  }

  .video-watch-head h1{
    font-size:42px;
  }

  .video-related-grid{
    grid-template-columns:1fr;
  }

  .wedding-photo-gallery-grid,
  .service-highlight-gallery-grid{
    grid-template-columns:repeat(2,1fr);
    gap:12px;
  }
}

@media (max-width:520px){
  .wedding-photo-hero h1,
  .wedding-film-hero h1,
  .photobooth-hero h1,
  .couple-concept-hero h1{
    font-size:34px;
  }

  .wedding-photo-copy,
  .wedding-film-copy,
  .photobooth-copy,
  .couple-concept-copy{
    font-size:15.5px;
  }

  .video-watch-section{
    padding-top:96px;
  }

  .video-watch-head{
    margin-bottom:24px;
  }

  .video-watch-head h1{
    font-size:36px;
  }

  .video-watch-head p{
    font-size:15.5px;
  }

  .wedding-photo-quote blockquote,
  .wedding-film-quote blockquote,
  .photobooth-quote blockquote,
  .couple-concept-quote blockquote{
    font-size:30px;
  }

  .wedding-photo-cta .actions,
  .wedding-film-cta .actions,
  .photobooth-cta .actions,
  .couple-concept-cta .actions{
    display:grid;
    grid-template-columns:1fr;
  }

  .wedding-photo-gallery-grid,
  .service-highlight-gallery-grid{
    grid-template-columns:1fr;
  }
}

.about-heading-link{
  display:inline-block;
  cursor:pointer;
  transition:color 180ms ease,text-shadow 180ms ease;
}

#about .about-heading-link:hover,
#about .about-heading-link:focus-visible,
#about .about-heading-link:active,
.two-col>div:first-child>a.about-heading-link:hover,
.two-col>div:first-child>a.about-heading-link:focus-visible,
.two-col>div:first-child>a.about-heading-link:active{
  color:var(--copper)!important;
  transform:none!important;
  text-shadow:0 10px 28px rgba(185,152,90,.18);
}

#about .about-heading-link:hover:after,
#about .about-heading-link:focus-visible:after,
#about .about-heading-link:active:after,
.two-col>div:first-child>a.about-heading-link:hover:after,
.two-col>div:first-child>a.about-heading-link:focus-visible:after,
.two-col>div:first-child>a.about-heading-link:active:after{
  background:var(--copper)!important;
}

.team-gallery-section{
  padding-top:24px;
}

.about-story{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:26px;
  padding-top:30px;
}

.about-text-block{
  border:1px solid rgba(185,152,90,.14);
  border-radius:8px;
  background:rgba(255,253,248,.76);
  box-shadow:0 16px 46px rgba(36,27,22,.09);
  padding:36px;
}

.about-text-block h2{
  margin:12px 0 18px;
  color:#222222;
  font-family:var(--display-font)!important;
  font-size:clamp(32px,4vw,48px);
  font-weight:300;
  line-height:1.08;
}

.about-text-block p:not(.eyebrow),
.about-vision p{
  color:var(--muted);
  font-size:17px;
  line-height:1.85;
}

.about-values{
  padding-top:42px;
}

.about-value-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}

.about-value-grid article{
  min-height:260px;
  border:1px solid rgba(185,152,90,.14);
  border-radius:8px;
  background:rgba(255,253,248,.82);
  box-shadow:0 16px 46px rgba(36,27,22,.09);
  padding:28px 24px;
  transition:transform 220ms ease,box-shadow 220ms ease,border-color 220ms ease;
}

.about-value-grid article:hover{
  transform:translateY(-5px);
  border-color:rgba(185,152,90,.35);
  box-shadow:0 22px 58px rgba(36,27,22,.14);
}

.about-value-grid span{
  display:block;
  margin-bottom:26px;
  color:var(--copper);
  font-family:var(--display-font);
  font-size:42px;
  font-weight:300;
  line-height:1;
}

.about-value-grid h3{
  margin:0 0 14px;
  color:var(--deep);
  font-family:var(--display-font)!important;
  font-size:30px;
  font-weight:400;
}

.about-value-grid p{
  margin:0;
  color:var(--muted);
  line-height:1.75;
}

.about-vision{
  max-width:980px;
  border-top:1px solid rgba(36,27,22,.18);
  border-bottom:1px solid rgba(36,27,22,.18);
  text-align:center;
}

.about-vision h2{
  margin:14px auto 18px;
  max-width:900px;
  color:#222222;
  font-family:var(--display-font)!important;
  font-size:clamp(34px,4.5vw,58px);
  font-weight:300;
  line-height:1.14;
}

.about-vision p{
  max-width:760px;
  margin:0 auto 28px;
}

.about-vision strong,
.about-vision span{
  display:block;
}

.about-vision strong{
  color:var(--deep);
  font-family:var(--display-font);
  font-size:clamp(32px,4vw,48px);
  font-weight:400;
  letter-spacing:.08em;
}

.about-vision span{
  margin-top:6px;
  color:var(--copper);
  font-size:13px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.team-gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

.team-gallery-grid img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:8px;
  border:1px solid rgba(185,152,90,.14);
  box-shadow:0 16px 44px rgba(36,27,22,.1);
  transition:transform 260ms ease,filter 260ms ease,box-shadow 260ms ease;
}

.team-gallery-grid img:hover{
  transform:scale(1.035);
  filter:saturate(1.04) contrast(1.02);
  box-shadow:0 22px 58px rgba(36,27,22,.16);
}

.pricing-lightbox{
  position:fixed;
  z-index:9990;
  inset:0;
  display:grid;
  place-items:center;
  padding:28px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .24s ease,visibility .24s ease;
}

.pricing-lightbox.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.pricing-lightbox__backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(36,27,22,.58);
  backdrop-filter:blur(10px);
  cursor:pointer;
}

.pricing-lightbox__panel{
  position:relative;
  z-index:1;
  display:grid;
  gap:16px;
  width:min(1240px,calc(100vw - 32px));
  max-height:calc(100vh - 36px);
  border:1px solid rgba(185,152,90,.22);
  border-radius:8px;
  background:#fffdf8;
  box-shadow:0 30px 90px rgba(0,0,0,.28);
  padding:18px;
  transform:translateY(12px) scale(.98);
  transition:transform .26s ease;
}

.pricing-lightbox.is-open .pricing-lightbox__panel{
  transform:translateY(0) scale(1);
}

.pricing-lightbox__panel h2{
  margin:0;
  padding-right:48px;
  color:var(--deep);
  font-family:var(--display-font);
  font-size:clamp(24px,3vw,38px);
  font-weight:400;
}

.pricing-lightbox__close{
  position:absolute;
  top:14px;
  right:14px;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border:1px solid rgba(185,152,90,.72);
  border-radius:50%;
  background:rgba(255,255,255,.72);
  color:var(--copper);
  font-size:28px;
  line-height:1;
  cursor:pointer;
  transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease;
}

.pricing-lightbox__close:hover{
  transform:scale(1.06);
  background:#fff;
  box-shadow:0 12px 30px rgba(185,152,90,.18);
}

.pricing-lightbox__image-wrap{
  max-height:calc(100vh - 190px);
  overflow:auto;
  border-radius:8px;
  background:#fbf7ef;
  box-shadow:inset 0 0 0 1px rgba(185,152,90,.12);
}

.pricing-lightbox__image-wrap img{
  width:100%;
  height:auto;
  margin:0 auto;
}

.pricing-lightbox .pricing-consult-btn{
  justify-self:center;
  min-width:180px;
}

.video-real-player{
  width:100%;
  overflow:hidden;
  border:1px solid rgba(185,152,90,.16);
  border-radius:8px;
  background:#120f0d;
  box-shadow:0 24px 70px rgba(36,27,22,.16);
  aspect-ratio:16/9;
}

.video-real-player video,
.video-real-player iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:#120f0d;
}

.admin-album-workspace{
  display:grid;
  gap:22px;
}

.admin-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border:1px solid rgba(138,111,62,.16);
  border-radius:8px;
  background:rgba(255,253,248,.86);
  box-shadow:var(--shadow);
  padding:24px;
}

.admin-toolbar h2{
  margin:0 0 6px;
  color:var(--deep);
  font-family:var(--display-font);
  font-size:34px;
  font-weight:400;
}

.admin-toolbar .lead{
  margin:0;
}

.album-admin-modal{
  position:fixed;
  z-index:9992;
  inset:0;
  display:grid;
  place-items:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .24s ease,visibility .24s ease;
}

.album-admin-modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.album-admin-modal__backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(36,27,22,.54);
  backdrop-filter:blur(10px);
  cursor:pointer;
}

.album-admin-modal__panel{
  position:relative;
  z-index:1;
  width:min(1120px,calc(100vw - 28px));
  max-height:calc(100vh - 28px);
  overflow:auto;
  border:1px solid rgba(138,111,62,.2);
  border-radius:8px;
  background:linear-gradient(180deg,#fffdf8,#fbf7ef);
  box-shadow:0 30px 90px rgba(0,0,0,.28);
  padding:28px;
  transform:translateY(14px) scale(.985);
  transition:transform .24s ease;
}

.album-admin-modal.is-open .album-admin-modal__panel{
  transform:translateY(0) scale(1);
}

.album-admin-modal__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:22px;
  padding-bottom:18px;
  border-bottom:1px solid rgba(138,111,62,.14);
}

.album-admin-modal__head .eyebrow{
  margin:0 0 8px;
}

.album-admin-modal__head h2{
  margin:0;
  color:var(--deep);
  font-family:var(--display-font);
  font-size:clamp(30px,4vw,48px);
  font-weight:400;
}

.album-admin-close{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border:1px solid rgba(185,152,90,.55);
  border-radius:50%;
  background:#fdf7ed;
  color:var(--copper);
  font-size:30px;
  line-height:1;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease;
}

.album-admin-close:hover{
  transform:scale(1.05);
  box-shadow:0 14px 32px rgba(185,152,90,.2);
}

.album-admin-form{
  display:grid;
  gap:20px;
  padding:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.album-admin-fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.album-admin-fields label:nth-child(3){
  grid-column:1/-1;
}

.album-admin-switches{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.album-upload-zone{
  position:relative;
  display:grid;
  place-items:center;
  gap:8px;
  min-height:168px;
  border:1.5px dashed rgba(185,152,90,.48);
  border-radius:8px;
  background:rgba(255,250,244,.82);
  color:var(--muted);
  text-align:center;
  padding:26px;
  cursor:pointer;
  transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease,transform .2s ease;
}

.album-upload-zone:hover,
.album-upload-zone.is-dragging{
  transform:translateY(-2px);
  border-color:var(--copper);
  background:#faf1e4;
  box-shadow:0 18px 48px rgba(185,152,90,.13);
}

.album-upload-zone strong{
  color:var(--deep);
  font-family:var(--display-font);
  font-size:30px;
  font-weight:400;
}

.album-upload-zone span{
  max-width:560px;
  line-height:1.6;
}

.album-upload-input{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}

.album-upload-summary{
  color:var(--muted);
  font-size:13px;
  font-weight:600;
}

.album-sort-hint{
  margin:-4px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
}

.album-preview-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  min-height:120px;
}

.album-preview-toolbar{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
  margin:-2px 0 0;
}

.album-preview-toolbar .btn{
  min-height:34px;
  padding:0 14px;
  font-size:11px;
}

.album-upload-zone.is-processing{
  pointer-events:none;
  opacity:.72;
}

.album-upload-zone.is-processing::after{
  content:"Đang tối ưu preview...";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:10px;
  min-height:30px;
  padding:0 14px;
  border:1px solid rgba(185,152,90,.42);
  color:var(--copper);
  font-size:12px;
  letter-spacing:1px;
  text-transform:uppercase;
}

.album-preview-item{
  position:relative;
  overflow:hidden;
  margin:0;
  border:1px solid rgba(138,111,62,.16);
  border-radius:8px;
  background:#fffdf8;
  box-shadow:0 12px 34px rgba(80,45,22,.08);
  cursor:grab;
  transition:opacity .18s ease,transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}

.album-preview-item.is-selected{
  border-color:rgba(185,152,90,.84);
  box-shadow:0 16px 42px rgba(185,152,90,.2);
}

.album-preview-item.is-dragging{
  opacity:.48;
  transform:scale(.98);
  border-color:rgba(185,152,90,.72);
  box-shadow:0 18px 42px rgba(185,152,90,.18);
}

.album-preview-order,
.album-preview-check{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  border:0;
  background:transparent;
  color:var(--copper);
  font-size:11px;
  letter-spacing:1px;
  text-transform:uppercase;
}

.album-preview-order{
  min-width:32px;
}

.album-preview-check{
  width:32px;
  min-height:28px;
  padding:0;
  cursor:pointer;
  user-select:none;
}

.album-preview-check input{
  width:13px;
  height:13px;
  margin:0;
  accent-color:var(--copper);
}

.album-preview-item>button{
  display:block;
  width:100%;
  height:154px;
  padding:0;
  border:0;
  background:#f5eee7;
  cursor:zoom-in;
  overflow:hidden;
}

.album-preview-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .24s ease,filter .24s ease;
}

.album-preview-item:hover img{
  transform:scale(1.08);
  filter:saturate(1.04);
}

.album-preview-item figcaption{
  display:grid;
  grid-template-columns:auto auto 1fr;
  align-items:center;
  gap:6px;
  padding:8px;
}

.album-preview-item figcaption button{
  justify-self:end;
  min-height:30px;
  border:1px solid rgba(185,152,90,.52);
  background:rgba(255,255,255,.78);
  color:var(--copper);
  font-weight:800;
  font-size:11px;
  letter-spacing:.8px;
  text-transform:uppercase;
  cursor:pointer;
  padding:0 12px;
  transition:background-color .18s ease,color .18s ease,box-shadow .18s ease;
}

.album-preview-item figcaption button:hover{
  background:var(--copper);
  color:#fff;
  box-shadow:0 12px 26px rgba(185,152,90,.2);
}

.album-admin-actions{
  position:sticky;
  bottom:0;
  display:flex;
  justify-content:flex-end;
  gap:12px;
  border-top:1px solid rgba(138,111,62,.14);
  background:#fbf7ef;
  margin:0 -28px -28px;
  padding:18px 28px 28px;
  box-shadow:0 -12px 28px rgba(80,45,22,.06);
}

.album-preview-lightbox{
  position:fixed;
  z-index:9995;
  inset:0;
  display:grid;
  place-items:center;
  padding:22px;
  background:rgba(18,15,13,.78);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s ease,visibility .2s ease;
}

.album-preview-lightbox.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.album-preview-lightbox button{
  position:absolute;
  inset:0;
  border:0;
  background:transparent;
  cursor:zoom-out;
}

.album-preview-lightbox img{
  position:relative;
  z-index:1;
  max-width:min(1180px,calc(100vw - 44px));
  max-height:calc(100vh - 44px);
  border-radius:8px;
  box-shadow:0 24px 80px rgba(0,0,0,.36);
}

.album-discard-confirm{
  position:fixed;
  z-index:9998;
  inset:0;
  display:grid;
  place-items:center;
  padding:22px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s ease,visibility .2s ease;
}

.album-discard-confirm.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.album-discard-confirm__backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(36,27,22,.32);
  backdrop-filter:blur(4px);
  cursor:pointer;
}

.album-discard-confirm__panel{
  position:relative;
  z-index:1;
  width:min(460px,calc(100vw - 32px));
  border:1px solid rgba(185,152,90,.34);
  background:#fffdf8;
  box-shadow:0 24px 70px rgba(36,27,22,.22);
  padding:28px;
  transform:translateY(10px) scale(.98);
  transition:transform .2s ease;
}

.album-discard-confirm.is-open .album-discard-confirm__panel{
  transform:translateY(0) scale(1);
}

.album-discard-confirm__panel h3{
  margin:0 0 10px;
  color:var(--deep);
  font-family:var(--display-font);
  font-size:28px;
  font-weight:400;
  line-height:1.18;
}

.album-discard-confirm__panel p:not(.eyebrow){
  margin:0 0 22px;
  color:var(--muted);
  line-height:1.7;
}

.album-discard-confirm__panel>div{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
}

.album-save-progress{
  position:fixed;
  z-index:10000;
  inset:0;
  display:grid;
  place-items:center;
  padding:22px;
  background:rgba(36,27,22,.22);
  backdrop-filter:blur(5px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .24s ease,visibility .24s ease;
}

.album-save-progress.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.album-save-progress__panel{
  width:min(520px,calc(100vw - 32px));
  border:1px solid rgba(185,152,90,.34);
  background:#fffdf8;
  box-shadow:0 28px 80px rgba(36,27,22,.25);
  padding:30px;
  transform:translateY(12px) scale(.98);
  transition:transform .24s ease;
}

.album-save-progress.is-open .album-save-progress__panel{
  transform:translateY(0) scale(1);
}

.album-save-progress__panel h3{
  margin:0 0 16px;
  color:var(--deep);
  font-family:var(--display-font);
  font-size:30px;
  font-weight:400;
  line-height:1.18;
}

.album-save-progress__bar{
  width:100%;
  height:10px;
  margin:18px 0 12px;
  overflow:hidden;
  border:1px solid rgba(185,152,90,.28);
  background:rgba(185,152,90,.08);
}

.album-save-progress__bar span{
  display:block;
  width:0;
  height:100%;
  background:linear-gradient(90deg,var(--copper),var(--gold));
  transition:width .28s ease;
}

.album-save-progress__panel strong{
  display:block;
  color:var(--copper);
  font-size:28px;
  font-weight:500;
  letter-spacing:1px;
}

.album-save-progress__panel p:not(.eyebrow){
  margin:8px 0 0;
  color:var(--muted);
  line-height:1.7;
}

.album-save-progress__actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
  margin-top:24px;
}

.album-save-progress__actions[hidden]{
  display:none;
}

body.album-admin-open{
  overflow:hidden;
}

@media(max-width:900px){
  .admin-toolbar,
  .album-admin-modal__head,
  .album-admin-actions,
  .album-save-progress__actions{
    display:grid;
  }

  .album-admin-fields,
  .album-admin-switches{
    grid-template-columns:1fr;
  }

  .album-preview-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:540px){
  .album-admin-modal{
    padding:8px;
  }

  .album-admin-modal__panel{
    width:calc(100vw - 16px);
    max-height:calc(100vh - 16px);
    padding:18px;
  }

  .album-preview-grid{
    grid-template-columns:1fr;
  }

  .album-preview-item>button{
    height:220px;
  }

  .album-admin-actions{
    margin:0 -18px -18px;
    padding:16px 18px 22px;
  }
}

body.pricing-lightbox-open{
  overflow:hidden;
}

/* Final typography system: only Playfair Display + Montserrat. */
:root{
  --ink:#222222;
  --muted:#555555;
  --display-font:"Playfair Display",Georgia,serif;
  --body-font:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

body,
input,
select,
textarea,
button,
.nav,
.mobile-nav,
.btn,
.tabs a,
.lead,
.cards p,
.album-card p,
.prices,
.pricing-card,
.price-category-card,
.footer-contact-panel,
.admin-shell,
.list p{
  color:var(--ink);
  font-family:var(--body-font)!important;
  font-weight:300!important;
  letter-spacing:.02em;
}

.logo span,
.logo strong,
.hero h1,
.hero h1 span,
.script,
.section h2,
.dark h2,
.section-head .eyebrow,
.two-col>div:first-child>.eyebrow,
.cards h3,
.album-card h3,
.prices h3,
.price-category-card h3,
.contact-copy h2,
.admin-header h1,
.login-panel h1,
.list h3,
.stats b,
.album-detail-hero h1,
.video-watch-head h1,
.wedding-photo-quote blockquote,
.wedding-film-quote blockquote,
.photobooth-quote blockquote,
.couple-concept-quote blockquote{
  font-family:var(--display-font)!important;
  font-weight:400!important;
  letter-spacing:.01em!important;
}

.nav,
.mobile-nav,
.eyebrow,
.btn,
.tabs a,
.stats span,
.album-card summary,
.sub,
.footer-contact-panel h3,
.price-category-card .eyebrow{
  font-family:var(--body-font)!important;
  font-weight:300!important;
  letter-spacing:1.5px!important;
  text-transform:uppercase!important;
}

.nav a,
.mobile-nav a{
  letter-spacing:2px!important;
}

/* Quote refinement: keep the 2-font system, but make quotes feel lighter and calmer. */
.hero-quote p,
.wedding-photo-quote blockquote,
.wedding-film-quote blockquote,
.photobooth-quote blockquote,
.couple-concept-quote blockquote{
  font-family:var(--display-font)!important;
  font-style:italic!important;
  font-weight:400!important;
  color:#333333!important;
  letter-spacing:.026em!important;
  text-wrap:balance;
}

.hero-quote p{
  font-size:clamp(22px,2.7vw,38px)!important;
  line-height:1.52!important;
}

.wedding-photo-quote blockquote,
.wedding-film-quote blockquote,
.photobooth-quote blockquote,
.couple-concept-quote blockquote{
  font-size:clamp(28px,4vw,50px)!important;
  line-height:1.34!important;
}

/* Home pricing should stay bright so pricing cards and details are easy to read. */
.pricing-home{
  background:linear-gradient(180deg,var(--paper),var(--cream));
  color:var(--ink);
  border-top:1px solid rgba(185,152,90,.14);
  border-bottom:1px solid rgba(185,152,90,.14);
}

.pricing-home .section-head .eyebrow,
.pricing-home .section-head h2{
  color:var(--ink)!important;
}

.pricing-home .section-head .eyebrow:after{
  background:rgba(185,152,90,.55);
}

.pricing-home .prices article{
  display:flex!important;
  flex-direction:column;
  background:rgba(255,253,248,.96)!important;
  border-color:rgba(185,152,90,.24)!important;
  color:var(--ink)!important;
}

.pricing-home .prices article:before{
  background:linear-gradient(180deg,rgba(185,152,90,0) 0%,rgba(185,152,90,.14) 56%,rgba(185,152,90,.24) 100%)!important;
}

.pricing-home .prices article:hover:before{
  opacity:.72!important;
}

.pricing-home .prices span,
.pricing-home .prices li{
  color:#555555!important;
}

.pricing-home .prices ul{
  flex:1 1 auto;
}

.pricing-home .prices .pricing-consult-btn{
  align-self:flex-start;
  margin-top:auto;
}

.album-carousel .album-card p,
.album-grid .album-card p{
  display:none!important;
}

.featured-album-section{
  padding-top:56px;
}

@media (max-width:1100px){
  .cta-details{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .cta-details article:nth-child(odd){
    border-left:0;
  }

  .cta-details article:nth-child(n+3){
    border-top:1px solid rgba(138,111,62,.16);
  }

  .site-footer .cta-details article:nth-child(n+3){
    border-top-color:rgba(138,111,62,.18);
  }
}

@media (max-width:700px){
  .about-story,
  .about-value-grid{
    grid-template-columns:1fr;
  }

  .about-text-block,
  .about-value-grid article{
    padding:26px 22px;
  }

  .team-gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }

  .cta-details{
    grid-template-columns:1fr;
  }

  .cta-details article,
  .cta-details article:nth-child(odd){
    border-left:0;
    border-top:1px solid rgba(138,111,62,.16);
    padding:24px 20px;
  }

  .site-footer .cta-details article,
  .site-footer .cta-details article:nth-child(odd){
    border-top-color:rgba(138,111,62,.18);
  }

  .cta-details article:first-child{
    border-top:0;
  }

  .cta-payment{
    grid-template-columns:1fr;
  }

  .cta-payment img{
    max-width:260px;
  }

  .site-footer{
    padding:0 14px 86px;
  }

  .footer-main{
    display:grid;
    justify-items:start;
    gap:14px;
    padding:26px 0;
  }

  .pricing-lightbox{
    padding:10px;
  }

  .pricing-lightbox__panel{
    width:calc(100vw - 20px);
    max-height:calc(100vh - 20px);
    padding:12px;
  }

  .pricing-lightbox__image-wrap{
    max-height:calc(100vh - 166px);
  }

  .pricing-lightbox__close{
    top:10px;
    right:10px;
    width:38px;
    height:38px;
  }
}

/* Minimalism card system: sharp corners for all content cards and media frames. */
.rounded,
.media,
.stats div,
.cards article,
.cards img,
.service-card,
.service-card img,
.album-card,
.album-card-link>img,
.album-grid .album-card,
.detail-grid img,
.portfolio-card,
.portfolio-media,
.portfolio-media img,
.pricing-home .prices article,
.pricing-page .prices article,
.pricing-board-card,
.pricing-board-card img,
.pricing-extras,
.price-category-card,
.panel,
.list article,
.list img,
.feature-grid article,
.wedding-photo-highlights .feature-grid article,
.wedding-film-highlights .feature-grid article,
.photobooth-highlights .feature-grid article,
.couple-concept-highlights .feature-grid article,
.contact-copy,
form,
input,
select,
textarea,
.video-showcase-main,
.video-showcase-thumb,
.video-showcase-inline-frame,
.wedding-film-player,
.video-real-player,
.video-detail-player,
.album-detail-hero,
.album-media-item,
.album-media-item img,
.album-video-grid article,
.album-video-grid video,
.album-slide-current,
.album-slideshow-thumbs button,
.team-gallery-grid img,
.about-text-block,
.about-value-grid article,
.consult-popup__panel,
.cta-offer,
.cta-details,
.cta-payment,
.footer-contact-panel,
.footer-payment img,
.pricing-lightbox__panel,
.pricing-lightbox__image-wrap,
.pricing-lightbox__image-wrap img,
.album-admin-modal__panel,
.album-upload-zone,
.album-preview-item,
.album-preview-item>button,
.album-preview-lightbox img,
.message,
.login-panel{
  border-radius:0!important;
}

@media(max-width:900px){
  .contact-copy,
  form{
    border-radius:0!important;
  }
}

/* Minimalism buttons: flat rectangles with sharp corners. */
.btn,
.primary,
.ghost,
.tabs a,
.menu-btn,
.mobile-cta a,
.mobile-cta button,
.mobile-cta-item,
.mobile-cta-menu,
.mobile-cta-menu a,
.contact-actions .btn,
.pricing-consult-btn,
.prices .pricing-consult-btn,
.pricing-page .prices .pricing-consult-btn,
.pricing-lightbox .pricing-consult-btn,
.album-view-btn,
.portfolio-view-btn,
#services .service-overlay span,
.video-showcase-open,
.consult-popup__form .btn,
.album-preview-item figcaption button,
.album-icon-button,
.album-slide-nav,
.album-zoom-level,
.portfolio-pagination a{
  border-radius:0!important;
}

.btn,
.contact-actions .btn,
.pricing-consult-btn,
.prices .pricing-consult-btn,
.pricing-page .prices .pricing-consult-btn,
.pricing-lightbox .pricing-consult-btn,
.album-view-btn,
.portfolio-view-btn,
#services .service-overlay span,
.video-showcase-open,
.consult-popup__form .btn{
  min-height:38px!important;
  padding:0 22px!important;
  letter-spacing:1.8px!important;
}
