
:root{
  --bg:#0b0b0b; --surface:#111; --alt:#141414; --text:#f3f3f3; --muted:#b8c0cc;
  /* navbar / brand palette */
  --brand:#f5a637;
  --gold:#f5a637;
--nav-bg:#ffffff;
--nav-bg-scrolled:rgba(255,255,255,.98);


  --ring:0 0 0 .2rem rgba(215,183,122,.35);
  --radius:14px; --shadow:0 12px 28px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:0 16px}

h3 em{
  font-family: cursive;
}
h3{
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 400 !important;
}
/* header */
.header{
  position: sticky; top: 0; z-index: 50;
  background: var(--nav-bg);
  backdrop-filter: saturate(140%) blur(6px);
  border-bottom: 1px solid #e9e9e9;
  transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.header.scrolled{
  background: var(--nav-bg-scrolled);
  border-bottom-color:#e1e1e1;
  box-shadow: 0 8px 22px rgba(0,0,0,.08);
}
.header .navbar{ padding:12px 0; transition:padding .2s ease; }
.header.scrolled .navbar{ padding:8px 0; }


.navbar-brand.brand-center{ 
  color:#79064b;
  font-family: "Dancing Script", cursive;
  font-size:26px;
  font-weight:bold;
 }             

.navbar .nav-link{
  /* font-family: "Playfair Display", Georgia, serif; */
  color:#2b2b2b !important;
  letter-spacing:.08em; text-transform:uppercase; font-weight:600;
  padding:10px 12px; border-radius:999px; opacity:.9;
  transition: color .15s, background .15s, opacity .15s;
}
.navbar .nav-link:hover{
  opacity:1; color:#000 !important; background:#f2f2f2;
}

/* gold underline still works on white */
.navbar .nav-link::after{
  content:""; position:absolute; left:12px; right:12px; bottom:6px; height:2px;
  background:linear-gradient(90deg, transparent, var(--brand), transparent);
  opacity:0; transform:scaleX(.6); transition:opacity .2s, transform .2s;
}
.navbar .nav-link:hover::after{ opacity:1; transform:scaleX(1); }


@media (max-width: 992px){
  .navbar .navbar-nav.d-none.d-lg-flex { display: none !important; }
  /* .navbar-brand.brand-center{ font-size:1.15rem; } */
}

/* offcanvas mobile menu */
.offcanvas.text-bg-dark{
  background:#0e0e0e !important;
  border-bottom:1px solid #1a1a1a;
}
.offcanvas .nav-link{
  color:#e8e8e8 !important;
  letter-spacing:.08em; text-transform:uppercase; font-weight:800;
  padding:12px 14px; border-radius:10px;
}
.offcanvas .nav-link:hover{ background:#171717; }

.navbar-toggler{ border:1px solid #d0d0d0; }
.navbar-toggler:focus{ box-shadow: var(--ring); }
.navbar-toggler-icon{ filter:none; }  /* <- important */





/* HERO */
.hero{
  padding: 96px 0;
  min-height: 62vh;
  text-align: center;

  background:
    linear-gradient(180deg, rgba(11,11,11,.45) 0%, rgba(11,11,11,.65) 60%, rgba(11,11,11,.90) 100%),
    url("../assets/img/reiter4.JPG") center / cover no-repeat;

  /* box-shadow: inset 0 -60px 80px rgba(0,0,0,.35); */
}


.hero h1{
  font-size: clamp(28px, 6vw, 56px);
  line-height: 1.1;
  margin: 0 0 6px;
  text-shadow: 0 3px 14px rgba(0,0,0,.45);
}

.sub{
  font-size: clamp(18px, 2.5vw, 24px);
  /* color: var(--muted); */
  color:#f5a637;
  margin: 0 0 12px;
  text-shadow: 0 2px 12px rgba(0,0,0,.35);
}

/* tweak the crop on mobile if needed */
@media (max-width: 768px){
  .hero{
    padding: 78px 0;
    min-height: 56vh;
    background-position: 50% 35%;  /* nudge the image framing */
  }
}
/* small gold line above the hero title */
.eyebrow-hero{
  font-size: 24px;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-weight: 800;
  /* color: var(--brand); */
  color:#f5a637;
  margin: 0 0 12px;
}

/* big script option (optional) */
.logo-title{
  font-family: "Dancing Script", cursive;
  font-size: clamp(34px, 7vw, 72px);
  line-height: 1.05;
  margin: 0 0 10px;
  text-shadow: 0 3px 14px rgba(0,0,0,.45);
}

/* buttons row */
.hero-ctas{
  display: flex;
  gap: 22px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 22px;
}

/* outlined gold buttons */
.btn-outline{
  display: inline-block;
  padding: 14px 28px;
  /* border: 2px solid var(--brand); */
  border: 2px solid #f5a637;
  border-radius: 6px;
  background: transparent;
  color: #ffffff;
  font-weight: 800;
  letter-spacing: .10em;
  text-transform: uppercase;
  box-shadow: 0 1px 0 rgba(215,183,122,.25), inset 0 0 0 1px rgba(255,255,255,.04);
  transition: background .2s ease, color .2s ease, transform .04s ease, box-shadow .2s ease;
}
.btn-outline:hover{
  background: rgba(215,183,122,.12);
  box-shadow: 0 6px 20px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.06);
}
.btn-outline:active{ transform: translateY(1px); }

/* optional: if you use a big logo image instead of text */
.hero-logo{ max-width: 640px; width: 90%; margin: 0 auto 10px; display: block; }


/* === WELCOME SECTION === */
.section.light{ background:#f5f5f5; color:#262626; }
.section.light .muted{ color:#5b6068; }

.welcome .eyebrow{
  width:40px; height:4px; background:#79064b;
  border-radius:2px; margin:0 0 16px 4px;
}
.welcome-title{
  margin:0 0 14px;
  font-size:clamp(26px, 4vw, 40px);
  font-weight:700; letter-spacing:.02em;
}
.welcome-title em{
  font-family:"Playfair Display", Georgia, serif; /* classy italic for “Welcome” */
  font-style:italic; font-weight:700;
}
.welcome-body p{ margin:0 0 16px; color:#3a3f45; }
 

/* sections */
.section{padding:35px 0}
.section.alt{background:var(--alt)}
.lead{color:var(--muted)}

/* grids/cards */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:16px}
.card{background:#141414;border:1px solid #222;border-radius:var(--radius);padding:16px}

/* media */
.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:12px}

/* contact form */
form.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
input,textarea{width:100%;padding:10px 12px;border-radius:10px;border:1px solid #2a2a2a;background:#101010;color:var(--text)}
input:focus,textarea:focus{outline:2px solid transparent;box-shadow:var(--ring)}

/* footer */
.footer{border-top:1px solid #1a1a1a;background:#0a0a0a;padding:22px 0;}
.footer .inner{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.small{color:var(--muted);font-size:.95rem}

/* Center the brand between left/right nav on desktop */
@media (min-width: 992px){
  .navbar .container{ position: relative; }               /* positioning context */
  .navbar-brand.brand-center{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);                     /* perfect center */
    margin: 0;
  }
}
.service-link-card{
  display:block;
  color:inherit;
  text-decoration:none;
  transition:transform .18s ease, background .18s ease;
}

.service-link-card .container{
  border-radius:18px;
  transition:box-shadow .18s ease, transform .18s ease, background .18s ease;
}

.service-link-card:hover .container,
.service-link-card:focus-visible .container{
  box-shadow:0 12px 28px rgba(0,0,0,.08);
}

.service-link-card:hover .service-media,
.service-link-card:focus-visible .service-media{
  transform:translateY(-2px);
}

.service-link-card .service-media{
  transition:transform .18s ease, box-shadow .18s ease;
}

.service-link-card:focus-visible{
  outline:none;
}

.service-link-card:focus-visible .container{
  box-shadow:0 0 0 .2rem rgba(215,183,122,.35);
}

.service-inline-link{
  color:#79064b;
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:3px;
}

/* =========================
   SERVICES – single pattern
   aside | media | copy
   ========================= */

/* section base */
.section.service{ background:#fff; color:#222; }
.section.service .muted{ color:#6b7280; }
.section.service h3{ color:#111; margin:0 0 10px; }
.section.service p{ color:#3a3f45; }

/* little gold accent in the aside */
.service-aside .accent{
  width:40px; height:4px; background:#79064b;
  border-radius:2px; margin:0 0 14px;
}

/* fixed layout: aside | media | copy */
.service-grid{
  display:grid;
  grid-template-columns:
    minmax(160px, 1fr)      /* aside */
    minmax(260px, 420px)    /* media (keeps image smaller) */
    minmax(220px, 1fr);     /* copy */
  grid-template-areas: "aside media copy";
  column-gap:48px;
  align-items:start;        /* top align everything */
}

/* map areas */
.service-aside{ grid-area:aside; }
.service-copy { grid-area:copy; }

/* media card (the image box) */
.service-media{
  grid-area:media;
  position:relative;
  max-width:300px; width:100%;
  place-self:start;         /* top-left */
  background:#fff;
  border:1px solid #eee;
  border-radius:14px;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
  overflow:visible;         /* show the decorative blocks */
  z-index:1;
}
.section.service .service-media img{
  display:block; width:100%; height:auto; 
}

/* soft gray offset block + thin frame (bottom-right) */
.service-media::before{
  content:"";
  position:absolute; 
  right:-24px; 
  bottom:-24px;
  width:78%; 
  height:78%;
  /* background:#f4f5f6;  */
  border-radius:14px; 
  z-index:-2;
}
.service-media::after{
  content:"";
  position:absolute; 
  right:-18px; 
  bottom:-18px;
  width:103%; 
  height:103%;
  border:1px solid #ececec; 
  z-index:-1;
}

/* neutralize any .reverse rows so they look the same */
.section.service.reverse .service-grid{ grid-template-areas:"aside media copy"; }
.section.service.reverse .service-aside{ text-align:left; }
.section.service.reverse .service-aside .accent{ margin-left:0; }
.section.service.reverse .service-media{ place-self:start; }
.section.service.reverse .service-media::before{ right:-24px; left:auto; bottom:-24px; }
.section.service.reverse .service-media::after{ right:-18px; left:auto; bottom:-18px; }


/* photography gallery  */
/* mobile: stack media → copy → aside */
@media (max-width: 992px){
  .service-grid{
    grid-template-columns:1fr;
    grid-template-areas:
      "media"
      "copy"
      "aside";
    row-gap:18px; column-gap:0;
  }
  .service-media{ max-width:none; }
  .service-media::before,
  .service-media::after{ display:none; } /* cleaner on small screens */
}

/* Mobile order: aside → media → copy */
@media (max-width: 992px){
  .service-grid{
    grid-template-columns: 1fr;
    grid-template-areas:
      "aside"
      "media"
      "copy";
    row-gap: 18px;
  }

  /* full-width image on mobile */
  .service-media{ max-width: none; place-self: stretch; }
  .service-media::before,
  .service-media::after{ display: none; } /* cleaner on small screens */
}

/* Gallery */
/* Gallery */
.section.gallery .welcome-title {
  margin-bottom: 1rem;
}

#galleryCarousel {
  position: relative;
}

#galleryCarousel .carousel-inner {
  border-radius: 1rem;
  overflow: hidden;
}

/* Main gallery image */
#galleryCarousel .gallery-main-image {
  display: block;
  width: 100%;
  height: 520px;
  object-fit: contain;
  object-position: center;
  background: #111;
}

/* Arrow controls */
#galleryCarousel .carousel-control-prev,
#galleryCarousel .carousel-control-next {
  width: 56px;
}

#galleryCarousel .carousel-control-prev-icon,
#galleryCarousel .carousel-control-next-icon {
  background-color: rgba(0, 0, 0, 0.45);
  border-radius: 50%;
  padding: 1.25rem;
  background-size: 55% 55%;
}

/* Thumbnails */
#gallery .thumb {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  outline-offset: 2px;
  border-radius: .75rem;
  overflow: hidden;
}

#gallery .thumb img {
  width: 100%;
  height: 110px;
  object-fit: cover;
  border-radius: .75rem;
  opacity: .75;
  transition: transform .15s ease, opacity .15s ease, box-shadow .15s ease;
}

#gallery .thumb:hover img,
#gallery .thumb:focus img {
  opacity: .95;
  transform: scale(1.02);
}

#gallery .thumb.active img,
#gallery .thumb[aria-current="true"] img {
  opacity: 1;
  box-shadow: 0 0 0 .2rem rgba(0,0,0,.12);
}

/* Responsive tweaks */
@media (max-width: 992px) {
  #galleryCarousel .gallery-main-image {
    height: 420px;
  }

  #gallery .thumb img {
    height: 95px;
  }
}

