/* ==========================================================
   GLAMOROUS — Design tokens
   ink       #2B1B1F  deep merlot-black, primary text
   rose      #C6597A  primary accent (buttons, links, headings)
   rose-deep #9C3F5C  hover/active state of rose
   gold      #B8874A  secondary accent, stitch dividers, borders
   gold-light#E4C99A  light gold, subtle backgrounds
   blush     #FBF5F1  page background
   card      #F5E8E0  card / section background
   forest    #1F3D2E  deep bottle green, contact band
   forest-2  #2E5940  lighter forest, hover on dark band
   ========================================================== */

:root{
  --ink:#2B1B1F;
  --rose:#C6597A;
  --rose-deep:#9C3F5C;
  --gold:#B8874A;
  --gold-light:#E4C99A;
  --blush:#FBF5F1;
  --card:#F5E8E0;
  --forest:#1F3D2E;
  --forest-2:#2E5940;
  --white:#FFFFFF;

  --font-display:'Fraunces', Georgia, serif;
  --font-body:'Work Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-accent:'Caveat', cursive;

  --radius:14px;
  --shadow-soft: 0 12px 30px -14px rgba(43,27,31,.25);
  --wrap:1140px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
}

body{
  margin:0;
  background:var(--blush);
  color:var(--ink);
  font-family:var(--font-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%; display:block;}
a{color:inherit;}
ul{margin:0; padding:0; list-style:none;}
h1,h2,h3{font-family:var(--font-display); margin:0 0 .5em; line-height:1.15; font-weight:600;}
p{margin:0 0 1em;}

.wrap{max-width:var(--wrap); margin:0 auto; padding:0 24px;}

.skip-link{
  position:absolute; left:-999px; top:0; background:var(--ink); color:var(--white);
  padding:10px 16px; z-index:1000; border-radius:0 0 8px 0;
}
.skip-link:focus{left:0;}

:focus-visible{outline:3px solid var(--gold); outline-offset:2px;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-body); font-weight:600; font-size:.95rem;
  padding:12px 22px; border-radius:999px; text-decoration:none;
  border:2px solid transparent; cursor:pointer; transition:transform .15s ease, background .2s ease, color .2s ease, border-color .2s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--rose); color:var(--white);}
.btn-primary:hover{background:var(--rose-deep);}
.btn-outline{background:transparent; color:var(--ink); border-color:var(--ink);}
.btn-outline:hover{background:var(--ink); color:var(--white);}
.btn-ghost{background:var(--card); color:var(--ink); padding:9px 16px; font-size:.88rem;}
.btn-outline-light{background:transparent; color:var(--white); border-color:var(--gold-light);}
.btn-outline-light:hover{background:var(--gold-light); color:var(--forest);}
.btn-text-light{background:none; color:var(--gold-light); padding:12px 4px; text-decoration:underline; text-underline-offset:4px;}

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(251,245,241,.92); backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(184,135,74,.25);
}
.header-inner{display:flex; align-items:center; justify-content:space-between; padding-top:12px; padding-bottom:12px; gap:16px;}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink);}
.brand-word{font-family:var(--font-display); font-size:1.25rem; font-weight:600; line-height:1.1; display:flex; flex-direction:column;}
.brand-sub{font-family:var(--font-body); font-size:.62rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:var(--rose); margin-top:2px;}

.main-nav{display:flex; gap:28px;}
.main-nav a{text-decoration:none; font-weight:500; font-size:.95rem; color:var(--ink); position:relative; padding:4px 0;}
.main-nav a::after{content:""; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--rose); transition:width .2s ease;}
.main-nav a:hover::after{width:100%;}

.header-actions{display:flex; align-items:center; gap:10px;}
.tel-link svg{stroke:var(--rose);}

.nav-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:38px; height:38px; border:none; background:var(--card); border-radius:8px; cursor:pointer;
}
.nav-toggle span{display:block; width:18px; height:2px; background:var(--ink); margin:0 auto;}

@media (max-width:860px){
  .main-nav{
    position:fixed; inset:64px 0 auto 0; background:var(--blush);
    flex-direction:column; padding:20px 24px; gap:0; border-bottom:1px solid rgba(184,135,74,.25);
    transform:translateY(-120%); transition:transform .25s ease; box-shadow:var(--shadow-soft);
  }
  .main-nav.is-open{transform:translateY(0);}
  .main-nav a{padding:14px 0; border-bottom:1px solid rgba(43,27,31,.08); width:100%;}
  .nav-toggle{display:flex;}
  .header-actions .btn-ghost span{display:none;}
}

