/* =========================================================
   CLASSIC PHOTOS — design tokens
   Palette:  Ink #17140F · Parchment #F4EAD8 · Rose Gold #B9895F
             Bridal Red #7A1F2B · Sage #6B7A5E · Paper White #FFFBF4
   Type:     Display  — 'Cormorant Garamond' (editorial serif)
             Body     — 'Jost' (geometric sans, quiet workhorse)
   Signature: film-strip sprocket border on portfolio frames +
              a hand-drawn rose divider echoing the studio's
              "Red / White Rose Bouquet" package names.
   ========================================================= */

:root{
  --ink:#17140F;
  --ink-soft:#2A241C;
  --parchment:#F4EAD8;
  --paper:#FFFBF4;
  --rose-gold:#B9895F;
  --rose-gold-light:#D9B896;
  --bridal-red:#7A1F2B;
  --bridal-red-light:#9C3241;
  --sage:#6B7A5E;
  --line: rgba(23,20,15,.12);
  --shadow: 0 20px 50px -25px rgba(23,20,15,.45);
  --radius: 2px;
  --serif: 'Cormorant Garamond', 'Times New Roman', serif;
  --sans: 'Jost', 'Segoe UI', sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;margin:0 0 .4em;color:var(--ink);}
p{margin:0 0 1em;}
.container{max-width:1180px;margin:0 auto;padding:0 24px;}
section{padding:96px 0;}
@media(max-width:768px){section{padding:64px 0;}}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}

/* ---------- eyebrow / kicker ---------- */
.eyebrow{
  display:flex;align-items:center;gap:12px;
  font-family:var(--sans);
  text-transform:uppercase;
  letter-spacing:.28em;
  font-size:12px;
  color:var(--rose-gold);
  font-weight:500;
  margin-bottom:14px;
}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--rose-gold);}
.section-head{max-width:640px;margin:0 0 56px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head h2{font-size:clamp(30px,4vw,44px);}

/* ---------- rose divider (signature element) ---------- */
.rose-divider{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 auto 20px;width:fit-content;}
.rose-divider .stem{width:46px;height:1px;background:linear-gradient(90deg,transparent,var(--rose-gold));}
.rose-divider .stem.r{background:linear-gradient(90deg,var(--rose-gold),transparent);}
.rose-divider svg{width:20px;height:20px;color:var(--rose-gold);}

/* ================= HEADER ================= */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(23,20,15,.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:1180px;margin:0 auto;}
.brand{display:flex;align-items:center;gap:12px;color:var(--paper);}
.brand img{height:44px;width:auto;}
.brand-name{font-family:var(--serif);font-size:24px;letter-spacing:.03em;color:var(--paper);}
.brand-name small{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--rose-gold-light);}

.nav-toggle{display:none;background:none;border:0;color:var(--paper);font-size:26px;cursor:pointer;}
.main-nav ul{display:flex;gap:34px;}
.main-nav a{
  font-size:13px;text-transform:uppercase;letter-spacing:.14em;color:var(--parchment);
  position:relative;padding:6px 0;
}
.main-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--rose-gold);transition:width .3s ease;}
.main-nav a:hover::after,.main-nav a.active::after{width:100%;}
.main-nav a.active{color:var(--rose-gold-light);}
.header-cta{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid var(--rose-gold);color:var(--rose-gold-light);
  padding:9px 20px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  transition:background .3s ease,color .3s ease;
}
.header-cta:hover{background:var(--rose-gold);color:var(--ink);}

@media(max-width:900px){
  .nav-toggle{display:block;}
  .main-nav{position:fixed;inset:0 0 0 30%;background:var(--ink);transform:translateX(100%);transition:transform .35s ease;padding:100px 32px;z-index:99;}
  .main-nav.open{transform:translateX(0);}
  .main-nav ul{flex-direction:column;gap:22px;}
  .header-cta{display:none;}
}