@media (max-width: 768px) {
  #galleryCarousel .gallery-main-image {
    height: 300px;
  }

  #galleryCarousel .carousel-control-prev,
  #galleryCarousel .carousel-control-next {
    width: 44px;
  }

  #gallery .thumb img {
    height: 80px;
  }
}


/* =========================
   NOTARY PAGE
   ========================= */

.hero-notary{
  background:
   linear-gradient(180deg, rgba(11, 11, 11, .45) 0%, rgb(11 11 11 / 86%) 60%, rgba(11, 11, 11, .90) 100%), 
   url("../assets/img/reiter2.JPG") center / cover no-repeat
}

.notary-details{
  padding-top: 50px;
  padding-bottom: 50px;
}

.notary-cards{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:18px;
  margin-top:24px;
}

.notary-card{
  background:#ffffff;
  border:1px solid #ececec;
  border-radius:14px;
  padding:24px;
  box-shadow:0 10px 24px rgba(0,0,0,.06);
}

.notary-card h3{
  margin-bottom:10px;
  color:#111;
}

.notary-card p{
  margin:0;
  color:#4a4f56;
}

.faq-accordion{
  margin-top:24px;
}

.faq-accordion .accordion-item{
  border:1px solid #e9e9e9;
  border-radius:12px !important;
  overflow:hidden;
  margin-bottom:12px;
  box-shadow:0 8px 18px rgba(0,0,0,.04);
}