/* ---------- Stitch divider (signature element) ---------- */
.stitch-divider{
  height:14px;
  background-image: repeating-linear-gradient(90deg, var(--gold) 0 7px, transparent 7px 18px);
  background-position:center;
  opacity:.7;
}

/* ---------- Section basics ---------- */
section{padding:88px 0;}
.eyebrow{
  font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; color:var(--rose);
  font-weight:600; margin-bottom:.6em;
}
.eyebrow-light{color:var(--gold-light);}
.center{text-align:center;}
.section-title{font-size:clamp(1.8rem, 3.2vw, 2.6rem);}
.section-title.light{color:var(--white);}

/* ---------- Hero ---------- */
.hero{padding-top:64px; padding-bottom:64px;}
.hero-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center;}
.hero-copy h1{font-size:clamp(2.4rem, 5vw, 3.6rem);}
.hero-copy h1 em{font-style:normal; color:var(--rose); font-family:var(--font-accent); font-weight:600;}
.hero-lead{font-size:1.08rem; max-width:46ch; color:#4a3238;}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap; margin:26px 0;}
.hero-tags{display:flex; gap:10px; flex-wrap:wrap; margin-top:8px;}
.hero-tags li{
  background:var(--card); border:1px solid var(--gold-light); color:var(--ink);
  font-size:.82rem; padding:6px 14px; border-radius:999px;
}

.hero-strip{position:relative; height:420px;}
.strip-photo{
  position:absolute; width:62%; border:8px solid var(--white); box-shadow:var(--shadow-soft); border-radius:4px;
}
.strip-photo.rotate-a{top:0; left:6%; transform:rotate(-6deg); z-index:3;}
.strip-photo.rotate-b{top:110px; right:2%; transform:rotate(5deg); z-index:2;}
.strip-photo.rotate-c{bottom:0; left:16%; transform:rotate(-2deg); z-index:1;}
.pin{
  position:absolute; width:14px; height:14px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #fff, var(--gold) 60%, var(--rose-deep));
  box-shadow:0 3px 6px rgba(0,0,0,.25); z-index:4;
}

.ph-placeholder{
  aspect-ratio:4/5; width:100%; border-radius:6px;
  background:
    repeating-linear-gradient(135deg, rgba(184,135,74,.12) 0 12px, rgba(198,89,122,.08) 12px 24px),
    linear-gradient(160deg, var(--card), var(--gold-light));
  display:flex; align-items:center; justify-content:center; text-align:center;
  padding:14px; color:var(--ink); font-size:.8rem; font-weight:600; line-height:1.3;
}
.ph-placeholder span{opacity:.75;}
.ph-placeholder.square{aspect-ratio:1/1;}
.ph-placeholder.wide{aspect-ratio:16/9;}
.ph-placeholder.tall{aspect-ratio:3/4;}

/* Real photos */
.strip-photo img{
  width:100%; aspect-ratio:4/5; object-fit:cover; display:block; border-radius:2px;
}
.g-item img{
  width:100%; height:100%; object-fit:cover; display:block; border-radius:var(--radius);
}
.about-photo{
  width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow-soft);
}

@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr; gap:40px;}
  .hero-strip{height:320px; max-width:340px; margin:0 auto;}
}

/* ---------- Services ---------- */
.services{background:var(--card);}
.service-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; margin-top:44px;}
.service-card{
  background:var(--blush); border-radius:var(--radius); padding:26px 24px;
  border-top:3px dashed var(--gold); box-shadow:var(--shadow-soft);
}
.service-card h3{font-size:1.15rem; display:flex; align-items:center; gap:10px;}
.s-icon{font-size:1.1rem;}
.service-card li{padding:5px 0; font-size:.94rem; border-bottom:1px dotted rgba(43,27,31,.12);}
.service-card li:last-child{border-bottom:none;}

@media (max-width:860px){ .service-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .service-grid{grid-template-columns:1fr;} }