/* ================= HERO SLIDER ================= */
.hero{position:relative;height:92vh;min-height:560px;overflow:hidden;background:var(--ink);}
.hero-slide{
  position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease;
  background-size:cover;background-position:center;
}
.hero-slide.active{opacity:1;}
.hero-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,20,15,.55) 0%,rgba(23,20,15,.35) 40%,rgba(23,20,15,.8) 100%);}
.hero-content{
  position:relative;z-index:2;height:100%;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;color:var(--paper);padding:0 24px;
}
.hero-content .eyebrow{color:var(--rose-gold-light);justify-content:center;}
.hero-content .eyebrow::before{display:none;}
.hero-content h1{
  font-size:clamp(42px,7vw,86px);line-height:1.02;color:var(--paper);
  text-shadow:0 4px 30px rgba(0,0,0,.35);
}
.hero-content h1 em{color:var(--rose-gold-light);font-style:normal;}
.hero-content p{max-width:520px;color:var(--parchment);font-size:17px;}
.hero-btns{display:flex;gap:16px;margin-top:18px;flex-wrap:wrap;justify-content:center;}
.btn{
  display:inline-flex;align-items:center;gap:10px;padding:14px 30px;
  font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;
  border:1px solid var(--rose-gold);cursor:pointer;transition:all .3s ease;
}
.btn-solid{background:var(--rose-gold);color:var(--ink);}
.btn-solid:hover{background:var(--rose-gold-light);}
.btn-outline{background:transparent;color:var(--paper);}
.btn-outline:hover{background:rgba(255,255,255,.1);}
.btn-red{background:var(--bridal-red);border-color:var(--bridal-red);color:var(--paper);}
.btn-red:hover{background:var(--bridal-red-light);}

.hero-dots{position:absolute;bottom:28px;left:0;right:0;z-index:3;display:flex;justify-content:center;gap:10px;}
.hero-dots button{width:9px;height:9px;border-radius:50%;border:1px solid var(--paper);background:transparent;cursor:pointer;padding:0;}
.hero-dots button.active{background:var(--rose-gold);border-color:var(--rose-gold);}
.hero-scroll{position:absolute;bottom:24px;right:32px;z-index:3;color:var(--parchment);font-size:11px;letter-spacing:.3em;text-transform:uppercase;writing-mode:vertical-rl;display:flex;align-items:center;gap:10px;}
.hero-scroll::after{content:"";width:1px;height:44px;background:var(--rose-gold);}
@media(max-width:600px){.hero-scroll{display:none;}}

/* ================= INTRO / ABOUT ================= */
.intro{background:var(--parchment);text-align:center;}
.intro .container{max-width:820px;}
.intro p{font-family:var(--serif);font-size:clamp(20px,2.6vw,28px);line-height:1.5;color:var(--ink-soft);}

.about-split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.about-media{position:relative;}
.about-media img{width:100%;height:520px;object-fit:cover;}
.about-media::before{content:"";position:absolute;top:-20px;left:-20px;width:70%;height:70%;border:1px solid var(--rose-gold);z-index:-1;}
.about-stats{display:flex;gap:36px;margin-top:30px;}
.about-stats div{font-family:var(--serif);font-size:38px;color:var(--bridal-red);}
.about-stats span{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:4px;}
@media(max-width:860px){.about-split{grid-template-columns:1fr;gap:40px;}.about-media img{height:340px;}}

/* ================= SERVICES ================= */
.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--line);}
.service-card{background:var(--paper);padding:44px 30px;transition:background .35s ease;}
.service-card:hover{background:var(--ink);}
.service-card:hover h3,.service-card:hover p{color:var(--parchment);}
.service-card .num{font-family:var(--serif);font-size:14px;color:var(--rose-gold);letter-spacing:.1em;}
.service-card h3{font-size:23px;margin-top:14px;}
.service-card p{font-size:14.5px;color:var(--ink-soft);}
@media(max-width:900px){.services-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.services-grid{grid-template-columns:1fr;}}