.faq-accordion .accordion-button{
  background:#fff;
  color:#222;
  font-weight:600;
  box-shadow:none !important;
}

.faq-accordion .accordion-button:not(.collapsed){
  background:#fff8ee;
  color:#111;
}

.faq-accordion .accordion-body{
  color:#4a4f56;
  background:#fff;
}

.notary-cta{
  background:#111;
  color:#f3f3f3;
}

.notary-cta-box{
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  padding:32px;
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:center;
  background:
    linear-gradient(135deg, rgba(245,166,55,.10), rgba(255,255,255,.03));
}

.notary-cta-box h2{
  margin:0 0 10px;
  font-family:"Playfair Display", Georgia, serif;
}

.notary-cta-box p{
  margin:0;
  color:#d8d8d8;
}

.notary-cta-eyebrow{
  font-size:.85rem;
  margin-bottom:10px;
}

.notary-cta-actions{
  flex-shrink:0;
}

.btn-dark-outline{
  color:#fff;
  border-color:#f5a637;
}

.btn-dark-outline:hover{
  background:rgba(245,166,55,.14);
  color:#fff;
}

@media (max-width: 768px){
  .notary-cta-box{
    padding:24px;
    flex-direction:column;
    align-items:flex-start;
  }
}

.notary-list{
  margin: 0;
  padding-left: 1.1rem;
}