/* ---------- Gallery ---------- */
.filter-row{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin:36px 0 30px;}
.filter-pill{
  background:var(--card); border:1px solid var(--gold-light); color:var(--ink);
  padding:8px 18px; border-radius:999px; font-size:.88rem; font-weight:600; cursor:pointer;
}
.filter-pill.is-active{background:var(--rose); border-color:var(--rose); color:var(--white);}

.gallery-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); grid-auto-rows:120px; gap:16px;
}
.g-item{margin:0; grid-row:span 2; position:relative;}
.g-item .ph-placeholder{height:100%; aspect-ratio:auto;}
.g-item:nth-child(1){grid-row:span 3;}
.g-item:nth-child(5){grid-column:span 2; grid-row:span 2;}
.g-item figcaption{
  position:absolute; left:10px; bottom:10px; background:rgba(43,27,31,.75); color:var(--white);
  font-size:.72rem; padding:4px 10px; border-radius:999px;
}
.g-item.is-hidden{display:none;}
.gallery-note{text-align:center; font-size:.82rem; opacity:.6; margin-top:22px;}

@media (max-width:860px){
  .gallery-grid{grid-template-columns:repeat(2, 1fr);}
  .g-item:nth-child(5){grid-column:span 2;}
}

/* ---------- About ---------- */
.about-grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:56px; align-items:center;}
.about-photo{aspect-ratio:4/5;}
@media (max-width:860px){ .about-grid{grid-template-columns:1fr;} }

/* ---------- Reviews ---------- */
.review-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:44px;}
.review-card{
  background:var(--card); border-radius:var(--radius); padding:28px 24px; margin:0;
  box-shadow:var(--shadow-soft); position:relative;
}
.stars{color:var(--gold); letter-spacing:2px; margin-bottom:10px;}
.review-card blockquote{margin:0 0 14px; font-size:.98rem; font-style:italic;}
.review-card figcaption{font-size:.8rem; color:var(--rose-deep); font-weight:600;}
.review-cta{text-align:center; margin-top:34px;}
.review-cta a{color:var(--rose-deep); font-weight:600; text-decoration:none;}
.review-cta a:hover{text-decoration:underline;}

@media (max-width:860px){ .review-grid{grid-template-columns:1fr;} }

/* ---------- Contact (dark band) ---------- */
.contact{background:var(--forest); color:var(--white);}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px;}
.contact address{font-style:normal; margin-bottom:14px; line-height:1.7; opacity:.9;}
.hours{opacity:.85; font-size:.92rem; margin-bottom:22px;}
.contact-btns{display:flex; gap:12px; flex-wrap:wrap; align-items:center;}

.contact-form{
  background:rgba(255,255,255,.06); border:1px solid rgba(228,201,154,.25);
  border-radius:var(--radius); padding:28px; display:flex; flex-direction:column; gap:4px;
}
.contact-form label{font-size:.82rem; margin-top:12px; margin-bottom:4px; opacity:.85;}
.contact-form input, .contact-form select, .contact-form textarea{
  background:rgba(255,255,255,.08); border:1px solid rgba(228,201,154,.3); border-radius:8px;
  padding:10px 12px; color:var(--white); font-family:var(--font-body); font-size:.94rem;
}
.contact-form input::placeholder, .contact-form textarea::placeholder{color:rgba(255,255,255,.5);}
.contact-form button{margin-top:18px; align-self:flex-start;}
.form-note{font-size:.82rem; opacity:.85; min-height:1.2em; margin:10px 0 0;}

@media (max-width:860px){ .contact-grid{grid-template-columns:1fr;} }

/* ---------- Footer ---------- */
.site-footer{background:var(--ink); color:rgba(255,255,255,.85); padding-top:48px;}
.footer-inner{display:flex; flex-wrap:wrap; gap:36px; justify-content:space-between; padding-bottom:32px; border-bottom:1px solid rgba(255,255,255,.12);}
.footer-inner strong{font-family:var(--font-display); font-size:1.1rem; color:var(--white);}
.footer-inner p{margin:.3em 0;}
.footer-nav{display:flex; flex-direction:column; gap:8px;}
.footer-nav a, .footer-social a{color:rgba(255,255,255,.75); text-decoration:none; font-size:.92rem;}
.footer-nav a:hover, .footer-social a:hover{color:var(--gold-light);}
.footer-social{display:flex; flex-direction:column; gap:8px;}
.footer-bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;
  padding:20px 24px; font-size:.78rem; opacity:.6;
}