/* ================= PACKAGES ================= */
.packages-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
.package-card{
  background:var(--paper);border:1px solid var(--line);position:relative;
  display:flex;flex-direction:column;transition:transform .35s ease,box-shadow .35s ease;
}
.package-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.package-card.featured{border-color:var(--rose-gold);}
.package-tag{position:absolute;top:18px;right:18px;background:var(--bridal-red);color:var(--paper);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:6px 12px;}
.package-media{height:200px;overflow:hidden;}
.package-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.package-card:hover .package-media img{transform:scale(1.06);}
.package-body{padding:30px;display:flex;flex-direction:column;flex:1;}
.package-body h3{font-size:24px;}
.package-price{font-family:var(--serif);font-size:34px;color:var(--bridal-red);margin:6px 0 18px;}
.package-price span{font-size:13px;font-family:var(--sans);color:var(--ink-soft);}
.package-features{margin:0 0 24px;flex:1;}
.package-features li{display:flex;gap:10px;font-size:14px;padding:6px 0;border-bottom:1px dashed var(--line);color:var(--ink-soft);}
.package-features li::before{content:"✦";color:var(--rose-gold);}
@media(max-width:960px){.packages-grid{grid-template-columns:1fr;max-width:440px;margin:0 auto;}}

/* ================= TEAM ================= */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.team-card{text-align:center;}
.team-photo{position:relative;overflow:hidden;aspect-ratio:3/4;background:var(--ink);}
.team-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(45%);transition:filter .4s ease,transform .5s ease;}
.team-card:hover .team-photo img{filter:grayscale(0);transform:scale(1.05);}
.team-photo::after{content:"";position:absolute;left:14px;right:14px;bottom:14px;top:14px;border:1px solid rgba(255,255,255,.5);opacity:0;transition:opacity .4s ease;}
.team-card:hover .team-photo::after{opacity:1;}
.team-card h3{font-size:20px;margin-top:16px;margin-bottom:2px;}
.team-card p{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--rose-gold);}
@media(max-width:900px){.team-grid{grid-template-columns:repeat(2,1fr);}}

/* ================= PORTFOLIO (signature film-frame) ================= */
.portfolio-filters{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:44px;}
.portfolio-filters button{
  background:none;border:1px solid var(--line);padding:9px 20px;font-size:12px;
  letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:all .25s ease;color:var(--ink-soft);
}
.portfolio-filters button.active,.portfolio-filters button:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.film-frame{
  position:relative;background:var(--ink);padding:10px 10px 26px;
}
.film-frame::before,.film-frame::after{
  content:"";position:absolute;left:0;right:0;height:10px;
  background-image:radial-gradient(circle,var(--paper) 2.5px,transparent 2.6px);
  background-size:16px 10px;background-repeat:repeat-x;background-position:6px center;
}
.film-frame::before{top:0;}
.film-frame::after{bottom:14px;}
.film-frame .frame-media{overflow:hidden;aspect-ratio:4/5;}
.film-frame img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.film-frame:hover img{transform:scale(1.08);}
.film-frame figcaption{color:var(--rose-gold-light);font-size:11px;letter-spacing:.14em;text-transform:uppercase;text-align:center;margin-top:8px;}
@media(max-width:900px){.portfolio-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.portfolio-grid{grid-template-columns:1fr;}}

/* ================= TESTIMONIALS ================= */
.testimonials{background:var(--ink);color:var(--parchment);}
.testimonials .section-head h2{color:var(--paper);}
.testimonials .eyebrow{color:var(--rose-gold-light);}
.t-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;}
.t-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);padding:34px;}
.t-card .stars{color:var(--rose-gold);letter-spacing:2px;margin-bottom:14px;font-size:14px;}
.t-card p{font-family:var(--serif);font-size:19px;font-style:italic;color:var(--parchment);}
.t-card h4{margin:14px 0 0;font-size:15px;color:var(--paper);}
.t-card span{font-size:12px;color:var(--rose-gold-light);letter-spacing:.08em;}
@media(max-width:800px){.t-grid{grid-template-columns:1fr;}}