.notary-list li{
  margin-bottom: 14px;
  color: #4a4f56;
}

.notary-list li:last-child{
  margin-bottom: 0;
}

.notary-list strong{
  color: #111;
}
/* =========================
   PHOTOGRAPHY PAGE
   ========================= */

.hero-photography{
  background:
    linear-gradient(180deg, rgba(11,11,11,.45) 0%, rgba(11,11,11,.65) 60%, rgba(11,11,11,.90) 100%),
    url("../assets/img/abchair.png") center 30% / cover no-repeat;
}

.photography-details{
  padding-top: 50px;
  padding-bottom: 50px;
}

/* =========================
   OFFICIANT PAGE
   ========================= */

.hero-officiant{
  background:
    linear-gradient(180deg, rgba(11,11,11,.45) 0%, rgba(11,11,11,.65) 60%, rgba(11,11,11,.90) 100%),
    url("../assets/img/weddaisle.jpg") center / cover no-repeat;
}

.officiant-details{
  padding-top: 50px;
  padding-bottom: 50px;
}
.officiant-gallery {
  padding-top: 50px;
  padding-bottom: 50px;
}
 
#officiantCarousel .gallery-main-image {
  display: block;
  width: 100%;
  height: 520px;
  object-fit: contain;
  object-position: center;
  background: #111;
}

