/* =====================================================================
   A Wedding Officiant NC — site stylesheet
   Romantic + casual. Palette and type shared across all pages.
   ===================================================================== */

:root{
  --cream:#FBF6EF;
  --cream-deep:#F4EADE;
  --warm-white:#FEFCF8;
  --blush:#EBC9C2;
  --blush-soft:#F4E2DD;
  --wine:#87505E;
  --wine-deep:#6E3F4B;
  --sage:#8C9B7E;
  --sage-soft:#DFE3D6;
  --gold:#BE9E63;
  --ink:#443B39;
  --muted:#7E716C;
  --shadow:0 18px 44px -22px rgba(68,59,57,.45);
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Nunito Sans',-apple-system,Segoe UI,sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;line-height:1.15;color:var(--wine-deep);}
.script{font-family:'Dancing Script',cursive;color:var(--wine);font-weight:600;}
a{color:var(--wine);text-decoration:none;}
img,svg{max-width:100%;display:block;}
.wrap{max-width:1120px;margin:0 auto;padding:0 26px;}
.skip-link{position:absolute;left:-999px;}
.skip-link:focus{left:8px;top:8px;background:var(--wine);color:#fff;padding:8px 14px;border-radius:6px;z-index:200;}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;font-family:'Nunito Sans',sans-serif;font-weight:700;
  font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;
  padding:15px 30px;border-radius:40px;cursor:pointer;border:none;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.btn-primary{background:var(--wine);color:#fff;box-shadow:0 12px 26px -12px rgba(135,80,94,.85);}
.btn-primary:hover{background:var(--wine-deep);transform:translateY(-2px);}
.btn-ghost{background:transparent;color:var(--wine-deep);border:1.5px solid var(--gold);}
.btn-ghost:hover{background:var(--gold);color:#fff;transform:translateY(-2px);}

/* ---------- nav ---------- */
header.nav{
  position:sticky;top:0;z-index:50;background:rgba(251,246,239,.94);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--cream-deep);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 26px;max-width:1120px;margin:0 auto;}
.logo{display:flex;align-items:center;gap:11px;}
.logo-mark{width:46px;height:46px;flex:none;}
.logo-text{display:flex;flex-direction:column;line-height:1;}
.logo-text .lt-main{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.34rem;font-weight:600;color:var(--wine-deep);letter-spacing:.02em;}
.logo-text .lt-sub{font-size:.56rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-top:3px;}
nav.links{display:flex;gap:6px;align-items:center;}
nav.links a{
  font-size:.78rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--ink);padding:9px 13px;border-radius:30px;transition:.2s;
}
nav.links a:hover{color:var(--wine);}
nav.links a.active{background:var(--blush-soft);color:var(--wine-deep);}
nav.links .btn{margin-left:8px;padding:11px 22px;color:#fff;}
nav.links .btn.btn-primary:hover{color:#fff;}
.burger{display:none;background:none;border:none;cursor:pointer;padding:6px;}
.burger span{display:block;width:24px;height:2.5px;background:var(--wine-deep);margin:5px 0;border-radius:2px;}

/* ---------- generic section ---------- */
section{padding:78px 0;}
.eyebrow{font-family:'Dancing Script',cursive;font-size:1.7rem;color:var(--wine);}
.sec-head{text-align:center;max-width:640px;margin:0 auto 50px;}
.sec-head h2{font-size:2.7rem;margin:4px 0 12px;}
.sec-head p{color:var(--muted);font-size:1.05rem;}
.divider{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px 0;}
.divider span{height:1px;width:54px;background:var(--gold);}
.divider svg{width:20px;height:20px;}
.page-head{
  background:radial-gradient(circle at 80% 20%,rgba(235,201,194,.5),transparent 45%),var(--cream-deep);
  text-align:center;padding:66px 0 58px;
}
.page-head h1{font-size:3.1rem;margin:6px 0 8px;}
.page-head p{color:var(--muted);max-width:540px;margin:0 auto;font-size:1.08rem;}

/* ---------- hero ---------- */
.hero{
  background:
    radial-gradient(circle at 82% 16%,rgba(235,201,194,.55),transparent 42%),
    radial-gradient(circle at 12% 88%,rgba(140,155,126,.32),transparent 46%),
    var(--cream);
  padding:74px 0 86px;position:relative;overflow:hidden;
}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;}
.hero-copy .eyebrow{font-size:2rem;}
.hero-copy h1{font-size:3.5rem;margin:6px 0 18px;}
.hero-copy h1 em{font-style:italic;color:var(--wine);}
.hero-copy p.lead{font-size:1.14rem;color:var(--muted);max-width:480px;margin-bottom:26px;}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;}
.trust-strip{display:flex;gap:26px;flex-wrap:wrap;margin-top:34px;padding-top:24px;border-top:1px solid var(--cream-deep);}
.trust-strip div{font-size:.86rem;color:var(--muted);}
.trust-strip strong{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-size:1.7rem;color:var(--wine-deep);font-weight:600;}

/* ---------- photo placeholders ---------- */
.photo{
  background:linear-gradient(150deg,var(--blush-soft),var(--sage-soft));
  border:1.5px dashed var(--gold);border-radius:18px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:24px;color:var(--wine-deep);min-height:160px;
}
.photo svg{width:38px;height:38px;opacity:.65;margin-bottom:8px;}
.photo .ph-label{font-weight:700;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;}
.photo .ph-desc{font-style:italic;font-size:.86rem;color:var(--muted);margin-top:4px;font-family:'Cormorant Garamond',Georgia,serif;}

/* ---------- real photos ---------- */
.hero-photo{
  width:100%;height:480px;object-fit:cover;object-position:center;
  border-radius:200px 200px 22px 22px;box-shadow:var(--shadow);display:block;
}
.about-photo{
  width:100%;height:540px;object-fit:cover;object-position:center 22%;
  border-radius:18px;box-shadow:var(--shadow);display:block;
}

/* ---------- value cards ---------- */
.tint{background:var(--warm-white);}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.cards.three{grid-template-columns:repeat(3,1fr);}
.card{
  background:var(--cream);border:1px solid var(--cream-deep);border-radius:16px;
  padding:30px 24px;text-align:center;transition:.25s;
}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow);}
.card .ic{width:58px;height:58px;border-radius:50%;background:var(--blush-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;}
.card .ic svg{width:28px;height:28px;}
.card h3{font-size:1.4rem;margin-bottom:8px;}
.card p{font-size:.93rem;color:var(--muted);}

/* ---------- services ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.svc{background:var(--warm-white);border:1px solid var(--cream-deep);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;transition:.25s;}
.svc:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.svc.featured{border:2px solid var(--gold);}
.svc-top{padding:30px 28px 22px;text-align:center;background:var(--blush-soft);position:relative;}
.svc.featured .svc-top{background:linear-gradient(160deg,var(--blush),var(--blush-soft));}
.svc-tag{position:absolute;top:14px;right:14px;background:var(--gold);color:#fff;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 11px;border-radius:20px;}
.svc-top h3{font-size:1.85rem;}
.svc-price{font-family:'Cormorant Garamond',Georgia,serif;font-size:2.5rem;color:var(--wine);font-weight:600;margin-top:6px;}
.svc-price small{font-size:.92rem;color:var(--muted);font-family:'Nunito Sans',sans-serif;display:block;font-weight:600;}
.svc-body{padding:26px 28px;flex:1;display:flex;flex-direction:column;}
.svc-body .blurb{font-size:.95rem;color:var(--muted);margin-bottom:16px;}
.svc-body ul{list-style:none;margin-bottom:22px;}
.svc-body li{font-size:.92rem;padding:7px 0 7px 28px;position:relative;border-bottom:1px dashed var(--cream-deep);}
.svc-body li:last-child{border-bottom:none;}
.svc-body li::before{content:"";position:absolute;left:0;top:12px;width:15px;height:15px;background:var(--sage);border-radius:50%;}
.svc-body li::after{content:"";position:absolute;left:5px;top:16px;width:4px;height:7px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
.svc-body .btn{margin-top:auto;text-align:center;}

/* ---------- reviews ---------- */
.reviews-bg{background:var(--cream-deep);}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.rev{background:var(--warm-white);border-radius:16px;padding:28px 26px;box-shadow:0 10px 30px -22px rgba(68,59,57,.6);display:flex;flex-direction:column;}
.stars{color:var(--gold);font-size:1.05rem;letter-spacing:3px;margin-bottom:10px;}
.rev p{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.08rem;font-style:italic;color:var(--ink);margin-bottom:16px;}
.rev .who{display:flex;align-items:center;gap:12px;margin-top:auto;}
.rev .avatar{width:42px;height:42px;border-radius:50%;background:var(--wine);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',Georgia,serif;font-size:1.2rem;font-weight:600;flex:none;}
.rev .who strong{font-size:.95rem;color:var(--wine-deep);font-family:'Nunito Sans',sans-serif;}
.rev .who span{font-size:.78rem;color:var(--muted);}

/* ---------- band / CTA ---------- */
.band{background:linear-gradient(135deg,var(--wine),var(--wine-deep));color:#fff;text-align:center;}
.band h2{color:#fff;font-size:2.6rem;}
.band .eyebrow{color:var(--blush);}
.band p{color:rgba(255,255,255,.85);max-width:520px;margin:10px auto 26px;}
.band .btn-ghost{border-color:var(--blush);color:#fff;}
.band .btn-ghost:hover{background:var(--blush);color:var(--wine-deep);}

/* ---------- about ---------- */
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px;align-items:center;}
.about-grid .photo{min-height:480px;border-radius:18px;}
.about-copy .eyebrow{font-size:1.9rem;}
.about-copy h2{font-size:2.7rem;margin:4px 0 16px;}
.about-copy p{margin-bottom:14px;}
.about-copy .sig{font-family:'Dancing Script',cursive;font-size:2.2rem;color:var(--wine);margin-top:8px;}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:10px;}
.fact{background:var(--warm-white);border:1px solid var(--cream-deep);border-radius:14px;padding:24px;text-align:center;}
.fact strong{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-size:2.3rem;color:var(--wine);}
.fact span{font-size:.85rem;color:var(--muted);}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.step{text-align:center;padding:0 8px;}
.step .num{width:54px;height:54px;border-radius:50%;background:var(--wine);color:#fff;font-family:'Cormorant Garamond',Georgia,serif;font-size:1.5rem;font-weight:600;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}
.step h3{font-size:1.3rem;margin-bottom:6px;}
.step p{font-size:.9rem;color:var(--muted);}

/* ---------- faq ---------- */
.faq-list{max-width:780px;margin:0 auto;}
.faq-item{background:var(--warm-white);border:1px solid var(--cream-deep);border-radius:14px;margin-bottom:14px;overflow:hidden;}
.faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:20px 24px;font-family:'Cormorant Garamond',Georgia,serif;font-size:1.3rem;font-weight:600;color:var(--wine-deep);display:flex;justify-content:space-between;align-items:center;gap:16px;}
.faq-q .plus{font-size:1.5rem;color:var(--gold);transition:transform .25s;flex:none;}
.faq-item.open .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.faq-a p{padding:0 24px 20px;color:var(--muted);font-size:.96rem;}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px;}
.contact-info .ci-row{display:flex;gap:14px;align-items:flex-start;margin-bottom:22px;}
.contact-info .ci-ic{width:46px;height:46px;border-radius:50%;background:var(--blush-soft);flex:none;display:flex;align-items:center;justify-content:center;}
.contact-info .ci-ic svg{width:21px;height:21px;}
.contact-info h3{font-size:1.25rem;margin-bottom:2px;}
.contact-info .ci-row p,.contact-info .ci-row a{font-size:.95rem;color:var(--muted);}
.contact-info .ci-row a:hover{color:var(--wine);}
.form{background:var(--warm-white);border:1px solid var(--cream-deep);border-radius:18px;padding:32px;}
.form h2{font-size:1.7rem;margin-bottom:16px;}
.form label{display:block;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-bottom:6px;color:var(--ink);}
.form .field{margin-bottom:18px;}
.form input,.form select,.form textarea{
  width:100%;padding:12px 14px;border:1px solid var(--cream-deep);border-radius:10px;
  font-family:'Nunito Sans',sans-serif;font-size:.95rem;background:var(--cream);color:var(--ink);
}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--blush);}
.form .btn{width:100%;text-align:center;color:#fff;}
.form-note{font-size:.82rem;color:var(--muted);margin-top:12px;text-align:center;}
.local-note{display:none;background:var(--sage-soft);border:1px solid var(--sage);border-radius:10px;padding:12px;font-size:.85rem;color:var(--wine-deep);margin-top:14px;text-align:center;}

/* ---------- service-area map ---------- */
.map-figure{max-width:780px;margin:0 auto;background:var(--warm-white);border:1px solid var(--cream-deep);border-radius:18px;padding:16px;box-shadow:var(--shadow);}
.map-figure iframe{width:100%;height:430px;border:0;border-radius:10px;display:block;}
.map-areas{text-align:center;margin-top:22px;color:var(--muted);font-family:'Cormorant Garamond',Georgia,serif;font-size:1.18rem;font-style:italic;}

/* ---------- simple centered page (thank-you / 404) ---------- */
.center-page{min-height:62vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:70px 26px;}
.center-card{max-width:540px;}
.center-card .big-mark{font-size:3.4rem;margin-bottom:6px;}
.center-card h1{font-size:3rem;margin-bottom:14px;}
.center-card p{color:var(--muted);font-size:1.08rem;margin-bottom:24px;}

/* ---------- footer ---------- */
footer{background:var(--wine-deep);color:rgba(255,255,255,.8);padding:54px 0 26px;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:34px;padding-bottom:34px;border-bottom:1px solid rgba(255,255,255,.15);}
footer h4{color:#fff;font-size:1.4rem;margin-bottom:14px;}
footer .lt-main{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.5rem;color:#fff;}
footer .lt-sub{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--blush);margin-top:4px;}
footer p{font-size:.9rem;margin-top:10px;}
footer a{color:rgba(255,255,255,.8);font-size:.92rem;}
footer a:hover{color:#fff;}
footer ul{list-style:none;}
footer ul li{margin-bottom:8px;}
.foot-bottom{text-align:center;padding-top:22px;font-size:.82rem;color:rgba(255,255,255,.55);}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .hero-grid,.about-grid,.contact-grid{grid-template-columns:1fr;}
  .cards,.cards.three,.svc-grid,.rev-grid,.steps,.facts{grid-template-columns:1fr 1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .hero-copy h1{font-size:2.7rem;}
  .page-head h1{font-size:2.4rem;}
  .sec-head h2{font-size:2.2rem;}
  nav.links{
    display:none;position:absolute;top:74px;left:0;right:0;flex-direction:column;
    background:var(--cream);padding:14px 26px;border-bottom:1px solid var(--cream-deep);gap:2px;
  }
  nav.links.show{display:flex;}
  nav.links a{width:100%;}
  nav.links .btn{margin:8px 0 0;}
  .burger{display:block;}
  .hero-photo{order:-1;height:340px;border-radius:18px;}
  .about-photo{height:auto;max-width:420px;margin-left:auto;margin-right:auto;}
}
@media(max-width:560px){
  .cards,.cards.three,.svc-grid,.rev-grid,.steps,.facts{grid-template-columns:1fr;}
  .hero-copy h1{font-size:2.3rem;}
  section{padding:58px 0;}
}