/* ================= CTA STRIP ================= */
.cta-strip{
  background:linear-gradient(120deg,var(--bridal-red),var(--bridal-red-light));
  color:var(--paper);text-align:center;padding:72px 24px;
}
.cta-strip h2{color:var(--paper);font-size:clamp(26px,4vw,40px);}
.cta-strip p{color:rgba(255,255,255,.85);max-width:520px;margin:0 auto 26px;}

/* ================= CONTACT ================= */
.contact-wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;}
.contact-info-card{background:var(--ink);color:var(--parchment);padding:44px;}
.contact-info-card h3{color:var(--paper);}
.info-row{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.1);}
.info-row .ic{color:var(--rose-gold);font-size:18px;}
.info-row strong{display:block;color:var(--paper);font-size:13px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px;}
.social-row{display:flex;gap:14px;margin-top:24px;}
.social-row a{width:38px;height:38px;border:1px solid var(--rose-gold);display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--rose-gold-light);}
.social-row a:hover{background:var(--rose-gold);color:var(--ink);}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.form-grid .full{grid-column:1/-1;}
.field label{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;}
.field input,.field select,.field textarea{
  width:100%;border:none;border-bottom:1px solid var(--line);background:transparent;
  padding:10px 2px;font-family:var(--sans);font-size:15px;color:var(--ink);
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--rose-gold);}
.field textarea{resize:vertical;min-height:90px;}
@media(max-width:860px){.contact-wrap{grid-template-columns:1fr;}.form-grid{grid-template-columns:1fr;}}

.alert{padding:14px 18px;margin-bottom:24px;border-left:3px solid var(--sage);background:rgba(107,122,94,.08);font-size:14px;}
.alert.error{border-color:var(--bridal-red);background:rgba(122,31,43,.06);}

/* ================= PAGE HEADER (inner pages) ================= */
.page-header{
  position:relative;height:46vh;min-height:280px;display:flex;align-items:center;justify-content:center;
  text-align:center;color:var(--paper);background:linear-gradient(rgba(23,20,15,.6),rgba(23,20,15,.7)),var(--ink);
  background-size:cover;background-position:center;
}
.page-header h1{color:var(--paper);font-size:clamp(34px,5vw,58px);}
.breadcrumb{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--rose-gold-light);}
.breadcrumb a{color:var(--parchment);}
.breadcrumb a:hover{color:var(--rose-gold-light);}

/* ================= FOOTER ================= */
.site-footer{background:var(--ink);color:var(--parchment);padding-top:80px;}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:50px;border-bottom:1px solid rgba(255,255,255,.08);}
.footer-grid h4{color:var(--paper);font-size:16px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:20px;}
.footer-brand .brand-name{color:var(--paper);}
.footer-grid p,.footer-grid a{color:rgba(244,234,216,.75);font-size:14px;}
.footer-links li{margin-bottom:10px;}
.footer-links a:hover{color:var(--rose-gold-light);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding:26px 0;font-size:13px;color:rgba(244,234,216,.55);flex-wrap:wrap;gap:10px;}
.footer-bottom a{color:var(--rose-gold-light);}

/* ================= FLOATING WHATSAPP ================= */
.whatsapp-float{
  position:fixed;bottom:24px;right:24px;z-index:200;
  width:56px;height:56px;border-radius:50%;background:#25D366;
  display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.3);
  animation:pulse 2.4s infinite;
}
.whatsapp-float svg{width:28px;height:28px;fill:#fff;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5);}70%{box-shadow:0 0 0 14px rgba(37,211,102,0);}100%{box-shadow:0 0 0 0 rgba(37,211,102,0);}}

/* ================= UTILS / REVEAL ================= */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}
.terms-body h2{margin-top:1.4em;font-size:24px;}
.terms-body{max-width:800px;margin:0 auto;}