.gallery-image-wrap{
  position: relative;
}

.photo-credit{
  position: absolute;
  right: 14px;
  bottom: 14px;
  display: inline-block;
  padding: 6px 10px;
  font-size: 0.8rem;
  line-height: 1;
  color: #fff;
  background: rgba(0,0,0,.55);
  border-radius: 999px;
  backdrop-filter: blur(3px);
}

.notary-price-list {
  background: #f8f7f2;
  text-align: center;
}

.price-list-subtitle {
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.78rem;
  color: #666;
  margin-top: -0.5rem;
  margin-bottom: 2rem;
}

.price-card-wrap {
  display: flex;
  justify-content: center;
}

.price-card {
  position: relative;
  background: #f8f7f2;
  border: 2px solid #1e1e1e;
  border-radius: 1.75rem;
  padding: 2rem 1.5rem;
  max-width: 500px;
  width: 100%;
  text-align: left;
  box-shadow: 8px 8px 0 #d9eef2;
}

.price-card-kicker {
  text-align: center;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.95rem;
  margin-bottom: 1.75rem;
}

.price-item {
  padding: 1rem 0;
  border-top: 2px solid #1e1e1e;
}

.price-item:first-of-type {
  border-top: none;
  padding-top: 0;
}

.price-item-top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
}

.price-item h3 {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.price-item span {
  font-size: 1.05rem;
  font-weight: 600;
}

.price-item p {
  margin: 0.45rem 0 0;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.92rem;
}

.price-item small {
  display: block;
  margin-top: 0.4rem;
  color: #666;
  font-size: 0.78rem;
  line-height: 1.4;
  text-transform: none;
  letter-spacing: normal;
}

.price-contact-row {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  align-items: center;
}

.price-contact-item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.95rem;
}

.price-contact-item a {
  color: #1e1e1e;
  text-decoration: none;
}

.price-contact-item a:hover {
  text-decoration: underline;
}

.price-icon {
  width: 2rem;
  height: 2rem;
  border: 1.5px solid #1e1e1e;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
  background: #fff;
}

@media (max-width: 576px) {
  .price-card {
    padding: 1.5rem 1.1rem;
    border-radius: 1.4rem;
  }

  .price-item h3 {
    font-size: 1.1rem;
  }

  .price-item span {
    font-size: 0.95rem;
  }
}