:root{
  --rose:#a55f6b;--rose-deep:#74424b;--rose-dark:#4d3035;--blush:#f3e4df;
  --cream:#fcf8f3;--paper:#fffdf9;--ink:#251e1c;--muted:#746966;
  --gold:#c4a46a;--line:rgba(37,30,28,.13);--shadow:0 22px 60px rgba(63,39,40,.16);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.7}img{display:block;max-width:100%}a{color:inherit}.container{width:min(1180px,calc(100% - 40px));margin:auto}.section{padding:110px 0}.skip-link{position:fixed;left:15px;top:-80px;background:#fff;color:#111;padding:12px 18px;z-index:9999;font-weight:700;text-decoration:none;box-shadow:var(--shadow)}.skip-link:focus{top:15px}.announcement{min-height:38px;padding:8px 24px;display:flex;align-items:center;justify-content:center;gap:25px;background:var(--rose-dark);color:#fff;text-transform:uppercase;letter-spacing:.12em;font-size:10px}.announcement a{font-weight:700}.site-header{height:86px;padding:0 max(24px,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100;background:rgba(252,248,243,.92);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;text-decoration:none}.brand-logo,.footer-logo{width:58px;height:58px;border-radius:50%;background:#fff;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(165,95,107,.28);box-shadow:0 8px 25px rgba(89,50,57,.11)}.brand-logo img,.footer-logo img{width:76px;max-width:none}.brand-copy{display:flex;flex-direction:column;line-height:1.05}.brand-copy strong{font-family:"Cormorant Garamond";font-size:20px}.brand-copy small{text-transform:uppercase;letter-spacing:.15em;font-size:8px;color:var(--rose)}.site-header nav{display:flex;align-items:center;gap:24px}.site-header nav>a{font-size:12px;font-weight:700;text-decoration:none}.nav-socials{display:flex;gap:6px}.nav-socials a{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(116,66,75,.28);text-decoration:none;font-size:10px;font-weight:700;color:var(--rose-deep)}.nav-socials a:hover{background:var(--rose-deep);color:#fff}.nav-cta{background:var(--rose);color:#fff;padding:11px 15px;border-radius:999px}.menu-toggle{display:none;border:0;background:none}.menu-toggle span{display:block;width:25px;height:2px;background:var(--ink);margin:5px}.hero{height:min(760px,calc(100vh - 124px));min-height:600px;position:relative;display:flex;align-items:center;overflow:hidden;color:#fff}.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(26,17,16,.79) 0%,rgba(31,20,19,.52) 47%,rgba(31,20,19,.12) 100%);z-index:1}.hero-content{position:relative;z-index:2}.hero-content>*{max-width:760px}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:10px;font-weight:700;color:var(--rose)}.eyebrow.light{color:#f1d7d1}.hero h1,.section h2{font-family:"Cormorant Garamond";font-size:clamp(58px,7vw,98px);line-height:.92;margin:20px 0;font-weight:600}.hero h1 em{font-weight:500;color:#f3d9d2}.hero p{font-size:18px;max-width:610px;color:rgba(255,255,255,.77)}.hero-actions{display:flex;gap:12px;margin-top:33px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;padding:15px 21px;border:1px solid transparent;text-decoration:none;font-weight:700;font-size:12px;cursor:pointer}.btn-primary{background:var(--rose);color:#fff}.btn-primary:hover{background:var(--rose-deep)}.btn-light{border-color:rgba(255,255,255,.54);color:#fff;background:rgba(255,255,255,.08)}.scroll-cue{position:absolute;z-index:2;right:35px;bottom:28px;text-decoration:none;color:#fff;text-transform:uppercase;letter-spacing:.13em;font-size:9px;display:flex;align-items:center;gap:10px}.scroll-cue i{display:block;width:48px;height:1px;background:#fff}.ethos-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:90px;align-items:center}.ethos-media{position:relative;padding:0 28px 30px 0}.image-frame{background:#fff;padding:12px;box-shadow:var(--shadow)}.image-frame img{width:100%;height:600px;object-fit:cover}.experience-badge{position:absolute;right:0;bottom:0;width:155px;height:155px;border-radius:50%;background:var(--rose-deep);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:var(--shadow)}.experience-badge strong{font-family:"Cormorant Garamond";font-size:48px;line-height:1}.experience-badge span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;max-width:90px}.ethos-copy h2,.section-heading h2,.contact-copy h2,.social-panel h2{font-size:clamp(46px,5.2vw,72px)}.ethos-copy p{color:var(--muted)}.ethos-copy .lead{font-family:"Cormorant Garamond";font-size:25px;line-height:1.3;color:var(--rose-deep)}.text-link{display:inline-flex;gap:16px;margin-top:14px;text-decoration:none;font-weight:700;border-bottom:1px solid var(--rose);padding-bottom:6px}.values-strip{background:var(--rose-deep);color:#fff;padding:34px 0}.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}.values-grid div{display:grid;grid-template-columns:45px 1fr;column-gap:14px}.values-grid span{grid-row:1/3;font-family:"Cormorant Garamond";font-size:37px;color:#e2bdb5}.values-grid strong{font-family:"Cormorant Garamond";font-size:23px}.values-grid small{color:rgba(255,255,255,.62)}.services{background:#f1e4df}.section-heading{max-width:810px;margin-bottom:48px}.section-heading p{color:var(--muted);max-width:670px}.packages{display:grid;grid-template-columns:1fr 1fr;gap:18px}.package-card{background:rgba(255,255,255,.82);border:1px solid rgba(116,66,75,.13);padding:34px;position:relative;display:flex;flex-direction:column;min-height:570px;transition:.25s}.package-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.package-card.featured{background:var(--rose-deep);color:#fff}.popular{position:absolute;right:20px;top:0;transform:translateY(-50%);background:var(--gold);color:#fff;padding:7px 12px;text-transform:uppercase;letter-spacing:.12em;font-size:9px;font-weight:700}.package-top{display:flex;align-items:flex-start;justify-content:space-between}.package-number{font-family:"Cormorant Garamond";font-size:52px;color:rgba(165,95,107,.28)}.featured .package-number{color:rgba(255,255,255,.18)}.package-top div{text-align:right}.package-top small,.package-top strong{display:block}.package-top small{text-transform:uppercase;letter-spacing:.12em;font-size:9px;color:var(--muted)}.featured .package-top small{color:rgba(255,255,255,.55)}.package-top strong{font-family:"Cormorant Garamond";font-size:33px;color:var(--rose)}.featured .package-top strong{color:#efd1c9}.package-card h3{font-family:"Cormorant Garamond";font-size:38px;line-height:1;margin:28px 0 13px}.package-card>p{color:var(--muted)}.featured>p{color:rgba(255,255,255,.64)}.package-card ul{padding-left:0;list-style:none;margin:20px 0}.package-card li{padding:9px 0 9px 24px;border-bottom:1px solid rgba(37,30,28,.09);font-size:13px;position:relative}.featured li{border-color:rgba(255,255,255,.12)}.package-card li:before{content:"";position:absolute;left:0;top:17px;width:8px;height:8px;border-radius:50%;border:1px solid var(--rose)}.featured li:before{border-color:#eac7be}.package-card>a{margin-top:auto;font-weight:700;text-decoration:none;color:var(--rose-deep)}.featured>a{color:#fff}.package-note{font-size:10px!important;font-style:italic}.elopement{grid-column:1/-1;display:grid;grid-template-columns:.95fr 1.05fr;padding:0;min-height:auto}.elopement-image img{width:100%;height:100%;min-height:560px;object-fit:cover}.elopement-content{padding:42px;display:flex;flex-direction:column}.elopement-content>a{margin-top:auto;font-weight:700;text-decoration:none;color:var(--rose-deep)}.gallery-section{background:#241a18;color:#fff}.section-heading.centered{text-align:center;margin:0 auto 45px}.gallery-section .eyebrow{color:#e8c6be}.gallery-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:295px 295px;gap:12px}.gallery-grid figure{margin:0;position:relative;overflow:hidden}.gallery-grid figure.large{grid-row:1/3}.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:.45s}.gallery-grid figure:hover img{transform:scale(1.04)}.gallery-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 18px 15px;background:linear-gradient(transparent,rgba(0,0,0,.68));font-size:11px}.social-section{padding:95px 0;background:linear-gradient(135deg,var(--rose-deep),#3b282b);color:#fff}.social-panel{display:grid;grid-template-columns:.75fr 1.25fr;gap:75px;align-items:center}.social-panel h2{margin:16px 0 0;line-height:1}.social-cards{display:grid;gap:10px}.social-cards>a{display:grid;grid-template-columns:48px 1fr auto;gap:15px;align-items:center;padding:17px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);text-decoration:none}.social-cards>a:hover{background:rgba(255,255,255,.12)}.social-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--rose-deep);font-weight:700;font-size:12px}.social-cards strong,.social-cards small{display:block}.social-cards strong{font-family:"Cormorant Garamond";font-size:22px}.social-cards small{color:rgba(255,255,255,.58)}.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px}.contact-copy p{color:var(--muted)}.contact-copy a{font-weight:700}.contact-details{display:grid;gap:13px;margin-top:32px}.contact-details div{padding:13px 0;border-bottom:1px solid var(--line)}.contact-details small,.contact-details strong,.contact-details a{display:block}.contact-details small{text-transform:uppercase;letter-spacing:.13em;font-size:9px;color:var(--rose)}.contact-form{background:#fff;padding:38px;border:1px solid var(--line);box-shadow:var(--shadow)}.form-heading span{text-transform:uppercase;letter-spacing:.15em;font-size:9px;color:var(--rose);font-weight:700}.form-heading h3{font-family:"Cormorant Garamond";font-size:35px;margin:4px 0 25px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.contact-form label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-bottom:16px}.contact-form label em{font-style:normal;color:var(--muted);font-weight:400}.contact-form input,.contact-form select,.contact-form textarea{display:block;width:100%;margin-top:7px;padding:13px;border:1px solid rgba(37,30,28,.18);background:#fffdf9;font:inherit;text-transform:none;letter-spacing:0}.submit-btn{width:100%}.footer{padding:70px 0 25px;background:#201718;color:#fff}.footer-grid{display:grid;grid-template-columns:1.35fr .65fr 1fr .7fr;gap:45px}.footer-brand{display:grid;grid-template-columns:76px 1fr;gap:18px;align-items:start}.footer-logo{width:72px;height:72px;background:#fff}.footer-logo img{width:92px}.footer-brand p{margin:0;color:rgba(255,255,255,.6);font-size:13px}.footer h4{font-family:"Cormorant Garamond";font-size:22px;margin-top:0}.footer a,.footer span{display:block;text-decoration:none;color:rgba(255,255,255,.62);font-size:12px;margin:8px 0}.footer-bottom{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:18px;margin-top:24px;display:flex;justify-content:space-between}.footer-bottom span,.footer-bottom a{margin:0}.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,30px);opacity:0;background:var(--rose-dark);color:#fff;padding:13px 20px;z-index:300;transition:.3s}.toast.show{opacity:1;transform:translate(-50%,0)}.reveal{opacity:0;transform:translateY(24px);transition:.7s}.reveal.visible{opacity:1;transform:none}
@media(max-width:980px){.site-header nav{position:absolute;left:0;right:0;top:86px;background:var(--cream);padding:25px;display:none;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.site-header nav.open{display:flex}.menu-toggle{display:block}.nav-socials{margin-top:5px}.ethos-grid,.contact-grid,.social-panel{grid-template-columns:1fr}.packages{grid-template-columns:1fr}.elopement{grid-column:auto}.values-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-grid figure.large{grid-row:auto}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:640px){.announcement{display:none}.site-header{height:74px;padding:0 14px}.site-header nav{top:74px}.brand-logo{width:48px;height:48px}.brand-copy strong{font-size:17px}.brand-copy small{display:none}.hero{height:680px}.hero-overlay{background:rgba(28,18,17,.63)}.hero h1{font-size:55px}.hero-actions{flex-direction:column;align-items:stretch}.scroll-cue{display:none}.section{padding:78px 0}.container{width:min(100% - 26px,1180px)}.ethos-media{padding-right:12px}.image-frame img{height:430px}.experience-badge{width:125px;height:125px}.experience-badge strong{font-size:40px}.package-card{padding:26px;min-height:auto}.elopement{display:block;padding:0}.elopement-image img{min-height:0;height:360px}.elopement-content{padding:26px}.gallery-grid{display:grid;grid-template-columns:1fr;grid-template-rows:none}.gallery-grid figure img{height:320px}.form-row{grid-template-columns:1fr}.contact-form{padding:25px}.footer-grid{grid-template-columns:1fr}.footer-brand{grid-column:auto}.footer-bottom{display:block}}


/* Final navigation and social button refinements */
.site-header {
  top: 0;
}

.nav-call {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 18px;
  border-radius: 999px;
  background: var(--rose-deep);
  color: #fff;
  text-decoration: none;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  box-shadow: 0 8px 22px rgba(77,48,53,.18);
  transition: transform .2s ease, background .2s ease;
}

.nav-call:hover {
  transform: translateY(-2px);
  background: var(--rose-dark);
}

.nav-cta.secondary {
  background: transparent;
  color: var(--rose-deep);
  border: 1px solid rgba(116,66,75,.3);
}

.nav-cta.secondary:hover {
  background: var(--blush);
}

.footer-social {
  min-width: 200px;
}

.footer-social-btn {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 13px;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.05);
  color: #fff !important;
  margin: 9px 0 !important;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}

.footer-social-btn:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,.11);
  border-color: rgba(255,255,255,.3);
}

.footer-social-btn span {
  color: #fff !important;
  margin: 0 !important;
}

.footer-social-btn b {
  color: #e8c6be;
  font-size: 14px;
}

@media(max-width:980px){
  .site-header nav .nav-call,
  .site-header nav .nav-cta.secondary {
    width: 100%;
    text-align: center;
  }
}


/* Balanced service card sizing */
.packages,
.service-grid,
.services-grid {
  align-items: stretch;
}

.package-card,
.service-card {
  min-height: 430px !important;
  padding: 26px !important;
}

.package-card h3,
.service-card h3 {
  font-size: clamp(29px, 2.7vw, 35px) !important;
  margin-top: 18px !important;
  margin-bottom: 10px !important;
  line-height: 1.06 !important;
}

.package-card > p,
.service-card > p {
  margin-top: 0 !important;
  margin-bottom: 12px !important;
  line-height: 1.58 !important;
}

.package-card ul,
.service-card ul {
  margin-top: 12px !important;
  margin-bottom: 17px !important;
}

.package-card li,
.service-card li {
  padding-top: 6px !important;
  padding-bottom: 6px !important;
  line-height: 1.42 !important;
}

.package-card .package-top strong {
  font-size: 28px !important;
}

.package-card.elopement,
.service-card.wide {
  min-height: auto !important;
}

.elopement-content {
  padding: 30px !important;
}

/* Google Maps section */
.rustic-map-section {
  padding: 96px 0;
  background: #f7f1eb;
}

.rustic-map-container {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: .74fr 1.26fr;
  gap: 54px;
  align-items: center;
}

.rustic-map-eyebrow {
  display: inline-block;
  margin-bottom: 12px;
  color: #9b5965;
  text-transform: uppercase;
  letter-spacing: .15em;
  font-size: 10px;
  font-weight: 700;
}

.rustic-map-copy h2 {
  margin: 0 0 18px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(42px, 5vw, 66px);
  line-height: 1;
  font-weight: 600;
  color: #2a2220;
}

.rustic-map-copy p {
  color: #736765;
  margin: 0 0 25px;
}

.rustic-map-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.rustic-map-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 14px 19px;
  border-radius: 999px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  transition: transform .2s ease, background .2s ease;
}

.rustic-map-btn:hover {
  transform: translateY(-2px);
}

.rustic-map-btn.primary {
  background: #9b5965;
  color: #fff;
}

.rustic-map-btn.primary:hover {
  background: #74424b;
}

.rustic-map-btn.secondary {
  background: rgba(255,255,255,.68);
  color: #463936;
  border: 1px solid rgba(42,34,32,.2);
}

.rustic-map-frame {
  background: #fff;
  padding: 10px;
  border-radius: 22px;
  box-shadow: 0 22px 58px rgba(70, 48, 49, .15);
}

.rustic-map-frame iframe {
  display: block;
  width: 100%;
  height: 470px;
  border: 0;
  border-radius: 14px;
}

@media (max-width: 900px) {
  .rustic-map-container {
    grid-template-columns: 1fr;
  }

  .package-card,
  .service-card {
    min-height: 390px !important;
  }

  .rustic-map-frame iframe {
    height: 390px;
  }
}

@media (max-width: 640px) {
  .package-card,
  .service-card {
    min-height: auto !important;
    padding: 22px !important;
  }

  .package-card h3,
  .service-card h3 {
    font-size: 30px !important;
  }

  .elopement-content {
    padding: 23px !important;
  }

  .rustic-map-section {
    padding: 72px 0;
  }

  .rustic-map-container {
    width: min(100% - 26px, 1180px);
  }

  .rustic-map-actions {
    flex-direction: column;
  }

  .rustic-map-btn {
    width: 100%;
  }

  .rustic-map-frame iframe {
    height: 330px;
  }
}


/* Rustic Rose running service text */
.rustic-running-text {
  overflow: hidden;
  width: 100%;
  background: #8d4f5a;
  color: #fff;
  border-top: 1px solid rgba(255,255,255,.13);
  border-bottom: 1px solid rgba(255,255,255,.13);
  padding: 13px 0;
}

.rustic-running-track {
  display: flex;
  align-items: center;
  gap: 26px;
  width: max-content;
  white-space: nowrap;
  animation: rusticMarquee 32s linear infinite;
  will-change: transform;
}

.rustic-running-track span {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.rustic-running-track b {
  color: #e4c9a2;
  font-size: 10px;
  font-weight: 400;
}

.rustic-running-text:hover .rustic-running-track {
  animation-play-state: paused;
}

@keyframes rusticMarquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .rustic-running-track {
    animation: none;
    flex-wrap: wrap;
    width: auto;
    justify-content: center;
    padding: 0 18px;
    white-space: normal;
  }
}

@media (max-width: 640px) {
  .rustic-running-text {
    padding: 11px 0;
  }

  .rustic-running-track {
    gap: 20px;
    animation-duration: 26s;
  }

  .rustic-running-track span {
    font-size: 10px;
  }
}

/* Elegant bride-and-groom aisle animation in the hero */
.wedding-walk {
  position: absolute;
  z-index: 2;
  right: 13%;
  bottom: 14%;
  width: 106px;
  height: 158px;
  pointer-events: none;
  filter: drop-shadow(0 8px 12px rgba(20, 12, 11, .28));
  animation: coupleAisleWalk 15s ease-in-out infinite;
  transform-origin: 50% 100%;
}

.wedding-couple {
  position: absolute;
  inset: 0;
  animation: coupleStep 1.05s ease-in-out infinite alternate;
}

.wedding-couple svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.bride-figure {
  transform-origin: 54px 190px;
  animation: dressSway 1.45s ease-in-out infinite alternate;
}

.groom-figure {
  transform-origin: 96px 194px;
  animation: groomSway 1.05s ease-in-out infinite alternate;
}

.walk-shadow {
  position: absolute;
  left: 14px;
  right: 5px;
  bottom: -4px;
  height: 11px;
  border-radius: 50%;
  background: rgba(25, 16, 15, .27);
  filter: blur(4px);
  animation: shadowPulse 1.05s ease-in-out infinite alternate;
}

.petal {
  position: absolute;
  color: rgba(246, 219, 216, .9);
  font-size: 8px;
  text-shadow: 0 1px 4px rgba(52, 30, 27, .35);
  animation: petalFloat 4s linear infinite;
}

.petal-one { left: 5px; top: 25px; animation-delay: 0s; }
.petal-two { right: 4px; top: 58px; animation-delay: 1.25s; }
.petal-three { left: 35px; top: 4px; animation-delay: 2.35s; }

@keyframes coupleAisleWalk {
  0%, 8% { transform: translate(44px, 15px) scale(.72); opacity: 0; }
  14% { opacity: .95; }
  48% { transform: translate(2px, 0) scale(.89); opacity: .98; }
  82% { transform: translate(-42px, -8px) scale(1.02); opacity: .98; }
  92%, 100% { transform: translate(-55px, -10px) scale(1.06); opacity: 0; }
}

@keyframes coupleStep {
  from { transform: translateY(0) rotate(-.35deg); }
  to { transform: translateY(-4px) rotate(.35deg); }
}

@keyframes dressSway {
  from { transform: rotate(-1.2deg) skewX(-.7deg); }
  to { transform: rotate(1.2deg) skewX(.7deg); }
}

@keyframes groomSway {
  from { transform: rotate(.5deg); }
  to { transform: rotate(-.5deg); }
}

@keyframes shadowPulse {
  from { transform: scaleX(.9); opacity: .22; }
  to { transform: scaleX(1.08); opacity: .34; }
}

@keyframes petalFloat {
  0% { transform: translate(0, -8px) rotate(0); opacity: 0; }
  18% { opacity: .85; }
  100% { transform: translate(-18px, 72px) rotate(210deg); opacity: 0; }
}

@media (max-width: 900px) {
  .wedding-walk {
    right: 7%;
    bottom: 13%;
    width: 84px;
    height: 126px;
    opacity: .86;
  }
}

@media (max-width: 640px) {
  .wedding-walk {
    right: 2%;
    bottom: 18%;
    width: 66px;
    height: 99px;
    opacity: .72;
  }
}

@media (prefers-reduced-motion: reduce) {
  .wedding-walk,
  .wedding-couple,
  .bride-figure,
  .groom-figure,
  .walk-shadow,
  .petal {
    animation: none !important;
  }
  .wedding-walk {
    transform: scale(.9);
    opacity: .8;
  }
}

/* Enhanced hero wedding animation: larger and more visible */
.wedding-walk {
  right: 8%;
  bottom: 8%;
  width: 220px;
  height: 310px;
  z-index: 3;
  filter:
    drop-shadow(0 18px 24px rgba(22, 12, 11, .42))
    drop-shadow(0 0 15px rgba(255, 225, 181, .48));
}

.wedding-walk::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 48%;
  width: 270px;
  height: 320px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle,
    rgba(255, 235, 199, .34) 0%,
    rgba(239, 186, 130, .18) 38%,
    rgba(255, 255, 255, 0) 72%);
  filter: blur(8px);
  animation: weddingGlow 2.8s ease-in-out infinite alternate;
  pointer-events: none;
}

.wedding-couple {
  z-index: 2;
}

.walk-shadow {
  left: 30px;
  right: 18px;
  bottom: -3px;
  height: 20px;
  background: rgba(21, 12, 11, .4);
  filter: blur(7px);
}

.petal {
  z-index: 3;
  font-size: 14px;
  color: rgba(255, 231, 224, .98);
  text-shadow: 0 0 8px rgba(255, 225, 199, .85), 0 2px 5px rgba(52, 30, 27, .45);
}

@keyframes weddingGlow {
  from { opacity: .62; transform: translate(-50%, -50%) scale(.92); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1.08); }
}

@keyframes coupleAisleWalk {
  0%, 7% { transform: translate(58px, 18px) scale(.78); opacity: 0; }
  13% { opacity: 1; }
  48% { transform: translate(4px, 0) scale(.94); opacity: 1; }
  82% { transform: translate(-62px, -12px) scale(1.08); opacity: 1; }
  93%, 100% { transform: translate(-78px, -16px) scale(1.14); opacity: 0; }
}

@media (max-width: 1100px) {
  .wedding-walk {
    right: 3%;
    bottom: 9%;
    width: 180px;
    height: 255px;
  }
}

@media (max-width: 900px) {
  .wedding-walk {
    right: 1%;
    bottom: 12%;
    width: 145px;
    height: 205px;
    opacity: .95;
  }

  .wedding-walk::before {
    width: 190px;
    height: 235px;
  }
}

@media (max-width: 640px) {
  .wedding-walk {
    right: -3%;
    bottom: 20%;
    width: 105px;
    height: 150px;
    opacity: .9;
  }

  .wedding-walk::before {
    width: 145px;
    height: 180px;
  }

  .petal { font-size: 10px; }
}

/* Centered wedding feature panel — highlighted but still transparent */
.wedding-walk {
  left: 74%;
  right: auto;
  top: 55%;
  bottom: auto;
  width: 220px;
  height: 310px;
  padding: 22px 26px 18px;
  box-sizing: content-box;
  border: 1px solid rgba(255, 234, 211, .52);
  border-radius: 34px;
  background: linear-gradient(145deg,
    rgba(255, 250, 244, .20),
    rgba(255, 236, 218, .10));
  box-shadow:
    0 22px 55px rgba(31, 16, 14, .30),
    inset 0 1px 0 rgba(255, 255, 255, .42),
    0 0 34px rgba(255, 220, 176, .24);
  backdrop-filter: blur(9px) saturate(1.12);
  -webkit-backdrop-filter: blur(9px) saturate(1.12);
  filter: drop-shadow(0 14px 20px rgba(22, 12, 11, .32));
  animation: centeredWeddingFloat 4.5s ease-in-out infinite alternate;
  transform: translate(-50%, -50%);
  overflow: visible;
}

.wedding-walk::before {
  content: "";
  position: absolute;
  inset: 10px;
  width: auto;
  height: auto;
  transform: none;
  border-radius: 26px;
  background: radial-gradient(circle at 50% 42%,
    rgba(255, 239, 211, .48) 0%,
    rgba(237, 184, 130, .18) 42%,
    rgba(255, 255, 255, 0) 76%);
  filter: blur(5px);
  animation: weddingGlowCentered 3s ease-in-out infinite alternate;
  pointer-events: none;
}

.wedding-walk::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -52px;
  width: 210px;
  height: 300px;
  transform: translateX(-50%);
  background: linear-gradient(to bottom,
    rgba(255, 235, 202, .30),
    rgba(255, 226, 188, .10) 58%,
    transparent 100%);
  clip-path: polygon(37% 0, 63% 0, 100% 100%, 0 100%);
  filter: blur(11px);
  opacity: .72;
  pointer-events: none;
}

.wedding-couple {
  left: 26px;
  right: 26px;
  top: 22px;
  bottom: 18px;
}

.petal-one { left: 18px; top: 36px; }
.petal-two { right: 18px; top: 88px; }
.petal-three { left: 70px; top: 14px; }

@keyframes centeredWeddingFloat {
  from { transform: translate(-50%, -50%) translateY(0); }
  to { transform: translate(-50%, -50%) translateY(-8px); }
}

@keyframes weddingGlowCentered {
  from { opacity: .65; transform: scale(.96); }
  to { opacity: 1; transform: scale(1.04); }
}

@media (max-width: 1100px) {
  .wedding-walk {
    left: 76%;
    top: 56%;
    width: 180px;
    height: 255px;
    padding: 18px 22px 15px;
    border-radius: 28px;
  }
  .wedding-walk::after { width: 175px; height: 250px; }
}

@media (max-width: 900px) {
  .wedding-walk {
    left: 79%;
    top: 58%;
    width: 145px;
    height: 205px;
    padding: 15px 18px 13px;
    border-radius: 24px;
  }
  .wedding-couple { left: 18px; right: 18px; top: 15px; bottom: 13px; }
  .wedding-walk::after { width: 145px; height: 205px; top: -35px; }
}

@media (max-width: 640px) {
  .wedding-walk {
    left: 79%;
    top: 48%;
    width: 102px;
    height: 146px;
    padding: 12px 14px 10px;
    border-radius: 20px;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
  }
  .wedding-couple { left: 14px; right: 14px; top: 12px; bottom: 10px; }
  .wedding-walk::after { width: 105px; height: 155px; top: -25px; }
}

@media (prefers-reduced-motion: reduce) {
  .wedding-walk {
    animation: none !important;
    transform: translate(-50%, -50%) !important;
  }
}


/* Standalone services page */
.services-page-hero {
  position: relative;
  min-height: 62vh;
  display: grid;
  align-items: end;
  overflow: hidden;
  color: #fff;
  padding: 150px 0 76px;
}
.services-page-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.services-page-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(35,24,22,.82) 0%, rgba(58,39,37,.55) 52%, rgba(58,39,37,.22) 100%), linear-gradient(0deg, rgba(35,24,22,.52), transparent 60%);
}
.services-page-hero__content {
  position: relative;
  z-index: 1;
  max-width: 760px;
}
.services-page-hero h1 {
  max-width: 760px;
  margin: 14px 0 18px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(3rem, 6vw, 5.6rem);
  line-height: .94;
}
.services-page-hero p {
  max-width: 650px;
  margin: 0 0 28px;
  font-size: 1.08rem;
  line-height: 1.75;
  color: rgba(255,255,255,.88);
}
.site-header nav a[aria-current="page"] { color: var(--rose, #8d4f5a); }
@media (max-width: 700px) {
  .services-page-hero { min-height: 56vh; padding: 125px 0 58px; }
  .services-page-hero h1 { font-size: clamp(2.7rem, 13vw, 4.2rem); }
}


/* Premium booking, validation, accessibility, and responsive upgrades */
html{scroll-behavior:smooth}body{overflow-x:hidden}img{max-width:100%}button,input,select,textarea{border-radius:0}.site-header{backdrop-filter:saturate(130%) blur(14px);background:rgba(250,246,240,.94)}.site-header nav a:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(155,89,101,.32);outline-offset:3px}.contact-copy>p{margin-bottom:12px}.contact-form input,.contact-form select,.contact-form textarea{min-height:48px;border-radius:10px;transition:border-color .2s,box-shadow .2s,background .2s}.contact-form textarea{min-height:130px;resize:vertical}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--rose);box-shadow:0 0 0 4px rgba(155,89,101,.10);background:#fff}.contact-form .field-error{border-color:#a83b3b;background:#fff8f8}.form-heading p{margin:6px 0 20px;color:var(--muted);font-size:13px}.consent-row{display:flex!important;align-items:flex-start;gap:10px;font-size:12px!important;letter-spacing:0!important;text-transform:none!important}.consent-row input{width:18px!important;height:18px!important;min-height:0!important;margin:1px 0 0!important}.consent-row span{line-height:1.5}.form-status{min-height:20px;margin:4px 0 10px;color:#8d2929;font-size:13px}.form-status.success{color:#36613f}.form-fineprint{text-align:center;font-size:12px;color:var(--muted);margin:14px 0 0}.form-fineprint a{color:var(--rose-deep)}.booking-hero,.legal-hero{padding:170px 0 90px;background:linear-gradient(135deg,rgba(55,32,34,.96),rgba(116,66,75,.88)),url('images/ceremony-sunset.jpg') center/cover;color:#fff}.booking-hero h1,.legal-hero h1{font-size:clamp(48px,7vw,82px);line-height:.98;max-width:850px;margin:12px 0 20px}.booking-hero p{max-width:680px;color:rgba(255,255,255,.78);font-size:18px}.booking-section{background:linear-gradient(180deg,#fbf7f2,#f4ece5)}.booking-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:56px;align-items:start}.booking-aside{position:sticky;top:120px}.booking-aside h2{font-size:clamp(42px,5vw,62px);line-height:1}.steps{list-style:none;padding:0;margin:34px 0}.steps li{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}.steps b{color:var(--rose);font-size:12px}.steps span,.steps strong,.steps small{display:block}.steps strong{font-family:"Cormorant Garamond";font-size:24px}.steps small{margin-top:4px;color:var(--muted);line-height:1.5}.trust-card{padding:24px;border:1px solid rgba(155,89,101,.2);background:rgba(255,255,255,.58)}.trust-card strong,.trust-card span{display:block}.trust-card span{margin-top:6px;color:var(--muted);font-size:13px}.confirmation-page{min-height:100vh;display:grid;place-items:center;padding:120px 20px 70px;background:radial-gradient(circle at top left, rgba(165,95,107,.12) 0%, transparent 36%),radial-gradient(circle at bottom right, rgba(196,164,106,.12) 0%, transparent 28%),linear-gradient(135deg,#f7efe8,#eadbd4)}.confirmation-card{position:relative;width:min(760px,100%);padding:64px 42px;background:rgba(255,255,255,.96);border:1px solid rgba(116,66,75,.14);border-radius:32px;box-shadow:0 38px 110px rgba(76,47,51,.16);text-align:center;overflow:hidden}.confirmation-card::before{content:'';position:absolute;top:-30px;right:-30px;width:140px;height:140px;border-radius:50%;background:rgba(165,95,107,.08)}.confirmation-card h1{font-size:clamp(42px,6vw,70px);line-height:1.02;margin:18px 0 14px}.confirmation-card>p{color:var(--muted);max-width:620px;margin:0 auto 26px;font-size:1.02rem;line-height:1.7}.confirmation-mark{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 18px;border-radius:50%;background:var(--rose);color:#fff;font-size:30px;box-shadow:0 16px 30px rgba(165,95,107,.24)}.eyebrow{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:var(--rose-deep);margin-top:10px}.reference-box{display:inline-flex;flex-direction:column;align-items:center;gap:6px;padding:20px 34px;margin:18px auto 24px;border-radius:24px;border:1px solid rgba(165,95,107,.22);background:linear-gradient(180deg,rgba(255,253,249,.95),rgba(247,235,228,.95));box-shadow:inset 0 1px 0 rgba(255,255,255,.85)}.reference-box small,.reference-box strong{display:block}.reference-box small{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.reference-box strong{font-size:32px;font-weight:700;color:var(--rose-dark);margin-top:4px}.confirmation-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;background:var(--line);margin:10px 0 30px;text-align:left}.confirmation-details div{background:#fff;padding:22px;border-radius:18px;box-shadow:0 10px 30px rgba(76,47,51,.06)}.confirmation-details small,.confirmation-details strong{display:block}.confirmation-details small{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.confirmation-details strong{margin-top:8px;font-size:18px;color:var(--ink)}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:12px}.btn-outline{border:1px solid var(--rose-deep);color:var(--rose-deep);background:transparent;box-shadow:0 12px 28px rgba(165,95,107,.08);transition:transform .2s ease,background .2s ease,color .2s ease}.btn-outline:hover{background:rgba(245,235,232,.9);transform:translateY(-2px)}.demo-note{font-size:0.94rem!important;margin-top:26px!important;color:var(--muted);opacity:.9}.confirmation-card p.demo-note{max-width:520px;margin-left:auto;margin-right:auto}.confirmation-card .btn{min-width:200px}@media(max-width:640px){.confirmation-card{padding:40px 24px}.confirmation-details{grid-template-columns:1fr}.confirmation-card h1{font-size:clamp(32px,9vw,48px)}.reference-box{width:100%;padding:18px 22px}.hero-actions{flex-direction:column;align-items:stretch}.btn{width:100%;min-width:auto}}.legal-copy{max-width:820px}.legal-copy h2{font-size:38px;margin-top:36px}.legal-copy p{line-height:1.8;color:var(--muted)}.legal-copy a{color:var(--rose-deep)}@media(max-width:980px){.booking-layout{grid-template-columns:1fr}.booking-aside{position:static}.site-header nav{max-height:calc(100vh - 74px);overflow:auto}}@media(max-width:640px){.booking-hero,.legal-hero{padding:130px 0 70px}.booking-hero p{font-size:16px}.booking-layout{gap:34px}.confirmation-card{padding:38px 22px}.confirmation-details{grid-template-columns:1fr}.contact-form{border-radius:18px}.site-header nav a{font-size:15px;padding:10px 0}.hero{min-height:650px;height:auto;padding:120px 0 90px}.hero-content{padding-top:0}.hero h1{font-size:clamp(46px,14vw,58px)}.wedding-walk{transform:scale(.72);transform-origin:right bottom}.gallery-grid figure img{height:280px}.rustic-running-track{animation-duration:42s}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
.hp-field{position:absolute!important;left:-9999px!important;opacity:0!important}

.server-form-error{margin:0 0 18px;padding:13px 15px;border:1px solid #e7b9bf;border-radius:12px;background:#fff0f1;color:#9b2331;font-weight:600;font-size:.92rem}

/* Square logo system */
.brand-logo,.footer-logo{border-radius:14px!important;aspect-ratio:1/1;overflow:hidden;background:#fff;padding:5px}.brand-logo img,.footer-logo img{width:100%!important;height:100%!important;max-width:100%!important;object-fit:contain}.brand-logo{width:58px;height:58px}.footer-logo{width:76px;height:76px}@media(max-width:640px){.brand-logo{width:48px;height:48px}.footer-logo{width:68px;height:68px}}


/* Premium full-width testimonial slider */
.testimonials-section{position:relative;overflow:hidden;padding:110px 0;background:linear-gradient(135deg,#3a2226 0%,#6e3e47 55%,#9b5965 100%);color:#fff}
.testimonials-section:before,.testimonials-section:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%;width:430px;height:430px}
.testimonials-section:before{left:-210px;top:-180px}.testimonials-section:after{right:-230px;bottom:-240px}
.testimonials-inner{position:relative;z-index:1;width:min(100% - 40px,1100px);margin:auto;text-align:center}
.testimonial-heading{max-width:760px;margin:0 auto 38px}.testimonial-heading h2{color:#fff}.testimonial-heading p{color:rgba(255,255,255,.68);font-size:13px;line-height:1.7}
.testimonial-slider{position:relative;min-height:330px;display:grid;align-items:center;padding:15px 90px 55px}
.testimonial-track{position:relative;min-height:250px}
.testimonial-slide{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transform:translateX(45px);pointer-events:none;transition:opacity .65s ease,transform .65s ease}
.testimonial-slide.is-active{opacity:1;transform:translateX(0);pointer-events:auto}
.quote-mark{font-family:"Cormorant Garamond",serif;font-size:92px;line-height:.55;color:#dfb0b7;margin-bottom:18px}
.testimonial-slide blockquote{max-width:850px;margin:0;font-family:"Cormorant Garamond",serif;font-size:clamp(31px,4.1vw,54px);line-height:1.12;font-weight:500;letter-spacing:-.02em}
.testimonial-slide p{margin:25px 0 0;text-transform:uppercase;letter-spacing:.18em;font-size:11px;color:rgba(255,255,255,.7)}
.testimonial-arrow{position:absolute;top:48%;transform:translateY(-50%);width:48px;height:48px;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(255,255,255,.06);color:#fff;font-size:20px;cursor:pointer;transition:.25s}
.testimonial-arrow:hover{background:#fff;color:#6e3e47}.testimonial-arrow.prev{left:5px}.testimonial-arrow.next{right:5px}
.testimonial-dots{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);display:flex;gap:8px;flex-wrap:wrap;justify-content:center;max-width:280px}
.testimonial-dot{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.3);cursor:pointer;transition:.25s}.testimonial-dot.is-active{width:24px;border-radius:99px;background:#fff}
.gallery-grid figure.wide{grid-column:span 2}.gallery-grid figure img{transition:transform .65s ease,filter .4s ease}.gallery-grid figure:hover img{transform:scale(1.045);filter:saturate(1.08)}
@media(max-width:760px){.testimonials-section{padding:80px 0}.testimonial-slider{padding:10px 15px 60px;min-height:360px}.testimonial-track{min-height:280px}.testimonial-arrow{top:auto;bottom:5px}.testimonial-arrow.prev{left:15px}.testimonial-arrow.next{right:15px}.testimonial-slide blockquote{font-size:34px}.testimonial-heading p{font-size:12px}.gallery-grid figure.wide{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.testimonial-slide{transition:none}}


/* Testimonial autoplay visibility and responsive gallery viewer */
.testimonial-meta{position:absolute;left:50%;bottom:7px;transform:translateX(-50%);display:flex;align-items:center;gap:18px;width:min(100%,440px);justify-content:center}
.testimonial-counter{min-width:52px;font-size:10px;font-weight:700;letter-spacing:.16em;color:rgba(255,255,255,.72)}
.testimonial-dots{position:static!important;transform:none!important;max-width:300px!important}
.testimonial-progress{position:absolute;left:90px;right:90px;bottom:0;height:2px;background:rgba(255,255,255,.16);overflow:hidden}
.testimonial-progress-bar{display:block;width:100%;height:100%;background:#fff;transform-origin:left;transform:scaleX(0)}
@keyframes testimonialProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}

.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-template-rows:none!important;grid-auto-rows:285px!important;align-items:stretch}
.gallery-grid figure{min-width:0;min-height:0;border-radius:3px;cursor:zoom-in;background:#3b2b28;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.gallery-grid figure.large{grid-row:span 2!important}
.gallery-grid figure.wide{grid-column:span 2!important}
.gallery-grid img{display:block;width:100%!important;height:100%!important;min-height:100%;object-fit:cover;background:#493532}
.gallery-grid figure:focus-visible{outline:3px solid #f0cfc8;outline-offset:4px}
.gallery-grid figcaption{z-index:2}

body.lightbox-open{overflow:hidden}
.gallery-lightbox{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:55px 80px;background:rgba(18,12,12,.94);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}
.gallery-lightbox.is-open{opacity:1;visibility:visible}
.gallery-lightbox figure{margin:0;max-width:min(1100px,88vw);max-height:86vh;display:flex;flex-direction:column;align-items:center}
.gallery-lightbox img{max-width:100%;max-height:78vh;width:auto;height:auto;object-fit:contain;border-radius:4px;box-shadow:0 25px 80px rgba(0,0,0,.45)}
.gallery-lightbox figcaption{padding-top:14px;color:#fff;text-align:center;font-size:13px;letter-spacing:.04em}
.gallery-lightbox-close,.gallery-lightbox-arrow{position:absolute;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff;border-radius:50%;cursor:pointer;display:grid;place-items:center}
.gallery-lightbox-close{right:24px;top:22px;width:46px;height:46px;font-size:30px;line-height:1}
.gallery-lightbox-arrow{top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:20px}
.gallery-lightbox-arrow.prev{left:20px}.gallery-lightbox-arrow.next{right:20px}
.gallery-lightbox-close:hover,.gallery-lightbox-arrow:hover{background:#fff;color:#5f3740}

@media(max-width:900px){
 .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:260px!important}
 .gallery-grid figure.large{grid-row:span 1!important}
 .testimonial-progress{left:30px;right:30px}
}
@media(max-width:600px){
 .gallery-grid{grid-template-columns:1fr!important;grid-auto-rows:265px!important;gap:10px}
 .gallery-grid figure.wide{grid-column:auto!important}
 .gallery-grid figure.large{grid-row:auto!important}
 .gallery-grid figure img{height:100%!important}
 .testimonial-slider{min-height:390px!important;padding-left:8px!important;padding-right:8px!important}
 .testimonial-track{min-height:310px!important}
 .testimonial-slide blockquote{font-size:clamp(27px,8vw,34px)!important;line-height:1.16}
 .testimonial-meta{bottom:8px;gap:10px;width:calc(100% - 96px)}
 .testimonial-dots{gap:6px!important;max-width:190px!important}
 .testimonial-dot{width:6px!important;height:6px!important}
 .testimonial-dot.is-active{width:18px!important}
 .testimonial-progress{left:12px;right:12px}
 .gallery-lightbox{padding:70px 14px 80px}
 .gallery-lightbox figure{max-width:100%}
 .gallery-lightbox img{max-height:70vh}
 .gallery-lightbox-arrow{top:auto;bottom:18px;transform:none;width:44px;height:44px}
 .gallery-lightbox-arrow.prev{left:calc(50% - 55px)}.gallery-lightbox-arrow.next{right:calc(50% - 55px)}
 .gallery-lightbox-close{right:14px;top:14px}
}


/* Reliable testimonial controls and guaranteed-visible gallery */
.testimonials-section::before,
.testimonials-section::after{pointer-events:none!important}
.testimonial-slider{isolation:isolate}
.testimonial-track{z-index:1;pointer-events:none}
.testimonial-slide.is-active{pointer-events:auto}
.testimonial-arrow{
  z-index:30!important;
  pointer-events:auto!important;
  touch-action:manipulation;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
  display:flex!important;
  align-items:center;
  justify-content:center;
}
.testimonial-arrow:focus-visible{outline:3px solid #fff;outline-offset:4px}
.testimonial-meta,.testimonial-progress{z-index:20;pointer-events:auto}
.testimonial-progress{pointer-events:none}
.testimonial-dots{pointer-events:auto}
.testimonial-dot{pointer-events:auto!important;touch-action:manipulation}
.gallery-section{overflow:hidden}
.gallery-grid{display:grid!important;width:100%;visibility:visible!important;opacity:1!important}
.gallery-grid figure{display:block!important;position:relative!important;overflow:hidden!important;visibility:visible!important;opacity:1!important}
.gallery-grid figure img{visibility:visible!important;opacity:1!important;position:relative!important;z-index:1}
.gallery-grid figcaption{position:absolute!important;left:0;right:0;bottom:0;padding:48px 16px 15px;color:#fff;background:linear-gradient(transparent,rgba(24,15,14,.82));pointer-events:none}
@media(max-width:600px){
  .testimonial-arrow{width:50px!important;height:50px!important;background:#fff!important;color:#6e3e47!important;box-shadow:0 8px 24px rgba(0,0,0,.2)}
  .gallery-grid{display:grid!important;grid-template-columns:1fr!important;grid-auto-rows:auto!important}
  .gallery-grid figure{height:280px!important;min-height:280px!important}
}

/* Final independent testimonial control fix */
.testimonial-slider{position:relative!important;isolation:isolate!important}
.testimonial-track{position:relative!important;z-index:1!important;pointer-events:none!important}
.testimonial-slide{pointer-events:none!important}
.testimonial-slide.is-active{pointer-events:none!important}
.testimonial-arrow{
  position:absolute!important;
  z-index:999!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  cursor:pointer!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
.testimonial-arrow::before,.testimonial-arrow::after{pointer-events:none!important}
.testimonial-meta{z-index:50!important}
.testimonial-progress{z-index:40!important;pointer-events:none!important}
@media(max-width:760px){
  .testimonial-slider{padding-bottom:86px!important}
  .testimonial-arrow{top:auto!important;bottom:10px!important;transform:none!important}
  .testimonial-arrow.prev{left:18px!important}
  .testimonial-arrow.next{right:18px!important}
  .testimonial-meta{bottom:23px!important;width:calc(100% - 150px)!important}
}


/* Balanced gallery rows */
.gallery-grid{grid-auto-flow:row dense!important}
.gallery-grid figure:last-child{display:block!important;visibility:visible!important;opacity:1!important}
@media(min-width:901px){.gallery-grid figure:last-child{grid-column:auto!important}}


/* Premium burgundy-tinted Services hero */
.services-page-hero {
  background: #56353b;
}
.services-page-hero > img {
  filter: sepia(.18) saturate(.72) brightness(.62) contrast(1.04);
  transform: scale(1.015);
}
.services-page-hero__overlay {
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(67,37,43,.92) 0%, rgba(91,51,58,.82) 44%, rgba(111,68,75,.69) 100%),
    linear-gradient(180deg, rgba(54,29,34,.28) 0%, rgba(79,43,49,.50) 100%);
  box-shadow: inset 0 -80px 120px rgba(44,22,27,.18);
}
.services-page-hero__content {
  text-shadow: 0 3px 24px rgba(35,16,20,.28);
}
.services-page-hero .eyebrow.light {
  color: #f3ddd8;
}
@media (max-width: 640px) {
  .services-page-hero__overlay {
    background:
      linear-gradient(90deg, rgba(67,37,43,.94) 0%, rgba(91,51,58,.87) 70%, rgba(111,68,75,.77) 100%),
      linear-gradient(180deg, rgba(54,29,34,.32), rgba(79,43,49,.54));
  }
}

/* FINAL services hero rose overlay fix — keep this at end of file */
.services-page-hero{
  isolation:isolate;
  background:#6f454d!important;
}
.services-page-hero>img{
  z-index:0!important;
  filter:saturate(.72) brightness(.72) contrast(1.02)!important;
  transform:scale(1.02);
}
.services-page-hero__overlay{
  z-index:1!important;
  pointer-events:none;
  background:
    linear-gradient(90deg,
      rgba(64,31,38,.91) 0%,
      rgba(105,58,66,.84) 48%,
      rgba(132,79,87,.75) 100%),
    linear-gradient(180deg,
      rgba(56,28,34,.30) 0%,
      rgba(93,48,57,.48) 100%)!important;
  mix-blend-mode:multiply;
}
.services-page-hero__content{
  z-index:2!important;
}
@media(max-width:700px){
  .services-page-hero__overlay{
    background:
      linear-gradient(90deg,
        rgba(57,27,34,.94) 0%,
        rgba(100,53,62,.89) 65%,
        rgba(127,72,82,.80) 100%),
      linear-gradient(180deg,rgba(50,24,30,.34),rgba(86,42,51,.54))!important;
  }
}

/* Premium frontend administrator access modal */
.nav-admin-access{appearance:none;border:1px solid rgba(141,79,90,.28);background:#fff8f7;color:#713844;border-radius:999px;padding:.78rem 1.1rem;font:700 .82rem/1 "DM Sans",sans-serif;letter-spacing:.02em;cursor:pointer;transition:.22s ease;white-space:nowrap}.nav-admin-access:hover,.nav-admin-access:focus-visible{background:#8d4f5a;color:#fff;border-color:#8d4f5a;transform:translateY(-1px);box-shadow:0 10px 24px rgba(91,42,52,.18)}
.admin-access-modal{position:fixed;pointer-events:none;inset:0;z-index:9999;display:grid;place-items:center;padding:24px;opacity:0;visibility:hidden;transition:opacity .24s ease,visibility .24s ease}.admin-access-modal.is-open{opacity:1;visibility:visible;pointer-events:auto}.admin-access-backdrop{position:absolute;inset:0;background:rgba(28,12,17,.72);backdrop-filter:blur(10px)}.admin-access-dialog{position:relative;z-index:1;width:min(1060px,96vw);max-height:min(720px,92vh);display:grid;grid-template-columns:.95fr 1.05fr;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 34px 90px rgba(19,5,10,.42);transform:translateY(16px) scale(.985);transition:transform .28s ease}.admin-access-modal.is-open .admin-access-dialog{transform:none}.admin-access-close{position:absolute;top:16px;right:16px;z-index:4;width:42px;height:42px;border:1px solid rgba(92,45,56,.18);border-radius:50%;background:rgba(255,255,255,.9);color:#32171e;font-size:1.5rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:.2s}.admin-access-close:hover{background:#8d4f5a;color:#fff;transform:rotate(4deg)}
.admin-access-visual{position:relative;min-height:620px;background:#33151e;overflow:hidden}.admin-access-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.04)}.admin-access-visual-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,10,15,.25),rgba(34,10,17,.92)),linear-gradient(90deg,rgba(84,31,44,.42),rgba(44,14,22,.15))}.admin-access-visual-copy{position:absolute;inset:auto 46px 44px;color:#fff}.admin-access-visual-copy>span,.admin-access-kicker{display:block;text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;font-weight:800}.admin-access-visual-copy>span{color:#f0c7cd;margin-bottom:16px}.admin-access-visual-copy h2{font-family:"Cormorant Garamond",serif;font-size:clamp(2.4rem,4vw,4.5rem);line-height:.86;margin:0 0 18px}.admin-access-visual-copy p{max-width:430px;color:rgba(255,255,255,.82);line-height:1.65;margin:0 0 18px}.admin-access-visual-copy ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;font-size:.9rem;font-weight:700}.admin-access-visual-copy li::before{content:"✓";margin-right:9px;color:#efbdc6}
.admin-access-form-panel{padding:46px 54px 38px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,#fff 0%,#fffafa 55%,#f8efef 100%)}.admin-access-brand{width:92px;height:92px;border:1px solid rgba(141,79,90,.14);border-radius:50%;display:grid;place-items:center;background:#fff;box-shadow:0 12px 34px rgba(92,45,56,.1);margin-bottom:32px}.admin-access-brand img{width:72px;height:72px;object-fit:contain}.admin-access-kicker{color:#9b6772;margin-bottom:12px}.admin-access-form-panel>h2{font-family:"Cormorant Garamond",serif;font-size:clamp(2.8rem,5vw,4.3rem);line-height:.95;margin:0 0 12px;color:#2c161c}.admin-access-form-panel>p{margin:0 0 26px;color:#6c5d61;line-height:1.6;max-width:520px}.admin-access-form{display:grid;gap:17px}.admin-access-form>label:not(.admin-access-check){display:grid;gap:8px;font-size:.82rem;font-weight:800;color:#3d2b30}.admin-access-field{position:relative;display:block}.admin-access-field>svg{position:absolute;left:16px;top:50%;width:20px;height:20px;transform:translateY(-50%);fill:none;stroke:#7a6970;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.admin-access-field input{width:100%;height:56px;border:1px solid #d9cdcf;border-radius:12px;background:#fff;padding:0 52px 0 48px;font:600 .96rem "DM Sans",sans-serif;color:#24171a;outline:none;transition:.2s;box-sizing:border-box}.admin-access-field input:focus{border-color:#9d5365;box-shadow:0 0 0 4px rgba(157,83,101,.11)}.admin-access-eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:9px;background:transparent;color:#7c5962;display:grid;place-items:center;cursor:pointer}.admin-access-eye:hover{background:#f7e9ec;color:#8d354e}.admin-access-eye svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.admin-access-eye .eye-closed{display:none}.admin-access-eye[aria-pressed="true"] .eye-open{display:none}.admin-access-eye[aria-pressed="true"] .eye-closed{display:block}.admin-access-check{display:flex;align-items:center;gap:10px;font-size:.82rem;font-weight:700;color:#65565a;cursor:pointer}.admin-access-check input{width:17px;height:17px;accent-color:#8d4f5a}.admin-access-submit{height:56px;border:0;border-radius:12px;background:linear-gradient(135deg,#ad5a70,#76273f);color:#fff;padding:0 22px;font:800 .92rem "DM Sans",sans-serif;display:flex;justify-content:center;align-items:center;gap:14px;cursor:pointer;box-shadow:0 14px 30px rgba(118,39,63,.22);transition:.22s}.admin-access-submit:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(118,39,63,.3)}.admin-access-submit span{font-size:1.2rem}.admin-access-security{margin-top:22px;padding-top:20px;border-top:1px solid #e8dadd;display:flex;gap:10px;align-items:flex-start;color:#857478;font-size:.76rem;line-height:1.5}.admin-access-security p{margin:0}.admin-access-hp{position:absolute!important;left:-9999px!important}.admin-modal-open{overflow:hidden}
@media(max-width:900px){.admin-access-dialog{grid-template-columns:1fr;max-width:600px;overflow:auto}.admin-access-visual{min-height:230px}.admin-access-visual-copy{inset:auto 30px 26px}.admin-access-visual-copy h2{font-size:2.6rem}.admin-access-visual-copy p,.admin-access-visual-copy ul{display:none}.admin-access-form-panel{padding:34px 32px 30px}.admin-access-brand{width:72px;height:72px;margin-bottom:22px}.admin-access-brand img{width:58px;height:58px}}
@media(max-width:680px){.nav-admin-access{width:100%;text-align:center}.admin-access-modal{padding:10px}.admin-access-dialog{width:100%;max-height:96vh;border-radius:18px}.admin-access-visual{min-height:180px}.admin-access-visual-copy{inset:auto 22px 22px}.admin-access-visual-copy h2{font-size:2.15rem}.admin-access-form-panel{padding:28px 22px 24px}.admin-access-form-panel>h2{font-size:2.7rem}.admin-access-close{top:10px;right:10px}.admin-access-field input,.admin-access-submit{height:52px}}

/* Admin modal hard fallback */
.admin-access-modal[aria-hidden="true"]{display:none!important;}
.admin-access-modal[aria-hidden="false"]{display:grid!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;}
html.admin-modal-open,body.admin-modal-open{overflow:hidden!important;}

/* Refined compact admin-access modal — professional viewport fit */
.admin-access-modal{
  padding:clamp(14px,2.2vw,32px)!important;
  overflow:hidden;
}
.admin-access-dialog{
  width:min(980px,calc(100vw - 40px))!important;
  height:min(620px,calc(100vh - 40px))!important;
  max-height:none!important;
  grid-template-columns:44% 56%!important;
  border-radius:22px!important;
  overflow:hidden!important;
}
.admin-access-visual{
  min-height:0!important;
  height:100%!important;
}
.admin-access-visual-copy{
  inset:auto 38px 34px!important;
}
.admin-access-visual-copy h2{
  font-size:clamp(2.5rem,3.7vw,4rem)!important;
  line-height:.88!important;
  margin-bottom:14px!important;
}
.admin-access-visual-copy p{
  font-size:.86rem!important;
  line-height:1.5!important;
  margin-bottom:14px!important;
}
.admin-access-visual-copy ul{
  gap:6px!important;
  font-size:.78rem!important;
}
.admin-access-form-panel{
  min-width:0;
  height:100%;
  box-sizing:border-box;
  padding:28px 42px 24px!important;
  justify-content:center!important;
  overflow-y:auto;
}
.admin-access-brand{
  width:70px!important;
  height:70px!important;
  margin-bottom:18px!important;
  flex:0 0 auto;
}
.admin-access-brand img{
  width:56px!important;
  height:56px!important;
}
.admin-access-kicker{
  font-size:.65rem!important;
  margin-bottom:8px!important;
}
.admin-access-form-panel>h2{
  font-size:clamp(2.6rem,4vw,3.7rem)!important;
  line-height:.92!important;
  margin-bottom:8px!important;
}
.admin-access-form-panel>p{
  font-size:.86rem!important;
  line-height:1.5!important;
  margin-bottom:17px!important;
}
.admin-access-form{
  gap:12px!important;
}
.admin-access-form>label:not(.admin-access-check){
  gap:6px!important;
  font-size:.75rem!important;
}
.admin-access-field input{
  height:50px!important;
  border-radius:11px!important;
  font-size:.88rem!important;
}
.admin-access-eye{
  width:36px!important;
  height:36px!important;
}
.admin-access-check{
  font-size:.76rem!important;
}
.admin-access-submit{
  height:50px!important;
  border-radius:11px!important;
  font-size:.84rem!important;
}
.admin-access-security{
  margin-top:15px!important;
  padding-top:14px!important;
  font-size:.68rem!important;
}
.admin-access-close{
  top:14px!important;
  right:14px!important;
  width:38px!important;
  height:38px!important;
  font-size:1.25rem!important;
}
@media (max-height:680px) and (min-width:901px){
  .admin-access-dialog{height:calc(100vh - 28px)!important;width:min(930px,calc(100vw - 28px))!important}
  .admin-access-form-panel{padding:18px 34px 16px!important}
  .admin-access-brand{width:58px!important;height:58px!important;margin-bottom:10px!important}
  .admin-access-brand img{width:46px!important;height:46px!important}
  .admin-access-form-panel>h2{font-size:2.7rem!important}
  .admin-access-form-panel>p{margin-bottom:10px!important}
  .admin-access-form{gap:8px!important}
  .admin-access-field input,.admin-access-submit{height:44px!important}
  .admin-access-security{margin-top:9px!important;padding-top:9px!important}
}
@media(max-width:900px){
  .admin-access-dialog{
    width:min(600px,calc(100vw - 24px))!important;
    height:auto!important;
    max-height:calc(100vh - 24px)!important;
    grid-template-columns:1fr!important;
    overflow-y:auto!important;
  }
  .admin-access-visual{height:190px!important;min-height:190px!important}
  .admin-access-visual-copy{inset:auto 26px 22px!important}
  .admin-access-visual-copy h2{font-size:2.35rem!important;margin-bottom:0!important}
  .admin-access-visual-copy p,.admin-access-visual-copy ul{display:none!important}
  .admin-access-form-panel{height:auto;padding:26px 28px 24px!important;overflow:visible}
}
@media(max-width:560px){
  .admin-access-modal{padding:8px!important}
  .admin-access-dialog{width:100%!important;max-height:calc(100vh - 16px)!important;border-radius:16px!important}
  .admin-access-visual{height:145px!important;min-height:145px!important}
  .admin-access-visual-copy{inset:auto 20px 16px!important}
  .admin-access-visual-copy>span{margin-bottom:6px!important;font-size:.58rem!important}
  .admin-access-visual-copy h2{font-size:1.9rem!important}
  .admin-access-form-panel{padding:22px 20px 20px!important}
  .admin-access-brand{width:56px!important;height:56px!important;margin-bottom:12px!important}
  .admin-access-brand img{width:44px!important;height:44px!important}
  .admin-access-form-panel>h2{font-size:2.35rem!important}
}

section[id]{scroll-margin-top:100px}
.table-wrapper{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}


/* Platform-specific social media styling */
.platform-icon {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: grid !important;
  place-items: center;
  margin: 0 !important;
  border-radius: 12px;
  color: #fff !important;
  box-shadow: 0 8px 22px rgba(0,0,0,.18);
  transition: transform .25s ease, box-shadow .25s ease;
}
.platform-icon svg { width: 20px; height: 20px; display: block; }
.platform-icon svg rect,
.platform-icon svg circle { fill: none; stroke: currentColor; stroke-width: 1.8; }
.platform-icon svg path { fill: currentColor; }

.footer-social-btn { position: relative; overflow: hidden; }
.footer-social-btn .platform-name { flex: 1; color: #fff !important; font-weight: 700; }
.footer-social-btn.instagram .platform-icon { background: linear-gradient(135deg,#f9ce34,#ee2a7b 48%,#6228d7); }
.footer-social-btn.facebook .platform-icon { background: #1877f2; }
.footer-social-btn.pinterest .platform-icon { background: #e60023; }
.footer-social-btn.instagram:hover { border-color: rgba(238,42,123,.78); box-shadow: 0 12px 30px rgba(238,42,123,.2); }
.footer-social-btn.facebook:hover { border-color: rgba(24,119,242,.85); box-shadow: 0 12px 30px rgba(24,119,242,.2); }
.footer-social-btn.pinterest:hover { border-color: rgba(230,0,35,.85); box-shadow: 0 12px 30px rgba(230,0,35,.2); }
.footer-social-btn:hover .platform-icon { transform: scale(1.08) rotate(-3deg); }
.footer-social-btn:hover b { transform: translateX(4px); }
.footer-social-btn b { transition: transform .25s ease; }

.social-cards .social-card {
  position: relative;
  overflow: hidden;
  border-radius: 14px;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease;
}
.social-cards .social-card .platform-icon { width: 44px; height: 44px; flex-basis: 44px; border-radius: 50%; }
.social-cards .social-card.instagram .platform-icon { background: linear-gradient(135deg,#f9ce34,#ee2a7b 48%,#6228d7); }
.social-cards .social-card.facebook .platform-icon { background: #1877f2; }
.social-cards .social-card.pinterest .platform-icon { background: #e60023; }
.social-cards .social-card.instagram:hover { background: linear-gradient(135deg,rgba(249,206,52,.16),rgba(238,42,123,.2),rgba(98,40,215,.18)); border-color: rgba(238,42,123,.7); box-shadow: 0 16px 36px rgba(238,42,123,.2); }
.social-cards .social-card.facebook:hover { background: rgba(24,119,242,.2); border-color: rgba(24,119,242,.75); box-shadow: 0 16px 36px rgba(24,119,242,.2); }
.social-cards .social-card.pinterest:hover { background: rgba(230,0,35,.2); border-color: rgba(230,0,35,.75); box-shadow: 0 16px 36px rgba(230,0,35,.2); }
.social-cards .social-card:hover { transform: translateY(-4px); }
.social-cards .social-card:hover .platform-icon { transform: scale(1.08) rotate(-3deg); }
.social-cards .social-card b { transition: transform .25s ease; }
.social-cards .social-card:hover b { transform: translateX(5px); }

@media (max-width:640px) {
  .footer-social-btn { padding: 12px 14px; }
  .social-cards .social-card { grid-template-columns: 44px 1fr auto; }
}


/* 2026 premium conversion + SEO content upgrade */
.premium-services{background:#f8f0eb}.premium-services .section-heading h2,.planning-process h2,.trust-copy h2,.service-area-section h2,.faq-heading h2{font-family:"Cormorant Garamond";font-size:clamp(44px,5vw,70px);line-height:.98;margin:14px 0 18px}.premium-service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.premium-service-card{min-height:330px;padding:30px;background:rgba(255,255,255,.8);border:1px solid var(--line);text-decoration:none;display:flex;flex-direction:column;transition:.3s}.premium-service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);background:#fff}.premium-service-card>span{font-family:"Cormorant Garamond";font-size:42px;color:rgba(165,95,107,.35)}.premium-service-card h3{font-family:"Cormorant Garamond";font-size:30px;line-height:1.05;margin:26px 0 12px}.premium-service-card p{color:var(--muted);font-size:13px}.premium-service-card b{margin-top:auto;color:var(--rose-deep);font-size:12px}
.planning-process{background:linear-gradient(135deg,#4d3035,#2f2222);color:#fff}.process-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:85px;align-items:start}.process-intro{position:sticky;top:120px}.process-intro p{color:rgba(255,255,255,.7);margin-bottom:30px}.process-steps{display:grid}.process-steps article{display:grid;grid-template-columns:75px 1fr;gap:22px;padding:25px 0;border-bottom:1px solid rgba(255,255,255,.15)}.process-steps article:first-child{padding-top:0}.process-steps>article>span{font-family:"Cormorant Garamond";font-size:44px;color:#e5bbb5}.process-steps h3{font-family:"Cormorant Garamond";font-size:31px;margin:0 0 4px}.process-steps p{margin:0;color:rgba(255,255,255,.64);font-size:13px}
.trust-section{background:#fff}.trust-grid{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:center}.trust-copy p{color:var(--muted);max-width:580px}.trust-points{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}.trust-points article{min-height:170px;padding:28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}.trust-points strong{font-family:"Cormorant Garamond";font-size:38px;color:var(--rose-deep)}.trust-points span{font-size:12px;color:var(--muted)}
.service-area-section{background:#efe1dc}.service-area-layout{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:center}.service-area-layout p{color:var(--muted)}.area-chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}.area-chips span{padding:9px 13px;border:1px solid rgba(116,66,75,.2);background:rgba(255,255,255,.48);font-size:11px;font-weight:700;border-radius:99px}
.faq-section{background:var(--cream)}.faq-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:85px;align-items:start}.faq-heading{position:sticky;top:120px}.faq-heading p{color:var(--muted)}.faq-list details{border-bottom:1px solid var(--line);padding:0}.faq-list summary{list-style:none;cursor:pointer;padding:24px 44px 24px 0;font-family:"Cormorant Garamond";font-size:25px;font-weight:600;position:relative}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"+";position:absolute;right:8px;top:20px;font-family:"DM Sans";font-weight:400;color:var(--rose);font-size:24px}.faq-list details[open] summary:after{content:"−"}.faq-list details p{margin:-5px 45px 24px 0;color:var(--muted);font-size:13px}
.floating-consultation{position:fixed;right:22px;bottom:22px;z-index:80;background:var(--rose-deep);color:#fff;text-decoration:none;padding:12px 18px;border:1px solid rgba(255,255,255,.25);box-shadow:0 16px 40px rgba(45,28,30,.28);display:flex;flex-direction:column;line-height:1.2}.floating-consultation span{text-transform:uppercase;letter-spacing:.13em;font-size:8px;color:#e9c9c1}.floating-consultation b{font-family:"Cormorant Garamond";font-size:18px}.floating-consultation:hover{background:var(--rose)}
@media(max-width:1050px){.premium-service-grid{grid-template-columns:1fr 1fr}.site-header nav{gap:14px}.site-header nav>a{font-size:11px}}
@media(max-width:800px){.process-layout,.trust-grid,.service-area-layout,.faq-layout{grid-template-columns:1fr;gap:45px}.process-intro,.faq-heading{position:static}.premium-service-grid{grid-template-columns:1fr 1fr}.floating-consultation{right:12px;bottom:12px}.trust-points article{min-height:145px}}
@media(max-width:560px){.premium-service-grid{grid-template-columns:1fr}.premium-service-card{min-height:250px}.trust-points{grid-template-columns:1fr}.process-steps article{grid-template-columns:55px 1fr}.floating-consultation{left:12px;right:12px;bottom:10px;align-items:center;padding:10px}.floating-consultation span{display:none}.floating-consultation b{font-family:"DM Sans";font-size:12px}.section{padding:78px 0}}

/* =========================================================
   Premium public header + accessible dropdown navigation
   ========================================================= */
.section-anchor{position:relative;display:block;top:-110px;visibility:hidden}
.premium-public-header{height:88px;box-shadow:0 1px 0 rgba(66,38,43,.04);transition:background .25s ease,box-shadow .25s ease}
.premium-public-header .brand{flex:0 0 auto}
.premium-public-header .brand-logo{width:56px;height:56px;border-radius:15px}
.premium-public-header .brand-copy strong{font-size:21px;letter-spacing:.01em}
.premium-public-header .brand-copy small{font-size:7.5px;margin-top:4px;letter-spacing:.17em}
.premium-public-header nav{gap:9px;margin-left:auto}
.premium-public-header nav>a:not(.header-book-cta),
.nav-dropdown-toggle{position:relative;display:inline-flex;align-items:center;gap:6px;padding:11px 10px;border:0;background:transparent;color:var(--ink);font:700 11.5px/1 "DM Sans",sans-serif;text-decoration:none;cursor:pointer;white-space:nowrap}
.premium-public-header nav>a:not(.header-book-cta)::after,
.nav-dropdown-toggle::after{content:"";position:absolute;left:10px;right:10px;bottom:4px;height:1px;background:var(--rose);transform:scaleX(0);transform-origin:center;transition:transform .22s ease}
.premium-public-header nav>a:not(.header-book-cta):hover::after,
.premium-public-header nav>a:not(.header-book-cta):focus-visible::after,
.nav-dropdown:hover>.nav-dropdown-toggle::after,
.nav-dropdown:focus-within>.nav-dropdown-toggle::after{transform:scaleX(1)}
.nav-dropdown{position:relative;display:flex;align-items:center}
.nav-dropdown-toggle svg{width:10px;height:7px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:transform .22s ease}
.nav-dropdown:hover>.nav-dropdown-toggle svg,
.nav-dropdown:focus-within>.nav-dropdown-toggle svg,
.nav-dropdown.is-open>.nav-dropdown-toggle svg{transform:rotate(180deg)}
.nav-dropdown-menu{position:absolute;top:calc(100% + 12px);left:50%;width:292px;padding:9px;background:rgba(255,252,249,.98);border:1px solid rgba(116,66,75,.13);border-radius:16px;box-shadow:0 22px 55px rgba(53,31,35,.16);backdrop-filter:blur(18px);opacity:0;visibility:hidden;transform:translate(-50%,8px);transition:opacity .2s ease,transform .2s ease,visibility .2s;z-index:180}
.nav-dropdown-menu::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.nav-dropdown-menu a{display:block;padding:12px 13px;border-radius:11px;text-decoration:none;transition:background .18s ease,transform .18s ease}
.nav-dropdown-menu a:hover,.nav-dropdown-menu a:focus-visible{background:#f5e8e7;transform:translateX(2px);outline:none}
.nav-dropdown-menu strong,.nav-dropdown-menu small{display:block}
.nav-dropdown-menu strong{font-family:"Cormorant Garamond",serif;font-size:18px;line-height:1.05;color:var(--rose-deep)}
.nav-dropdown-menu small{margin-top:4px;color:var(--muted);font-size:9.5px;line-height:1.35;font-weight:500}
.nav-dropdown:hover>.nav-dropdown-menu,
.nav-dropdown:focus-within>.nav-dropdown-menu,
.nav-dropdown.is-open>.nav-dropdown-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nav-dropdown-menu-compact{width:265px}
.header-book-cta{display:inline-flex!important;align-items:center;gap:10px;margin-left:9px;padding:13px 18px!important;border-radius:999px;background:linear-gradient(135deg,var(--rose),var(--rose-deep));color:#fff!important;font-size:11px!important;font-weight:800!important;text-decoration:none;box-shadow:0 10px 24px rgba(116,66,75,.2);transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;white-space:nowrap}
.header-book-cta:hover,.header-book-cta:focus-visible{transform:translateY(-2px);box-shadow:0 14px 30px rgba(116,66,75,.28);filter:saturate(1.06)}
.header-book-cta span{font-size:15px;line-height:1;transition:transform .2s ease}
.header-book-cta:hover span{transform:translateX(2px)}

@media(max-width:1100px){
  .premium-public-header{padding-left:22px;padding-right:22px}
  .premium-public-header .brand-copy strong{font-size:18px}
  .premium-public-header .brand-copy small{font-size:7px}
  .premium-public-header nav{gap:3px}
  .premium-public-header nav>a:not(.header-book-cta),.nav-dropdown-toggle{padding-left:8px;padding-right:8px;font-size:11px}
  .header-book-cta{padding:12px 14px!important;margin-left:4px}
}
@media(max-width:980px){
  .premium-public-header nav{top:88px;max-height:calc(100vh - 88px);overflow:auto;padding:18px 22px 26px;gap:2px;align-items:stretch;box-shadow:0 24px 40px rgba(53,31,35,.1)}
  .premium-public-header nav>a:not(.header-book-cta),.nav-dropdown-toggle{width:100%;justify-content:space-between;padding:15px 4px;font-size:13px;border-bottom:1px solid rgba(116,66,75,.1)}
  .premium-public-header nav>a:not(.header-book-cta)::after,.nav-dropdown-toggle::after{display:none}
  .nav-dropdown{display:block;width:100%}
  .nav-dropdown-menu{position:static;width:100%!important;padding:0 0 0 10px;border:0;border-radius:0;box-shadow:none;background:transparent;backdrop-filter:none;opacity:1;visibility:visible;transform:none!important;display:none}
  .nav-dropdown.is-open>.nav-dropdown-menu{display:block}
  .nav-dropdown-menu::before{display:none}
  .nav-dropdown-menu a{padding:11px 12px;border-left:2px solid rgba(165,95,107,.24);border-radius:0}
  .nav-dropdown-menu strong{font-size:17px}
  .nav-dropdown-menu small{font-size:9px}
  .header-book-cta{width:100%;justify-content:center;margin:15px 0 0;padding:15px 18px!important}
}
@media(max-width:560px){
  .premium-public-header{height:78px;padding:0 16px}
  .premium-public-header .brand{gap:9px}
  .premium-public-header .brand-logo{width:49px;height:49px;border-radius:13px}
  .premium-public-header .brand-logo img{width:65px}
  .premium-public-header .brand-copy strong{font-size:16px}
  .premium-public-header .brand-copy small{font-size:6.5px;letter-spacing:.13em}
  .premium-public-header nav{top:78px;max-height:calc(100vh - 78px)}
}

/* ==========================================================
   Two-row premium public header — brand/actions + centered nav
   ========================================================== */
.two-row-public-header{
  height:auto;
  min-height:126px;
  padding:0 max(24px,calc((100vw - 1180px)/2));
  display:block;
}
.two-row-public-header .header-top-row{
  min-height:78px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  width:100%;
}
.two-row-public-header .brand{flex:0 1 auto}
.two-row-public-header .header-top-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  margin-left:auto;
}
.two-row-public-header .nav-admin-access,
.two-row-public-header .nav-call{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 17px;
  border-radius:999px;
  font:800 11px/1 "DM Sans",sans-serif;
  white-space:nowrap;
  text-decoration:none;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease,border-color .2s ease;
}
.two-row-public-header .nav-admin-access{
  border:1px solid rgba(116,66,75,.24);
  background:#fff9f7;
  color:var(--rose-deep);
  cursor:pointer;
}
.two-row-public-header .nav-admin-access:hover,
.two-row-public-header .nav-admin-access:focus-visible{
  background:var(--rose-deep);
  border-color:var(--rose-deep);
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 9px 20px rgba(82,45,51,.15);
}
.two-row-public-header .nav-call{
  border:1px solid var(--rose-deep);
  background:var(--rose-deep);
  color:#fff;
  box-shadow:0 9px 20px rgba(82,45,51,.16);
}
.two-row-public-header .nav-call:hover,
.two-row-public-header .nav-call:focus-visible{
  transform:translateY(-1px);
  background:#5f3740;
  border-color:#5f3740;
  box-shadow:0 12px 24px rgba(82,45,51,.22);
}
.two-row-public-header>nav{
  min-height:48px;
  width:100%;
  margin:0!important;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  gap:25px;
  border-top:1px solid rgba(116,66,75,.08);
}
.two-row-public-header>nav>a:not(.header-book-cta),
.two-row-public-header .nav-dropdown-toggle{
  padding-top:15px;
  padding-bottom:14px;
}
.two-row-public-header .mobile-nav-actions{display:none}
.two-row-public-header .menu-toggle{display:none}

@media(max-width:980px){
  .two-row-public-header{min-height:86px;display:flex;align-items:center;padding-top:0;padding-bottom:0}
  .two-row-public-header .header-top-row{min-height:86px;width:100%}
  .two-row-public-header .header-top-actions{display:none}
  .two-row-public-header .menu-toggle{display:block;margin-left:auto}
  .two-row-public-header>nav{
    position:fixed;
    left:0;
    right:0;
    top:86px;
    min-height:0;
    max-height:calc(100vh - 86px);
    overflow:auto;
    padding:18px 22px 26px;
    display:none;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:2px;
    border-top:1px solid rgba(116,66,75,.1);
    background:rgba(252,248,243,.99);
    box-shadow:0 24px 40px rgba(53,31,35,.1);
    backdrop-filter:blur(18px);
  }
  .two-row-public-header>nav.open,
  .two-row-public-header>nav.is-open{display:flex}
  .two-row-public-header .mobile-nav-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-top:16px;
    padding-top:16px;
    border-top:1px solid rgba(116,66,75,.11);
  }
  .two-row-public-header .mobile-nav-actions .nav-admin-access,
  .two-row-public-header .mobile-nav-actions .nav-call{width:100%;min-height:46px;padding:0 12px}
}

@media(max-width:560px){
  .two-row-public-header{padding-left:18px;padding-right:18px}
  .two-row-public-header .brand-logo{width:48px;height:48px}
  .two-row-public-header .brand-copy strong{font-size:16px}
  .two-row-public-header .brand-copy small{font-size:6.3px}
  .two-row-public-header .mobile-nav-actions{grid-template-columns:1fr}
}


/* Dedicated About pages */
.about-detail-page{background:#fffdfb;color:var(--ink)}
.about-detail-hero{position:relative;min-height:520px;display:grid;align-items:end;overflow:hidden;background:#3c272b}
.about-detail-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%}
.about-detail-hero__overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(39,24,27,.76) 0%,rgba(39,24,27,.44) 52%,rgba(39,24,27,.16) 100%),linear-gradient(0deg,rgba(39,24,27,.48),transparent 48%)}
.about-detail-hero__content{position:relative;z-index:2;padding-top:130px;padding-bottom:78px;color:#fff;max-width:1180px;width:100%}
.about-detail-hero__content h1{max-width:790px;margin:10px 0 16px;font-size:clamp(48px,6.4vw,88px);line-height:.92;color:#fff}
.about-detail-hero__content p{max-width:680px;margin:0;font-size:17px;line-height:1.75;color:rgba(255,255,255,.86)}
.about-detail-intro{padding-top:92px;padding-bottom:92px}
.about-detail-two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.82fr);gap:72px;align-items:center}
.about-detail-two-col.reverse{grid-template-columns:minmax(360px,.82fr) minmax(0,1fr)}
.about-detail-copy h2,.about-mission-grid h2{font-size:clamp(38px,4.1vw,58px);line-height:1;margin:10px 0 22px;color:var(--rose-deep)}
.about-detail-copy p,.about-mission-grid p{font-size:15px;line-height:1.85;color:var(--muted)}
.about-detail-image-card{position:relative;min-height:480px;border-radius:26px;overflow:hidden;box-shadow:0 26px 70px rgba(73,45,50,.14);background:#eaded8}
.about-detail-image-card>img{width:100%;height:100%;min-height:480px;object-fit:cover;display:block}
.about-detail-image-note{position:absolute;left:20px;right:20px;bottom:20px;padding:18px 20px;border-radius:16px;background:rgba(255,252,249,.92);backdrop-filter:blur(12px);box-shadow:0 12px 35px rgba(50,28,33,.12)}
.about-detail-image-note strong,.about-detail-image-note span{display:block}.about-detail-image-note strong{font-family:"Cormorant Garamond",serif;font-size:23px;color:var(--rose-deep)}.about-detail-image-note span{margin-top:3px;font-size:11px;color:var(--muted)}
.about-detail-soft{background:linear-gradient(180deg,#fbf5f1 0%,#fffaf7 100%)}
.section-heading.narrow{max-width:760px;margin-left:auto;margin-right:auto;text-align:center}
.about-values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:42px}.about-values-grid.three{grid-template-columns:repeat(3,1fr)}
.about-values-grid article,.why-feature-grid article,.team-role-card{padding:32px;border:1px solid rgba(116,66,75,.11);border-radius:20px;background:rgba(255,255,255,.82);box-shadow:0 14px 45px rgba(70,40,45,.055)}
.about-values-grid article>span{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#f5e7e5;color:var(--rose-deep);font-weight:700;font-size:11px;margin-bottom:20px}
.about-values-grid h3,.why-feature-grid h3,.team-role-card h3{font-family:"Cormorant Garamond",serif;font-size:29px;line-height:1.05;color:var(--rose-deep);margin:0 0 12px}.about-values-grid p,.why-feature-grid p,.team-role-card p,.team-role-card li{font-size:13px;line-height:1.75;color:var(--muted)}
.about-mission-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.about-mission-grid article{padding:46px;border-radius:24px;background:#fff;border:1px solid rgba(116,66,75,.11);box-shadow:0 18px 50px rgba(70,40,45,.055)}
.team-role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:50px}.team-role-card{padding:34px}.team-role-icon{display:grid;place-items:center;width:62px;height:62px;border-radius:19px;background:linear-gradient(135deg,#8d4f5a,#653640);color:#fff;font-family:"Cormorant Garamond",serif;font-size:22px;font-weight:700;box-shadow:0 12px 28px rgba(116,66,75,.22)}.team-role-label{display:block;margin:24px 0 8px;text-transform:uppercase;letter-spacing:.16em;color:#a26870;font-size:9px;font-weight:700}.team-role-card ul{margin:18px 0 0;padding:18px 0 0 18px;border-top:1px solid rgba(116,66,75,.1)}
.why-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:50px}.why-feature-number{font-family:"Cormorant Garamond",serif;font-size:42px;line-height:1;color:rgba(141,79,90,.25);margin-bottom:22px}.why-check-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:28px}.why-check-list span{position:relative;padding:14px 16px 14px 38px;border-radius:12px;background:#f8efec;color:#65464c;font-size:12px;font-weight:600}.why-check-list span:before{content:"✓";position:absolute;left:15px;color:#8d4f5a;font-weight:800}
.about-detail-cta{padding:30px 0 88px;background:#fffdfb}.about-detail-cta__inner{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:48px 52px;border-radius:28px;background:linear-gradient(135deg,#f4e5e2,#fbf5f1);border:1px solid rgba(116,66,75,.1)}.about-detail-cta__inner h2{margin:8px 0 9px;font-size:clamp(36px,4vw,54px);color:var(--rose-deep)}.about-detail-cta__inner p{max-width:680px;margin:0;color:var(--muted);font-size:13px;line-height:1.7}.about-detail-cta .btn{flex:0 0 auto;white-space:nowrap}.text-link{display:inline-flex;gap:10px;align-items:center;margin-top:12px;color:var(--rose-deep);font-weight:700;text-decoration:none}
.nav-dropdown-menu a[aria-current="page"]{background:#f5e8e7}.nav-dropdown-menu a[aria-current="page"] strong{color:#713c46}
@media(max-width:900px){.about-detail-hero{min-height:460px}.about-detail-hero__content{padding-top:120px;padding-bottom:58px}.about-detail-two-col,.about-detail-two-col.reverse{grid-template-columns:1fr;gap:38px}.about-detail-image-card,.about-detail-image-card>img{min-height:380px}.about-values-grid,.about-values-grid.three,.team-role-grid,.why-feature-grid{grid-template-columns:1fr 1fr}.about-mission-grid{grid-template-columns:1fr}.about-detail-cta__inner{align-items:flex-start;flex-direction:column;padding:38px}}
@media(max-width:600px){.about-detail-hero{min-height:420px}.about-detail-hero__content{padding-top:108px;padding-bottom:44px}.about-detail-hero__content h1{font-size:46px}.about-detail-hero__content p{font-size:14px}.about-detail-intro{padding-top:64px;padding-bottom:64px}.about-values-grid,.about-values-grid.three,.team-role-grid,.why-feature-grid{grid-template-columns:1fr}.about-values-grid article,.why-feature-grid article,.team-role-card{padding:26px}.why-check-list{grid-template-columns:1fr}.about-detail-cta{padding-bottom:58px}.about-detail-cta__inner{padding:30px 24px;border-radius:20px}.about-detail-image-card,.about-detail-image-card>img{min-height:320px}}

/* 2026-08-08: Home hero CTA alignment/polish */
.hero .hero-actions{
  display:flex;
  flex-wrap:nowrap;
  justify-content:flex-start;
  align-items:stretch;
  gap:14px;
  margin-top:30px;
  width:max-content;
  max-width:100%;
}
.hero .hero-actions .btn{
  min-width:200px;
  min-height:52px;
  padding:14px 24px;
  border-radius:0;
  line-height:1.2;
  text-align:center;
  white-space:nowrap;
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease,border-color .22s ease;
}
.hero .hero-actions .btn-primary{
  box-shadow:0 14px 30px rgba(34,20,21,.22);
}
.hero .hero-actions .btn-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 36px rgba(34,20,21,.30);
}
.hero .hero-actions .btn-light{
  background:rgba(20,14,13,.20);
  border-color:rgba(255,255,255,.68);
  backdrop-filter:blur(4px);
}
.hero .hero-actions .btn-light:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.15);
  border-color:#fff;
}
@media(max-width:760px){
  .hero .hero-actions{
    width:100%;
    flex-wrap:wrap;
    gap:12px;
  }
  .hero .hero-actions .btn{
    flex:1 1 190px;
    min-width:0;
  }
}
@media(max-width:520px){
  .hero .hero-actions{
    flex-direction:column;
    align-items:stretch;
    width:100%;
  }
  .hero .hero-actions .btn{
    width:100%;
    min-height:50px;
    white-space:normal;
  }
}


/* Static gallery viewer - click behavior retained; hover bubble removed */
html.gallery-viewer-open,body.gallery-viewer-open{overflow:hidden!important}
.gallery-viewer{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:32px 86px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}
.gallery-viewer.is-open{opacity:1;visibility:visible;pointer-events:auto}
.gallery-viewer-backdrop{position:absolute;inset:0;background:rgba(11,8,8,.96);backdrop-filter:blur(8px)}
.gallery-viewer-stage{position:relative;z-index:2;max-width:min(1200px,90vw);max-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center}
.gallery-viewer-stage img{display:block;max-width:100%;max-height:78vh;width:auto;height:auto;object-fit:contain;border-radius:6px;box-shadow:0 30px 100px rgba(0,0,0,.55)}
.gallery-viewer-info{width:100%;display:flex;justify-content:space-between;gap:24px;padding-top:15px;color:#fff;font-size:13px}
.gallery-viewer-info span{color:rgba(255,255,255,.65);white-space:nowrap}
.gallery-viewer-info strong{font-weight:600;text-align:right}
.gallery-viewer-close,.gallery-viewer-nav{position:absolute;z-index:4;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.09);color:#fff;cursor:pointer;transition:background .2s ease,transform .2s ease}
.gallery-viewer-close:hover,.gallery-viewer-nav:hover{background:#fff;color:#5f3740}
.gallery-viewer-close{right:24px;top:22px;width:48px;height:48px;border-radius:50%;font-size:32px;line-height:1}
.gallery-viewer-nav{top:50%;transform:translateY(-50%);width:56px;height:56px;border-radius:50%;font-size:38px;line-height:1}
.gallery-viewer-prev{left:22px}.gallery-viewer-next{right:22px}
@media(max-width:700px){.gallery-viewer{padding:70px 12px 90px}.gallery-viewer-stage{max-width:100%;max-height:100%}.gallery-viewer-stage img{max-height:68vh}.gallery-viewer-info{padding:12px 4px 0;flex-direction:column;gap:4px}.gallery-viewer-info strong{text-align:left}.gallery-viewer-close{right:12px;top:12px}.gallery-viewer-nav{top:auto;bottom:20px;transform:none;width:48px;height:48px}.gallery-viewer-prev{left:calc(50% - 58px)}.gallery-viewer-next{right:calc(50% - 58px)}}

/* ==========================================================
   One-line premium public header — 2026-08-08
   Brand | Navigation | Admin | Call Now
   ========================================================== */
.one-line-public-header{
  height:88px;
  min-height:88px;
  padding:0 max(24px,calc((100vw - 1460px)/2));
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:34px;
  background:rgba(252,248,243,.97);
  border-bottom:1px solid rgba(116,66,75,.10);
  box-shadow:0 8px 30px rgba(62,39,43,.055);
}
.one-line-public-header .brand{min-width:0;gap:13px}
.one-line-public-header .brand-logo{width:56px;height:56px;flex:0 0 56px;border-radius:16px}
.one-line-public-header .brand-copy strong{font-size:21px;white-space:nowrap}
.one-line-public-header .brand-copy small{font-size:7px;margin-top:4px;white-space:nowrap}
.one-line-public-header>nav{
  position:static;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  min-width:0;
}
.one-line-public-header>nav>a:not(.header-book-cta),
.one-line-public-header .nav-dropdown-toggle{padding:12px 9px;font-size:11.5px}
.one-line-public-header .header-inline-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}
.one-line-public-header .nav-admin-access,
.one-line-public-header .nav-call{
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 18px;
  border-radius:999px;
  font:800 11px/1 "DM Sans",sans-serif;
  text-decoration:none;
  white-space:nowrap;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease,border-color .2s ease;
}
.one-line-public-header .nav-admin-access{border:1px solid rgba(116,66,75,.24);background:transparent;color:var(--rose-deep);cursor:pointer}
.one-line-public-header .nav-admin-access:hover,
.one-line-public-header .nav-admin-access:focus-visible{background:#f6e9e6;border-color:rgba(116,66,75,.36);transform:translateY(-1px)}
.one-line-public-header .nav-call{border:1px solid var(--rose-deep);background:var(--rose-deep);color:#fff;box-shadow:0 8px 20px rgba(82,45,51,.16)}
.one-line-public-header .nav-call::before{content:"☎";font-size:12px;margin-right:7px}
.one-line-public-header .nav-call:hover,
.one-line-public-header .nav-call:focus-visible{background:#5f3740;border-color:#5f3740;transform:translateY(-1px);box-shadow:0 11px 24px rgba(82,45,51,.22)}
.one-line-public-header .mobile-nav-actions{display:none}
.one-line-public-header .menu-toggle{display:none}

@media(max-width:1220px){
  .one-line-public-header{padding-left:22px;padding-right:22px;gap:20px}
  .one-line-public-header .brand-logo{width:50px;height:50px;flex-basis:50px}
  .one-line-public-header .brand-copy strong{font-size:18px}
  .one-line-public-header .brand-copy small{font-size:6.5px}
  .one-line-public-header>nav{gap:3px}
  .one-line-public-header>nav>a:not(.header-book-cta),.one-line-public-header .nav-dropdown-toggle{padding-left:7px;padding-right:7px;font-size:10.5px}
  .one-line-public-header .nav-admin-access,.one-line-public-header .nav-call{padding:0 14px;font-size:10.5px}
}

@media(max-width:980px){
  .one-line-public-header{
    height:78px;
    min-height:78px;
    display:flex;
    gap:12px;
    padding:0 18px;
  }
  .one-line-public-header .brand{margin-right:auto}
  .one-line-public-header .brand-logo{width:48px;height:48px;flex-basis:48px}
  .one-line-public-header .brand-copy strong{font-size:17px}
  .one-line-public-header .brand-copy small{font-size:6.3px}
  .one-line-public-header .header-inline-actions{display:none}
  .one-line-public-header .menu-toggle{display:block;margin-left:auto}
  .one-line-public-header>nav{
    position:fixed;
    left:0;
    right:0;
    top:78px;
    max-height:calc(100vh - 78px);
    overflow:auto;
    padding:18px 22px 26px;
    display:none;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:2px;
    background:rgba(252,248,243,.99);
    border-bottom:1px solid rgba(116,66,75,.1);
    box-shadow:0 24px 40px rgba(53,31,35,.1);
  }
  .one-line-public-header>nav.open,.one-line-public-header>nav.is-open{display:flex}
  .one-line-public-header>nav>a:not(.header-book-cta),.one-line-public-header .nav-dropdown-toggle{width:100%;justify-content:space-between;padding:15px 4px;font-size:13px;border-bottom:1px solid rgba(116,66,75,.1)}
  .one-line-public-header .mobile-nav-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid rgba(116,66,75,.11)}
  .one-line-public-header .mobile-nav-actions .nav-admin-access,.one-line-public-header .mobile-nav-actions .nav-call{width:100%;height:46px}
}

@media(max-width:560px){
  .one-line-public-header{padding-left:14px;padding-right:14px}
  .one-line-public-header .brand{gap:9px}
  .one-line-public-header .brand-logo{width:45px;height:45px;flex-basis:45px;border-radius:13px}
  .one-line-public-header .brand-copy strong{font-size:15px}
  .one-line-public-header .brand-copy small{display:block;font-size:5.8px;letter-spacing:.12em}
  .one-line-public-header .mobile-nav-actions{grid-template-columns:1fr}
}


/* ==========================================================
   Header duplicate-action fix — 2026-08-08
   One action group only: Admin Access + Call Now
   ========================================================== */
.one-line-public-header{
  grid-template-columns:auto minmax(0,1fr);
}
.one-line-public-header>nav{
  justify-content:flex-end;
  gap:13px;
}
.one-line-public-header .header-nav-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-left:10px;
  white-space:nowrap;
}
.one-line-public-header .header-inline-actions,
.one-line-public-header .mobile-nav-actions{
  display:none!important;
}

@media(max-width:1220px){
  .one-line-public-header>nav{gap:5px}
  .one-line-public-header .header-nav-actions{gap:8px;margin-left:4px}
}

@media(max-width:980px){
  .one-line-public-header .header-nav-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin:16px 0 0;
    padding-top:16px;
    border-top:1px solid rgba(116,66,75,.11);
    width:100%;
  }
  .one-line-public-header .header-nav-actions .nav-admin-access,
  .one-line-public-header .header-nav-actions .nav-call{
    width:100%;
    height:46px;
  }
}

@media(max-width:560px){
  .one-line-public-header .header-nav-actions{grid-template-columns:1fr}
}

/* ==========================================================
   PUBLIC HEADER CONSISTENCY FIX — 2026-08-08
   Keep the shared header identical on every public page.
   Header-only override; no page/content styles are changed.
   ========================================================== */
@media (min-width:981px){
  .site-header.premium-public-header.one-line-public-header{
    height:88px!important;
    min-height:88px!important;
    padding-top:0!important;
    padding-bottom:0!important;
    margin:0!important;
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:center!important;
    background:rgba(252,248,243,.97)!important;
    border-bottom:1px solid rgba(116,66,75,.10)!important;
    box-shadow:0 8px 30px rgba(62,39,43,.055)!important;
  }
  .site-header.premium-public-header.one-line-public-header .brand{
    height:88px!important;
    display:flex!important;
    align-items:center!important;
    margin:0!important;
    padding:0!important;
  }
  .site-header.premium-public-header.one-line-public-header .brand-logo{
    width:56px!important;
    height:56px!important;
    flex:0 0 56px!important;
  }
  .site-header.premium-public-header.one-line-public-header .brand-copy strong{
    font-size:21px!important;
    line-height:1.05!important;
  }
  .site-header.premium-public-header.one-line-public-header .brand-copy small{
    font-size:7px!important;
    line-height:1.1!important;
    margin-top:4px!important;
  }
  .site-header.premium-public-header.one-line-public-header>nav{
    height:88px!important;
    min-height:88px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    margin:0!important;
    padding:0!important;
    top:auto!important;
  }
  .site-header.premium-public-header.one-line-public-header>nav>a,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-toggle,
  .site-header.premium-public-header.one-line-public-header .header-nav-actions{
    flex-shrink:0!important;
  }
  .site-header.premium-public-header.one-line-public-header .header-nav-actions{
    align-items:center!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-admin-access,
  .site-header.premium-public-header.one-line-public-header .nav-call{
    height:44px!important;
    min-height:44px!important;
  }
}

@media (max-width:980px){
  .site-header.premium-public-header.one-line-public-header{
    height:78px!important;
    min-height:78px!important;
    padding-top:0!important;
    padding-bottom:0!important;
    margin:0!important;
  }
  .site-header.premium-public-header.one-line-public-header .brand,
  .site-header.premium-public-header.one-line-public-header .menu-toggle{
    align-self:center!important;
  }
  .site-header.premium-public-header.one-line-public-header>nav{
    top:78px!important;
    max-height:calc(100vh - 78px)!important;
  }
}


/* ==========================================================
   PUBLIC HEADER CONTAINER FIX — 2026-08-08
   Full-width header background with centered max-width content.
   Header-only change.
   ========================================================== */
.site-header.premium-public-header.one-line-public-header{
  width:100%!important;
  max-width:none!important;
  padding-left:0!important;
  padding-right:0!important;
}
.site-header.premium-public-header.one-line-public-header .public-header-container{
  width:min(1180px,calc(100% - 40px));
  height:100%;
  margin:0 auto;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:28px;
}
.site-header.premium-public-header.one-line-public-header .public-header-container>nav{
  height:100%;
  min-height:88px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:13px;
  margin:0;
  padding:0;
}
.site-header.premium-public-header.one-line-public-header .public-header-container>.brand{
  height:88px;
}

@media(max-width:1220px){
  .site-header.premium-public-header.one-line-public-header .public-header-container{
    width:min(1180px,calc(100% - 32px));
    gap:18px;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container>nav{gap:5px}
}

@media(max-width:980px){
  .site-header.premium-public-header.one-line-public-header .public-header-container{
    width:min(1180px,calc(100% - 28px));
    height:78px;
    display:flex;
    align-items:center;
    gap:12px;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container>.brand{
    height:78px;
    margin-right:auto;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container>.menu-toggle{
    display:block;
    margin-left:auto;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container>nav{
    position:fixed;
    left:0;
    right:0;
    top:78px;
    height:auto;
    min-height:0;
    max-height:calc(100vh - 78px);
    overflow:auto;
    padding:18px 22px 26px;
    display:none;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:2px;
    background:rgba(252,248,243,.99);
    border-bottom:1px solid rgba(116,66,75,.1);
    box-shadow:0 24px 40px rgba(53,31,35,.1);
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container>nav.open,
  .site-header.premium-public-header.one-line-public-header .public-header-container>nav.is-open{display:flex}
}

/* ==========================================================
   PROFESSIONAL CONTAINED HEADER — FINAL POLISH 2026-08-08
   Header only. Centered 1320px container; no content changes.
   ========================================================== */
@media (min-width:1241px){
  .site-header.premium-public-header.one-line-public-header{
    display:block!important;
    width:100%!important;
    height:86px!important;
    min-height:86px!important;
    padding:0!important;
    background:rgba(252,248,243,.98)!important;
    border-bottom:1px solid rgba(116,66,75,.10)!important;
    box-shadow:0 5px 24px rgba(62,39,43,.045)!important;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container{
    width:calc(100% - 48px)!important;
    max-width:1320px!important;
    height:86px!important;
    margin:0 auto!important;
    padding:0!important;
    display:grid!important;
    grid-template-columns:minmax(285px,340px) minmax(0,1fr)!important;
    align-items:center!important;
    column-gap:42px!important;
  }
  .site-header.premium-public-header.one-line-public-header .brand{
    width:max-content!important;
    max-width:340px!important;
    height:86px!important;
    padding:0!important;
    margin:0!important;
    gap:12px!important;
    display:flex!important;
    align-items:center!important;
    flex-shrink:0!important;
  }
  .site-header.premium-public-header.one-line-public-header .brand-logo{
    width:54px!important;
    height:54px!important;
    flex:0 0 54px!important;
    border-radius:15px!important;
  }
  .site-header.premium-public-header.one-line-public-header .brand-copy{
    min-width:0!important;
  }
  .site-header.premium-public-header.one-line-public-header .brand-copy strong{
    display:block!important;
    font-size:20px!important;
    line-height:1.05!important;
    white-space:nowrap!important;
  }
  .site-header.premium-public-header.one-line-public-header .brand-copy small{
    display:block!important;
    font-size:6.8px!important;
    letter-spacing:.17em!important;
    line-height:1!important;
    margin-top:5px!important;
    white-space:nowrap!important;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container>nav{
    position:static!important;
    width:100%!important;
    height:86px!important;
    min-height:86px!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:18px!important;
    margin:0!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    overflow:visible!important;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container>nav>a:not(.nav-call),
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-toggle{
    padding-left:5px!important;
    padding-right:5px!important;
    font-size:12px!important;
    white-space:nowrap!important;
  }
  .site-header.premium-public-header.one-line-public-header .header-nav-actions{
    display:flex!important;
    align-items:center!important;
    gap:9px!important;
    margin-left:8px!important;
    padding:0!important;
    border:0!important;
    width:auto!important;
    white-space:nowrap!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-admin-access,
  .site-header.premium-public-header.one-line-public-header .nav-call{
    width:auto!important;
    min-width:104px!important;
    height:44px!important;
    min-height:44px!important;
    padding:0 18px!important;
    border-radius:999px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:11.5px!important;
    line-height:1!important;
  }
  .site-header.premium-public-header.one-line-public-header .menu-toggle{
    display:none!important;
  }
}

/* Switch before the header becomes crowded on laptops/tablets. */
@media (max-width:1240px){
  .site-header.premium-public-header.one-line-public-header{
    display:block!important;
    height:78px!important;
    min-height:78px!important;
    padding:0!important;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container{
    width:calc(100% - 36px)!important;
    max-width:1320px!important;
    height:78px!important;
    margin:0 auto!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    gap:14px!important;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container>.brand{
    height:78px!important;
    margin-right:auto!important;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container>.menu-toggle{
    display:block!important;
    flex:0 0 auto!important;
    margin-left:auto!important;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container>nav{
    position:fixed!important;
    left:0!important;
    right:0!important;
    top:78px!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:calc(100vh - 78px)!important;
    overflow:auto!important;
    padding:18px 24px 26px!important;
    display:none!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:2px!important;
    background:rgba(252,248,243,.995)!important;
    border-bottom:1px solid rgba(116,66,75,.10)!important;
    box-shadow:0 24px 40px rgba(53,31,35,.10)!important;
    z-index:999!important;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container>nav.open,
  .site-header.premium-public-header.one-line-public-header .public-header-container>nav.is-open{
    display:flex!important;
  }
  .site-header.premium-public-header.one-line-public-header .header-nav-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
    width:100%!important;
    margin:16px 0 0!important;
    padding-top:16px!important;
    border-top:1px solid rgba(116,66,75,.11)!important;
  }
  .site-header.premium-public-header.one-line-public-header .header-nav-actions .nav-admin-access,
  .site-header.premium-public-header.one-line-public-header .header-nav-actions .nav-call{
    width:100%!important;
    height:46px!important;
  }
}

@media (max-width:560px){
  .site-header.premium-public-header.one-line-public-header .public-header-container{
    width:calc(100% - 28px)!important;
  }
  .site-header.premium-public-header.one-line-public-header .brand-logo{
    width:48px!important;
    height:48px!important;
    flex-basis:48px!important;
  }
  .site-header.premium-public-header.one-line-public-header .brand-copy strong{
    font-size:15.5px!important;
  }
  .site-header.premium-public-header.one-line-public-header .brand-copy small{
    font-size:5.8px!important;
  }
  .site-header.premium-public-header.one-line-public-header .header-nav-actions{
    grid-template-columns:1fr!important;
  }
}

/* ==========================================================
   TRUE SITE CONTAINER HEADER — 2026-08-08
   Match the same 1180px centered container used by homepage.
   Header background remains full width; header content does not.
   ========================================================== */
@media (min-width:1241px){
  .site-header.premium-public-header.one-line-public-header .public-header-container{
    width:min(1180px, calc(100% - 40px))!important;
    max-width:1180px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
    grid-template-columns:minmax(270px,300px) minmax(0,1fr)!important;
    column-gap:28px!important;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container>.brand{
    max-width:300px!important;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container>nav{
    gap:14px!important;
  }
  .site-header.premium-public-header.one-line-public-header .header-nav-actions{
    gap:8px!important;
    margin-left:4px!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-admin-access,
  .site-header.premium-public-header.one-line-public-header .nav-call{
    min-width:96px!important;
    padding-left:15px!important;
    padding-right:15px!important;
  }
}

/* Dedicated photo gallery page */
.gallery-page-hero{min-height:520px}.gallery-page-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.gallery-page-hero .services-page-hero__content{position:relative;z-index:2}.gallery-section .section-heading.centered{text-align:center;margin-left:auto;margin-right:auto}.gallery-section .section-heading.centered p{margin-left:auto;margin-right:auto}

/* ==========================================================
   MOBILE / TABLET NAV + DROPDOWN FIX — 2026-08-11
   The header switches to the hamburger at 1240px, so dropdowns
   must also switch to accordion mode at the SAME breakpoint.
   ========================================================== */
@media (max-width:1240px){
  .site-header.premium-public-header.one-line-public-header .public-header-container>nav{
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container>nav>a:not(.nav-call){
    width:100%!important;
    min-height:48px!important;
    display:flex!important;
    align-items:center!important;
    padding:14px 6px!important;
    font-size:13px!important;
    border-bottom:1px solid rgba(116,66,75,.10)!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-dropdown{
    position:relative!important;
    display:block!important;
    width:100%!important;
    flex:none!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-toggle{
    width:100%!important;
    min-height:48px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    padding:14px 6px!important;
    font-size:13px!important;
    border-bottom:1px solid rgba(116,66,75,.10)!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-toggle::after{
    display:none!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu-compact{
    position:static!important;
    inset:auto!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0 0 4px 10px!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:transparent!important;
    backdrop-filter:none!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    display:none!important;
    z-index:auto!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-dropdown:hover>.nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown:focus-within>.nav-dropdown-menu{
    display:none!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-dropdown.is-open>.nav-dropdown-menu{
    display:block!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu::before{
    display:none!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu a{
    width:100%!important;
    display:block!important;
    padding:12px 14px!important;
    border-left:2px solid rgba(165,95,107,.28)!important;
    border-radius:0!important;
    transform:none!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu a:hover,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu a:focus-visible{
    transform:none!important;
  }
  .site-header.premium-public-header.one-line-public-header .header-nav-actions{
    flex:none!important;
  }
}

@media (max-width:560px){
  .site-header.premium-public-header.one-line-public-header .public-header-container>nav{
    padding:14px 16px 22px!important;
  }
  .site-header.premium-public-header.one-line-public-header .brand-copy{
    max-width:190px!important;
  }
  .site-header.premium-public-header.one-line-public-header .brand-copy strong{
    white-space:normal!important;
    line-height:1.05!important;
  }
}


/* ==========================================================
   MOBILE NAVIGATION HARD FIX V3 — 2026-08-11
   Uses a true in-flow accordion and disables desktop hover
   behavior on the hamburger layout.
   ========================================================== */
@media (max-width:1240px){
  .site-header.premium-public-header.one-line-public-header,
  .site-header.premium-public-header.one-line-public-header .public-header-container{
    overflow:visible!important;
  }
  .site-header.premium-public-header.one-line-public-header .public-header-container>nav{
    overflow-x:hidden!important;
    overflow-y:auto!important;
    contain:none!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-dropdown{
    overflow:visible!important;
    height:auto!important;
    min-height:48px!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu-compact{
    position:relative!important;
    top:auto!important;
    right:auto!important;
    bottom:auto!important;
    left:auto!important;
    float:none!important;
    clear:both!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
    transition:none!important;
    display:none!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-dropdown.is-open>.nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown.is-open>.nav-dropdown-menu-compact{
    display:block!important;
  }
  /* Never open a mobile dropdown from hover/focus alone. */
  .site-header.premium-public-header.one-line-public-header .nav-dropdown:not(.is-open):hover>.nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown:not(.is-open):focus-within>.nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown:not(.is-open):hover>.nav-dropdown-menu-compact,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown:not(.is-open):focus-within>.nav-dropdown-menu-compact{
    display:none!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-dropdown.is-open>.nav-dropdown-toggle svg{
    transform:rotate(180deg)!important;
  }
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu a{
    position:relative!important;
    z-index:1!important;
  }
}


/* ===== 2026 Rustic Rose unified burgundy / ivory visual refresh ===== */
:root{
  --rose:#8a4a55;
  --rose-deep:#6f3742;
  --rose-dark:#321e20;
  --blush:#ead7d3;
  --cream:#fbf7f1;
  --paper:#fffaf5;
  --ink:#2d2322;
  --muted:#756966;
  --gold:#b79a70;
  --line:rgba(75,45,47,.14);
  --shadow:0 22px 60px rgba(52,31,33,.14);
}
body{background:var(--cream);color:var(--ink)}

/* One consistent public header treatment */
.site-header,.premium-public-header,.one-line-public-header{
  background:rgba(255,250,245,.96)!important;
  border-bottom:1px solid rgba(77,43,46,.11)!important;
  box-shadow:0 9px 30px rgba(55,31,33,.045);
}
.brand-copy strong{color:#4a2d31}.brand-copy small{color:var(--rose)}
.site-header nav>a,.nav-dropdown-toggle{color:#513538!important}
.site-header nav>a:hover,.nav-dropdown-toggle:hover{color:var(--rose-deep)!important}
.nav-dropdown-menu{
  background:#fffaf6!important;
  border:1px solid rgba(91,50,56,.10)!important;
  box-shadow:0 24px 55px rgba(51,28,31,.13)!important;
}
.nav-dropdown-menu a{background:transparent!important;border-color:rgba(91,50,56,.08)!important}
.nav-dropdown-menu a:hover{background:#f5ebe5!important}
.nav-dropdown-menu strong{color:#7a404a!important}
.nav-dropdown-menu small{color:#756966!important}
.one-line-public-header .nav-admin-access{color:#6f3742!important;border-color:rgba(111,55,66,.28)!important}
.one-line-public-header .nav-call{background:#6f3742!important;border-color:#6f3742!important}

/* Make all image heroes share the same rich editorial tone */
.hero-overlay,
.services-page-hero__overlay,
.about-detail-hero__overlay{
  background:linear-gradient(90deg,rgba(43,24,26,.82) 0%,rgba(58,34,32,.58) 48%,rgba(54,34,31,.30) 100%),linear-gradient(0deg,rgba(37,22,23,.42),rgba(37,22,23,.06) 52%)!important;
}
.hero h1,.services-page-hero h1,.about-detail-hero__content h1{
  color:#fff!important;
  text-shadow:0 4px 28px rgba(25,13,14,.16);
}
.services-page-hero p,.about-detail-hero__content p{color:rgba(255,250,246,.88)!important}
.eyebrow.light{color:#f0dfd3!important}

/* Consistent editorial typography and surfaces */
.section-heading h2,.ethos-copy h2,.contact-copy h2,.social-panel h2,
.premium-services .section-heading h2,.planning-process h2,.trust-copy h2,
.service-area-section h2,.faq-heading h2,.home-gallery h2{
  color:#5f3339;
}
.ethos,.premium-services,.faq-section,.rustic-map-section{background:#fbf6f0!important}
.values-strip,.trust-section,.contact{background:#fffaf6!important}
.package-card,.premium-service-card,.contact-form,.about-values-grid article,.why-feature-grid article,.team-role-card{
  background:#fffaf6!important;
  border-color:rgba(111,55,66,.12)!important;
}
.package-card.featured{background:#6f3742!important}
.social-section,.testimonials-section,.footer{background:#2f1d1f!important}
.rustic-running-text{background:#7b414b!important}

/* Home gallery */
.home-gallery{
  background:#fffaf6!important;
  color:var(--ink)!important;
  padding:105px 0 115px;
}
.home-gallery-heading{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:70px;
  align-items:end;
  margin-bottom:42px;
}
.home-gallery-heading h2{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(48px,5.6vw,76px);
  line-height:.94;
  margin:9px 0 0;
  max-width:690px;
  font-weight:600;
}
.home-gallery-intro{max-width:520px;justify-self:end}
.home-gallery-intro p{margin:0 0 15px;color:var(--muted);font-size:14px;line-height:1.8}
.home-gallery .eyebrow{color:#8a4a55!important}
.home-gallery .text-link{color:#6f3742!important}
.home-gallery-grid{
  grid-template-columns:1.25fr .82fr .82fr;
  grid-template-rows:260px 260px;
  gap:10px;
}
.home-gallery-grid figure{
  border-radius:3px;
  background:#eee2da;
  box-shadow:0 1px 0 rgba(65,37,40,.08);
}
.home-gallery-grid figure.large{grid-row:1/3}
.home-gallery-grid figure.wide{grid-column:auto}
.home-gallery-grid figcaption{
  color:#fff;
  background:linear-gradient(transparent,rgba(37,20,22,.78));
  padding:58px 18px 16px;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-size:9px;
  font-weight:700;
}
.home-gallery-grid figure:after{
  content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.14);pointer-events:none
}

/* Gallery page keeps the same palette but a cleaner premium grid */
.gallery-page-hero{background:#2f1d1f!important}
.gallery-section:not(.home-gallery){background:#2f1d1f!important}
.gallery-section:not(.home-gallery) .section-heading h2{color:#fff!important}
.gallery-section:not(.home-gallery) .section-heading p{color:rgba(255,255,255,.66)!important}
.gallery-section:not(.home-gallery) .gallery-grid figure{border-radius:3px}

/* Mobile / tablet: preserve every nav item and let dropdowns grow in normal flow */
@media(max-width:1240px){
  .site-header nav,.one-line-public-header nav{
    background:#fffaf6!important;
    color:#513538!important;
  }
  .nav-dropdown-menu{
    box-shadow:none!important;
    background:#f9f0ea!important;
    border:1px solid rgba(111,55,66,.10)!important;
  }
  .nav-dropdown-menu a:hover{background:#f2e4dc!important}
}
@media(max-width:900px){
  .home-gallery{padding:78px 0 84px}
  .home-gallery-heading{grid-template-columns:1fr;gap:18px;align-items:start}
  .home-gallery-intro{justify-self:start;max-width:680px}
  .home-gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:none}
  .home-gallery-grid figure.large,.home-gallery-grid figure.wide{grid-row:auto;grid-column:auto}
  .home-gallery-grid figure img{height:330px}
}
@media(max-width:640px){
  .home-gallery{padding:66px 0 72px}
  .home-gallery-heading{margin-bottom:28px}
  .home-gallery-heading h2{font-size:clamp(43px,13vw,58px)}
  .home-gallery-grid{grid-template-columns:1fr;gap:9px}
  .home-gallery-grid figure img{height:300px}
  .home-gallery-grid figure:first-child img{height:360px}
  .nav-dropdown-menu strong{font-size:18px!important}
  .nav-dropdown-menu small{font-size:10px!important}
}

/* ==========================================================
   RUSTIC ROSE BRAND BALANCE FIX — 2026-08-11
   Burgundy + blush + champagne with proper light/dark contrast.
   ========================================================== */
:root{
  --rr-wine:#6b3440;
  --rr-wine-deep:#3b2327;
  --rr-wine-dark:#261719;
  --rr-blush:#ead8d3;
  --rr-blush-soft:#f5ebe6;
  --rr-ivory:#fffaf4;
  --rr-cream:#f9f3ec;
  --rr-champagne:#c6a46e;
  --rr-champagne-light:#ead6b5;
  --rr-ink:#302526;
  --rr-muted:#746769;
}

/* Keep the home page elegant and branded instead of one dark block. */
body{background:var(--rr-ivory)!important;color:var(--rr-ink)!important}

/* Light editorial surfaces */
.ethos,
.premium-services,
.home-gallery,
.rustic-map-section,
.contact{
  background:var(--rr-ivory)!important;
}
.services,
.faq-section,
.service-area-section{
  background:var(--rr-cream)!important;
}
.values-strip{
  background:var(--rr-wine)!important;
}

/* Burgundy headings only on light backgrounds */
.ethos-copy h2,
.section-heading h2,
.contact-copy h2,
.home-gallery h2,
.premium-services .section-heading h2,
.faq-heading h2,
.service-area-section h2{
  color:var(--rr-wine)!important;
}
.section-heading p,
.ethos-copy p,
.contact-copy p,
.home-gallery-intro p{
  color:var(--rr-muted)!important;
}

/* Testimonials: rich wine feature section with high-contrast ivory copy. */
.testimonials-section{
  background:
    radial-gradient(circle at 14% 12%,rgba(198,164,110,.14),transparent 28%),
    radial-gradient(circle at 88% 86%,rgba(234,216,211,.08),transparent 25%),
    linear-gradient(135deg,#4a2930 0%,#6b3440 52%,#3b2327 100%)!important;
  color:var(--rr-ivory)!important;
  border-top:1px solid rgba(198,164,110,.18);
  border-bottom:1px solid rgba(198,164,110,.18);
}
.testimonials-section .testimonial-heading .eyebrow,
.testimonials-section .eyebrow.light{
  color:var(--rr-champagne-light)!important;
}
.testimonials-section .testimonial-heading h2{
  color:var(--rr-ivory)!important;
}
.testimonials-section .testimonial-heading p{
  color:rgba(255,250,244,.72)!important;
}
.testimonials-section .testimonial-slide blockquote{
  color:#fffdf8!important;
}
.testimonials-section .testimonial-slide p,
.testimonials-section .testimonial-counter{
  color:var(--rr-champagne-light)!important;
}
.testimonials-section .quote-mark{
  color:var(--rr-champagne)!important;
}
.testimonials-section .testimonial-arrow{
  border-color:rgba(234,214,181,.48)!important;
  background:rgba(255,250,244,.06)!important;
  color:var(--rr-ivory)!important;
}
.testimonials-section .testimonial-arrow:hover{
  background:var(--rr-champagne)!important;
  color:var(--rr-wine-dark)!important;
  border-color:var(--rr-champagne)!important;
}
.testimonials-section .testimonial-dot{
  background:rgba(255,250,244,.34)!important;
}
.testimonials-section .testimonial-dot.is-active,
.testimonials-section .testimonial-progress-bar{
  background:var(--rr-champagne-light)!important;
}
.testimonials-section .testimonial-progress{
  background:rgba(255,250,244,.14)!important;
}

/* Social section: switch back to an airy blush/ivory surface so it doesn't merge into testimonials. */
.social-section{
  position:relative;
  background:
    radial-gradient(circle at 12% 18%,rgba(198,164,110,.12),transparent 28%),
    linear-gradient(135deg,#fffaf4 0%,#f5e9e4 100%)!important;
  color:var(--rr-ink)!important;
  border-bottom:1px solid rgba(107,52,64,.10);
}
.social-section::before{
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid rgba(107,52,64,.08);
  pointer-events:none;
}
.social-section .social-panel{position:relative;z-index:1}
.social-section .eyebrow.light{
  color:var(--rr-wine)!important;
}
.social-section .social-panel h2{
  color:var(--rr-wine-deep)!important;
}
.social-section .social-card{
  background:rgba(255,255,255,.72)!important;
  border:1px solid rgba(107,52,64,.16)!important;
  box-shadow:0 12px 34px rgba(72,39,45,.06);
}
.social-section .social-card strong{
  color:var(--rr-wine-deep)!important;
}
.social-section .social-card small{
  color:var(--rr-muted)!important;
}
.social-section .social-card b{
  color:var(--rr-wine)!important;
}
.social-section .social-card:hover{
  transform:translateY(-4px);
  background:#fff!important;
  border-color:rgba(107,52,64,.30)!important;
  box-shadow:0 18px 42px rgba(72,39,45,.11)!important;
}
/* Keep official social icon colors while the cards stay on-brand. */
.social-section .social-card.instagram:hover,
.social-section .social-card.facebook:hover,
.social-section .social-card.pinterest:hover{
  background:#fff!important;
}

/* Gold becomes the premium accent, burgundy remains the core brand color. */
.btn-primary,
.nav-cta,
.floating-consultation{
  background:var(--rr-wine)!important;
  color:#fff!important;
}
.btn-primary:hover,
.nav-cta:hover,
.floating-consultation:hover{
  background:var(--rr-wine-deep)!important;
}
.text-link,
.package-card>a,
.premium-service-card b,
.contact-details small{
  color:var(--rr-wine)!important;
}
.popular{background:var(--rr-champagne)!important;color:var(--rr-wine-dark)!important}

/* Footer stays dark, but with warmer branded contrast. */
.footer{
  background:var(--rr-wine-dark)!important;
  border-top:1px solid rgba(198,164,110,.18);
}
.footer h4{color:var(--rr-ivory)!important}
.footer a,.footer span,.footer-brand p{color:rgba(255,250,244,.68)!important}
.footer a:hover{color:var(--rr-champagne-light)!important}
.footer-bottom{border-color:rgba(234,214,181,.14)!important}

@media(max-width:980px){
  .social-section::before{inset:10px}
  .social-section .social-panel{gap:35px}
}

/* ==========================================================
   RUSTIC ROSE BRAND BALANCE FIX — 2026-08-11
   Burgundy + blush + champagne with proper light/dark contrast.
   ========================================================== */
:root{--rr-wine:#6b3440;--rr-wine-deep:#3b2327;--rr-wine-dark:#261719;--rr-blush:#ead8d3;--rr-blush-soft:#f5ebe6;--rr-ivory:#fffaf4;--rr-cream:#f9f3ec;--rr-champagne:#c6a46e;--rr-champagne-light:#ead6b5;--rr-ink:#302526;--rr-muted:#746769}
body{background:var(--rr-ivory)!important;color:var(--rr-ink)!important}
.ethos,.premium-services,.home-gallery,.rustic-map-section,.contact{background:var(--rr-ivory)!important}
.services,.faq-section,.service-area-section{background:var(--rr-cream)!important}
.values-strip{background:var(--rr-wine)!important}
.ethos-copy h2,.section-heading h2,.contact-copy h2,.home-gallery h2,.premium-services .section-heading h2,.faq-heading h2,.service-area-section h2{color:var(--rr-wine)!important}
.section-heading p,.ethos-copy p,.contact-copy p,.home-gallery-intro p{color:var(--rr-muted)!important}
.testimonials-section{background:radial-gradient(circle at 14% 12%,rgba(198,164,110,.14),transparent 28%),radial-gradient(circle at 88% 86%,rgba(234,216,211,.08),transparent 25%),linear-gradient(135deg,#4a2930 0%,#6b3440 52%,#3b2327 100%)!important;color:var(--rr-ivory)!important;border-top:1px solid rgba(198,164,110,.18);border-bottom:1px solid rgba(198,164,110,.18)}
.testimonials-section .testimonial-heading .eyebrow,.testimonials-section .eyebrow.light{color:var(--rr-champagne-light)!important}
.testimonials-section .testimonial-heading h2{color:var(--rr-ivory)!important}
.testimonials-section .testimonial-heading p{color:rgba(255,250,244,.72)!important}
.testimonials-section .testimonial-slide blockquote{color:#fffdf8!important}
.testimonials-section .testimonial-slide p,.testimonials-section .testimonial-counter{color:var(--rr-champagne-light)!important}
.testimonials-section .quote-mark{color:var(--rr-champagne)!important}
.testimonials-section .testimonial-arrow{border-color:rgba(234,214,181,.48)!important;background:rgba(255,250,244,.06)!important;color:var(--rr-ivory)!important}
.testimonials-section .testimonial-arrow:hover{background:var(--rr-champagne)!important;color:var(--rr-wine-dark)!important;border-color:var(--rr-champagne)!important}
.testimonials-section .testimonial-dot{background:rgba(255,250,244,.34)!important}
.testimonials-section .testimonial-dot.is-active,.testimonials-section .testimonial-progress-bar{background:var(--rr-champagne-light)!important}
.testimonials-section .testimonial-progress{background:rgba(255,250,244,.14)!important}
.social-section{position:relative;background:radial-gradient(circle at 12% 18%,rgba(198,164,110,.12),transparent 28%),linear-gradient(135deg,#fffaf4 0%,#f5e9e4 100%)!important;color:var(--rr-ink)!important;border-bottom:1px solid rgba(107,52,64,.10)}
.social-section::before{content:"";position:absolute;inset:18px;border:1px solid rgba(107,52,64,.08);pointer-events:none}
.social-section .social-panel{position:relative;z-index:1}
.social-section .eyebrow.light{color:var(--rr-wine)!important}
.social-section .social-panel h2{color:var(--rr-wine-deep)!important}
.social-section .social-card{background:rgba(255,255,255,.72)!important;border:1px solid rgba(107,52,64,.16)!important;box-shadow:0 12px 34px rgba(72,39,45,.06)}
.social-section .social-card strong{color:var(--rr-wine-deep)!important}
.social-section .social-card small{color:var(--rr-muted)!important}
.social-section .social-card b{color:var(--rr-wine)!important}
.social-section .social-card:hover,.social-section .social-card.instagram:hover,.social-section .social-card.facebook:hover,.social-section .social-card.pinterest:hover{transform:translateY(-4px);background:#fff!important;border-color:rgba(107,52,64,.30)!important;box-shadow:0 18px 42px rgba(72,39,45,.11)!important}
.btn-primary,.nav-cta,.floating-consultation{background:var(--rr-wine)!important;color:#fff!important}
.btn-primary:hover,.nav-cta:hover,.floating-consultation:hover{background:var(--rr-wine-deep)!important}
.text-link,.package-card>a,.premium-service-card b,.contact-details small{color:var(--rr-wine)!important}
.popular{background:var(--rr-champagne)!important;color:var(--rr-wine-dark)!important}
.footer{background:var(--rr-wine-dark)!important;border-top:1px solid rgba(198,164,110,.18)}
.footer h4{color:var(--rr-ivory)!important}.footer a,.footer span,.footer-brand p{color:rgba(255,250,244,.68)!important}.footer a:hover{color:var(--rr-champagne-light)!important}.footer-bottom{border-color:rgba(234,214,181,.14)!important}
@media(max-width:980px){.social-section::before{inset:10px}.social-section .social-panel{gap:35px}}


/* Professional CWP certification presentation */
.ethos-media .image-frame{
  position:relative;
  width:min(100%, 520px);
  aspect-ratio:1/1;
  margin-inline:auto;
  padding:18px;
  border-radius:50%;
  background:linear-gradient(145deg,#fffdf8,#f3ece4);
  border:1px solid rgba(125,58,73,.16);
  box-shadow:0 26px 70px rgba(57,31,35,.14);
  overflow:hidden;
}
.ethos-media .image-frame::before{
  content:"";
  position:absolute;
  inset:8px;
  border:1px solid rgba(188,149,72,.55);
  border-radius:50%;
  pointer-events:none;
  z-index:2;
}
.ethos-media .image-frame .cwp-professional-badge{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  border-radius:50%;
  background:#f4f2ec;
}
.ethos-media{
  padding:18px 40px 42px 10px;
}
.ethos-media .experience-badge{
  width:128px;
  height:128px;
  right:2px;
  bottom:18px;
  background:linear-gradient(145deg,#7a3948,#5f2835);
  border:5px solid #fcf8f3;
  box-shadow:0 18px 45px rgba(60,29,35,.22);
}
.ethos-media .experience-badge strong{
  font-size:42px;
}
.ethos-media .experience-badge span{
  font-size:9px;
  line-height:1.35;
  letter-spacing:.14em;
}
@media(max-width:900px){
  .ethos-media{
    width:min(100%,560px);
    margin-inline:auto;
    padding:12px 28px 38px 0;
  }
}
@media(max-width:640px){
  .ethos-media{
    padding:8px 18px 32px 0;
  }
  .ethos-media .image-frame{
    width:min(100%,390px);
    padding:14px;
  }
  .ethos-media .experience-badge{
    width:108px;
    height:108px;
    right:0;
    bottom:8px;
    border-width:4px;
  }
  .ethos-media .experience-badge strong{
    font-size:34px;
  }
  .ethos-media .experience-badge span{
    font-size:8px;
    max-width:76px;
  }
}


/* =========================================================
   Rustic Rose — Branded Planning Process
   Deep Wine + Ivory + Champagne + Blush
   ========================================================= */
:root{
  --rr-wine:#4A2B2E;
  --rr-wine-deep:#382124;
  --rr-ivory:#FFF9F2;
  --rr-cream:#F4E9DD;
  --rr-champagne:#C98F98;
  --rr-blush:#D9A7A9;
  --rr-body-light:#E7D9CF;
}

/* Planning/process section: force readable, branded contrast */
.process,
.planning-process,
.process-section,
section:has(.process-list),
section:has(.process-steps){
  background:
    radial-gradient(circle at 18% 15%, rgba(201,143,152,.10), transparent 34%),
    linear-gradient(135deg,var(--rr-wine-deep),var(--rr-wine)) !important;
  color:var(--rr-ivory) !important;
}

.process .eyebrow,
.planning-process .eyebrow,
.process-section .eyebrow,
section:has(.process-list) .eyebrow,
section:has(.process-steps) .eyebrow{
  color:var(--rr-champagne) !important;
  letter-spacing:.18em;
  font-weight:700;
}

.process h2,
.planning-process h2,
.process-section h2,
section:has(.process-list) h2,
section:has(.process-steps) h2{
  color:var(--rr-ivory) !important;
  text-shadow:0 1px 0 rgba(0,0,0,.08);
}

.process p,
.planning-process p,
.process-section p,
section:has(.process-list) p,
section:has(.process-steps) p{
  color:var(--rr-body-light) !important;
}

.process .step-number,
.planning-process .step-number,
.process-section .step-number,
.process-list .step-number,
.process-steps .step-number,
.process [class*="number"],
.planning-process [class*="number"]{
  color:var(--rr-blush) !important;
}

.process h3,
.planning-process h3,
.process-section h3,
.process-list h3,
.process-steps h3{
  color:var(--rr-ivory) !important;
}

.process .step,
.planning-process .step,
.process-section .step,
.process-list > *,
.process-steps > *{
  border-color:rgba(201,143,152,.30) !important;
}

.process hr,
.planning-process hr,
.process-section hr{
  border-color:rgba(201,143,152,.30) !important;
}

.process a.btn,
.planning-process a.btn,
.process-section a.btn,
.process .btn,
.planning-process .btn,
.process-section .btn{
  color:var(--rr-wine-deep) !important;
  background:var(--rr-champagne) !important;
  border:1px solid var(--rr-champagne) !important;
  box-shadow:0 10px 28px rgba(0,0,0,.15);
  font-weight:700;
}

.process a.btn:hover,
.planning-process a.btn:hover,
.process-section a.btn:hover,
.process .btn:hover,
.planning-process .btn:hover,
.process-section .btn:hover{
  color:var(--rr-wine-deep) !important;
  background:var(--rr-ivory) !important;
  border-color:var(--rr-ivory) !important;
  transform:translateY(-2px);
}

/* Exact text fallback for layouts that use custom class names */
.process-grid h2,
.process-grid h3{
  color:var(--rr-ivory) !important;
}
.process-grid p{
  color:var(--rr-body-light) !important;
}
.process-grid .eyebrow{
  color:var(--rr-champagne) !important;
}
.process-grid [class*="step"]{
  border-color:rgba(201,143,152,.30) !important;
}

/* Mobile polish */
@media(max-width:768px){
  .process,
  .planning-process,
  .process-section,
  section:has(.process-list),
  section:has(.process-steps){
    padding-top:72px !important;
    padding-bottom:72px !important;
  }
}

/* FINAL Rustic Rose brand correction — NO yellow/gold */
.process-section{
  background:linear-gradient(135deg,#321F22 0%,#4A2B31 52%,#5A303B 100%) !important;
  color:#FFF8F4 !important;
}
.process-section .eyebrow{
  color:#D8A8AF !important;
}
.process-section h2,
.process-section h3{
  color:#FFF8F4 !important;
}
.process-section p{
  color:#E9DCDD !important;
}
.process-section .step-number,
.process-section [class*="number"]{
  color:#D8A8AF !important;
}
.process-section .step,
.process-section [class*="step"]{
  border-color:rgba(216,168,175,.30) !important;
}
.process-section hr{
  border-color:rgba(216,168,175,.30) !important;
}
.process-section .btn,
.process-section a.btn{
  background:#7A3E4D !important;
  border-color:#A96576 !important;
  color:#FFF8F4 !important;
}
.process-section .btn:hover,
.process-section a.btn:hover{
  background:#FFF8F4 !important;
  border-color:#FFF8F4 !important;
  color:#5A303B !important;
}


/* =========================================================
   Booking form usability upgrade
   ========================================================= */
.contact-form,.booking-form{position:relative;z-index:2;overflow:visible!important}
.contact-form label,.contact-form input,.contact-form select,.contact-form textarea{pointer-events:auto!important}
.contact-form input,.contact-form select,.contact-form textarea{
  position:relative;z-index:3;background:#fff!important;color:#2e2022!important;
  min-height:54px!important;border:1px solid rgba(86,45,54,.25)!important;
  border-radius:12px!important;padding:14px 15px!important;font-size:16px!important;
  line-height:1.35!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.contact-form textarea{min-height:165px!important;resize:vertical!important;touch-action:auto!important}
.contact-form input[type="number"]{appearance:auto!important;-moz-appearance:textfield}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{
  outline:none!important;border-color:#8d4f5a!important;box-shadow:0 0 0 4px rgba(141,79,90,.12)!important;background:#fff!important
}
.contact-form .field-group{position:relative;display:block!important;margin-bottom:20px!important}
.contact-form .field-help{display:block;margin:4px 0 1px;color:#7b686c;font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;line-height:1.45}
.contact-form .message-field textarea{margin-top:9px}
.contact-form .char-count{display:block;text-align:right;margin-top:5px;color:#8c797d;font-size:11px;font-weight:600;letter-spacing:0;text-transform:none}
.contact-form .submit-btn{min-height:58px!important;border-radius:12px!important;font-size:13px!important;letter-spacing:.01em;transition:transform .2s,box-shadow .2s,background .2s}
.contact-form .submit-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(91,43,54,.18)}
.contact-form .submit-btn:disabled{opacity:.7;cursor:wait;transform:none}
.contact-form .form-fineprint{padding:12px 14px;background:#f8f0ef;border-left:3px solid #8d4f5a;border-radius:8px;text-align:left;line-height:1.55}
.contact-form input:invalid:not(:placeholder-shown),.contact-form select:invalid{border-color:rgba(150,52,61,.55)!important}
@media(max-width:640px){
 .contact-form{padding:24px 18px!important}
 .contact-form input,.contact-form select,.contact-form textarea{font-size:16px!important;width:100%!important}
 .contact-form textarea{min-height:180px!important}
 .contact-form .submit-btn{width:100%!important}
}

/* Event date + guest count alignment */
.booking-form .form-grid .form-group,
.consultation-form .form-grid .form-group{
  align-self:start;
}
.booking-form label,
.consultation-form label{
  min-height:20px;
}


/* Polished consent checkbox — Rustic Rose */
.booking-form .consent-row,
.consultation-form .consent-row,
.booking-form .form-check,
.consultation-form .form-check{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  padding:14px 0 !important;
  margin:12px 0 4px !important;
  background:transparent !important;
  border:0 !important;
}

.booking-form input[type="checkbox"],
.consultation-form input[type="checkbox"]{
  appearance:none !important;
  -webkit-appearance:none !important;
  width:20px !important;
  height:20px !important;
  min-width:20px !important;
  min-height:20px !important;
  margin:0 !important;
  padding:0 !important;
  border:1.5px solid #A96576 !important;
  border-radius:5px !important;
  background:#FFFDFC !important;
  box-shadow:none !important;
  cursor:pointer !important;
  display:grid !important;
  place-content:center !important;
  transition:.18s ease !important;
}

.booking-form input[type="checkbox"]::before,
.consultation-form input[type="checkbox"]::before{
  content:"" !important;
  width:10px !important;
  height:6px !important;
  border-left:2px solid #fff !important;
  border-bottom:2px solid #fff !important;
  transform:rotate(-45deg) scale(0) !important;
  transform-origin:center !important;
  transition:transform .12s ease !important;
  margin-top:-2px !important;
}

.booking-form input[type="checkbox"]:checked,
.consultation-form input[type="checkbox"]:checked{
  background:#6B3543 !important;
  border-color:#6B3543 !important;
}

.booking-form input[type="checkbox"]:checked::before,
.consultation-form input[type="checkbox"]:checked::before{
  transform:rotate(-45deg) scale(1) !important;
}

.booking-form input[type="checkbox"]:focus-visible,
.consultation-form input[type="checkbox"]:focus-visible{
  outline:none !important;
  box-shadow:0 0 0 4px rgba(169,101,118,.15) !important;
}

.booking-form .consent-row label,
.consultation-form .consent-row label,
.booking-form .form-check label,
.consultation-form .form-check label{
  min-height:0 !important;
  margin:0 !important;
  color:#4A3439 !important;
  font-size:13px !important;
  line-height:1.45 !important;
  font-weight:600 !important;
  letter-spacing:0 !important;
  cursor:pointer !important;
  text-transform:none !important;
}

.booking-form .consent-row a,
.consultation-form .consent-row a,
.booking-form .form-check a,
.consultation-form .form-check a{
  color:#7A3E4D !important;
  text-decoration:underline;
  text-underline-offset:2px;
}

@media(max-width:640px){
  .booking-form .consent-row,
  .consultation-form .consent-row,
  .booking-form .form-check,
  .consultation-form .form-check{
    align-items:flex-start !important;
    gap:10px !important;
  }
}

/* FINAL consent checkbox fix — isolated from text-input sizing */
.contact-form label.consent-row{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  gap:0!important;
  margin:18px 0 22px!important;
  padding:0!important;
  min-height:24px!important;
  background:transparent!important;
  border:0!important;
  font-size:13px!important;
  line-height:1.45!important;
  letter-spacing:0!important;
  text-transform:none!important;
  font-weight:600!important;
  color:#4b3439!important;
  cursor:pointer!important;
}
.contact-form label.consent-row > input[type="checkbox"]{
  position:absolute!important;
  opacity:0!important;
  width:1px!important;
  height:1px!important;
  min-width:0!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  box-shadow:none!important;
  pointer-events:none!important;
}
.contact-form label.consent-row > span{
  position:relative!important;
  display:block!important;
  padding-left:34px!important;
  min-height:22px!important;
  line-height:1.5!important;
}
.contact-form label.consent-row > span::before{
  content:""!important;
  position:absolute!important;
  left:0!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  width:20px!important;
  height:20px!important;
  border:1.5px solid #9f6572!important;
  border-radius:5px!important;
  background:#fffdfb!important;
  box-shadow:0 1px 2px rgba(78,45,53,.06)!important;
  box-sizing:border-box!important;
  transition:background .18s ease,border-color .18s ease,box-shadow .18s ease!important;
}
.contact-form label.consent-row > span::after{
  content:""!important;
  position:absolute!important;
  left:6px!important;
  top:50%!important;
  width:8px!important;
  height:4px!important;
  border-left:2px solid #fff!important;
  border-bottom:2px solid #fff!important;
  transform:translateY(-64%) rotate(-45deg) scale(0)!important;
  transform-origin:center!important;
  transition:transform .12s ease!important;
}
.contact-form label.consent-row > input[type="checkbox"]:checked + span::before{
  background:#6f3947!important;
  border-color:#6f3947!important;
}
.contact-form label.consent-row > input[type="checkbox"]:checked + span::after{
  transform:translateY(-64%) rotate(-45deg) scale(1)!important;
}
.contact-form label.consent-row > input[type="checkbox"]:focus-visible + span::before{
  box-shadow:0 0 0 4px rgba(159,101,114,.14)!important;
}
.contact-form label.consent-row a{
  color:#6f3947!important;
  font-weight:700!important;
  text-underline-offset:2px!important;
}
@media(max-width:640px){
  .contact-form label.consent-row{align-items:flex-start!important;font-size:12.5px!important;}
  .contact-form label.consent-row > span::before{top:2px!important;transform:none!important;}
  .contact-form label.consent-row > span::after{top:8px!important;transform:rotate(-45deg) scale(0)!important;}
  .contact-form label.consent-row > input[type="checkbox"]:checked + span::after{transform:rotate(-45deg) scale(1)!important;}
}

/* Booking link uses the same plain text navigation style as the other links. */






/* v22: clean gallery cards — no synthetic hover circles or bubbles */
.home-gallery-grid figure::before,
.home-gallery-grid figure::after{content:none!important;display:none!important;}
.home-gallery-grid figure{cursor:zoom-in;}
.home-gallery-grid figure:hover img{transform:scale(1.02)!important;}

/* FINAL HEADER/FOOTER ACTION PLACEMENT */
.one-line-public-header .nav-book-disabled-old{
  border:1px solid var(--rose-deep) !important;
  background:var(--rose-deep) !important;
  color:#fff !important;
  border-radius:999px !important;
  height:44px !important;
  padding:0 18px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-weight:700 !important;
  font-size:11px !important;
  line-height:1 !important;
  box-shadow:0 8px 20px rgba(82,45,51,.16) !important;
  text-decoration:none !important;
  white-space:nowrap !important;
}
.one-line-public-header .nav-book-disabled-old::before{
  content:"" !important;
  display:none !important;
}
.one-line-public-header .nav-book-disabled-old:hover,
.one-line-public-header .nav-book-disabled-old:focus-visible{
  background:#5f3740 !important;
  border-color:#5f3740 !important;
  color:#fff !important;
  transform:translateY(-1px) !important;
  box-shadow:0 11px 24px rgba(82,45,51,.22) !important;
  opacity:1 !important;
}

/* Call Now keeps its existing phone icon and exact visual treatment */
.one-line-public-header .header-nav-actions{
  display:flex !important;
  align-items:center !important;
}

/* Footer Admin Access: subtle, owner-only utility action */
.footer-admin-access{
  appearance:none !important;
  border:0 !important;
  background:transparent !important;
  color:inherit !important;
  font:inherit !important;
  font-size:12px !important;
  font-weight:600 !important;
  padding:0 !important;
  margin:0 !important;
  opacity:.72 !important;
  cursor:pointer !important;
  text-decoration:none !important;
}
.footer-admin-access:hover,
.footer-admin-access:focus-visible{
  opacity:1 !important;
  color:var(--rose-deep) !important;
  text-decoration:underline !important;
  text-underline-offset:3px !important;
  outline:none !important;
}

@media(max-width:1240px){
  .one-line-public-header .nav-book-disabled-old{
    width:100% !important;
    min-height:46px !important;
    height:46px !important;
    margin-top:10px !important;
  }
}


/* =========================================================
   FINAL — Refined Book a Consultation CTA
   Same visual family as Call Now, cleaner and more compact
   ========================================================= */
.one-line-public-header .header-nav-actions{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
}

.one-line-public-header .nav-book-disabled-old{
  height:44px !important;
  min-height:44px !important;
  width:auto !important;
  padding:0 16px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;

  border:1px solid rgba(122,62,77,.24) !important;
  border-radius:999px !important;

  background:#fff9f6 !important;
  color:#6B3543 !important;

  font-size:11px !important;
  font-weight:700 !important;
  line-height:1 !important;
  letter-spacing:.01em !important;
  white-space:nowrap !important;

  box-shadow:0 7px 18px rgba(75,42,49,.08) !important;
  text-decoration:none !important;
  transform:none !important;
  opacity:1 !important;

  transition:
    background .18s ease,
    color .18s ease,
    border-color .18s ease,
    box-shadow .18s ease,
    transform .18s ease !important;
}

.one-line-public-header .nav-book-disabled-old .nav-book-disabled-old-icon{
  width:18px !important;
  height:18px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 18px !important;

  border-radius:50% !important;
  background:#7A3E4D !important;
  color:#fff !important;

  font-size:8px !important;
  line-height:1 !important;
  font-weight:900 !important;
}

.one-line-public-header .nav-book-disabled-old:hover,
.one-line-public-header .nav-book-disabled-old:focus-visible{
  background:#7A3E4D !important;
  color:#fff !important;
  border-color:#7A3E4D !important;
  box-shadow:0 10px 22px rgba(75,42,49,.16) !important;
  transform:translateY(-1px) !important;
  opacity:1 !important;
}

.one-line-public-header .nav-book-disabled-old:hover .nav-book-disabled-old-icon,
.one-line-public-header .nav-book-disabled-old:focus-visible .nav-book-disabled-old-icon{
  background:#fff !important;
  color:#7A3E4D !important;
}

/* Keep Call Now as the stronger primary action */
.one-line-public-header .nav-call:not(.nav-book-disabled-old){
  height:44px !important;
  min-height:44px !important;
}

/* Tablet/mobile: full width but still refined */
@media(max-width:1240px){
  .one-line-public-header .nav-book-disabled-old{
    width:100% !important;
    min-height:46px !important;
    height:46px !important;
    margin-top:8px !important;
    justify-content:center !important;
  }
}

/* FINAL: Book a Consultation uses the exact same visual design as Call Now */
.one-line-public-header .nav-book-disabled-old,
.one-line-public-header .nav-book-disabled-old:hover,
.one-line-public-header .nav-book-disabled-old:focus-visible,
.one-line-public-header .nav-book-disabled-old:active{
  height:44px !important;
  min-height:44px !important;
  width:auto !important;
  padding:0 18px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;

  border:1px solid var(--rose-deep) !important;
  border-radius:999px !important;
  background:var(--rose-deep) !important;
  color:#fff !important;

  font-size:11px !important;
  font-weight:700 !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  white-space:nowrap !important;

  box-shadow:0 8px 20px rgba(82,45,51,.16) !important;
  text-decoration:none !important;
  opacity:1 !important;
}

.one-line-public-header .nav-book-disabled-old:hover,
.one-line-public-header .nav-book-disabled-old:focus-visible{
  background:#5f3740 !important;
  border-color:#5f3740 !important;
  color:#fff !important;
  transform:translateY(-1px) !important;
  box-shadow:0 11px 24px rgba(82,45,51,.22) !important;
}

.one-line-public-header .nav-book-disabled-old::before,
.one-line-public-header .nav-book-disabled-old::after{
  content:none !important;
  display:none !important;
}

/* Keep desktop spacing consistent with Call Now */
.one-line-public-header .header-nav-actions{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
}

/* Mobile keeps the same visual treatment, only stretches for usability */
@media(max-width:1240px){
  .one-line-public-header .nav-book-disabled-old{
    width:100% !important;
    min-height:46px !important;
    height:46px !important;
    margin-top:8px !important;
  }
}



/* v28: Book a Consultation inherits the exact .nav-call button design.
   Only the phone icon is hidden because this is not a phone action. */
.one-line-public-header .nav-call.nav-book::before{
  content:none !important;
  display:none !important;
  margin:0 !important;
}

/* FINAL FIX: nav-call buttons stay identical when clicked/current/active */
.one-line-public-header a.nav-call,
.one-line-public-header a.nav-call:link,
.one-line-public-header a.nav-call:visited,
.one-line-public-header a.nav-call:hover,
.one-line-public-header a.nav-call:focus,
.one-line-public-header a.nav-call:focus-visible,
.one-line-public-header a.nav-call:active,
.one-line-public-header a.nav-call.active,
.one-line-public-header a.nav-call[aria-current="page"]{
  background:var(--rose-deep) !important;
  border-color:var(--rose-deep) !important;
  color:#fff !important;
  opacity:1 !important;
  text-decoration:none !important;
  filter:none !important;
  box-shadow:0 8px 20px rgba(82,45,51,.16) !important;
}

.one-line-public-header a.nav-call:hover,
.one-line-public-header a.nav-call:focus-visible{
  background:#5f3740 !important;
  border-color:#5f3740 !important;
  color:#fff !important;
  opacity:1 !important;
  box-shadow:0 11px 24px rgba(82,45,51,.22) !important;
  transform:translateY(-1px) !important;
}

/* Current booking page must not inherit normal nav "active" text styling */
.one-line-public-header a.nav-call[aria-current="page"],
.one-line-public-header a.nav-call.active{
  color:#fff !important;
  background:var(--rose-deep) !important;
  opacity:1 !important;
}


/* Footer Admin Access button only */
footer .footer-admin-access{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:36px !important;
  padding:0 15px !important;
  margin:0 !important;
  border:1px solid rgba(255,255,255,.34) !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.10) !important;
  color:#fff !important;
  font:inherit !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1 !important;
  text-decoration:none !important;
  cursor:pointer !important;
  opacity:1 !important;
  box-shadow:none !important;
}
footer .footer-admin-access:hover,
footer .footer-admin-access:focus-visible{
  background:#fff !important;
  border-color:#fff !important;
  color:#4b2d33 !important;
  text-decoration:none !important;
  outline:none !important;
}


/* =========================================================
   FINAL FOOTER FIX — consistent on every public page
   ========================================================= */
footer .footer-bottom{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:24px !important;
  width:100% !important;
  padding-top:20px !important;
  border-top:1px solid rgba(255,255,255,.12) !important;
  flex-wrap:nowrap !important;
}

footer .footer-copyright{
  display:block !important;
  margin:0 !important;
  color:rgba(255,255,255,.78) !important;
  font-size:12px !important;
  line-height:1.4 !important;
  white-space:nowrap !important;
}

footer .footer-utility-links{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:16px !important;
  margin:0 !important;
  flex-wrap:nowrap !important;
  white-space:nowrap !important;
}

footer .footer-utility-links > a{
  display:inline-flex !important;
  align-items:center !important;
  margin:0 !important;
  padding:0 !important;
  color:rgba(255,255,255,.78) !important;
  font-size:12px !important;
  font-weight:600 !important;
  line-height:1 !important;
  text-decoration:none !important;
}

footer .footer-utility-links > a:hover{
  color:#fff !important;
  text-decoration:underline !important;
  text-underline-offset:3px !important;
}

footer .footer-admin-access{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:36px !important;
  padding:0 15px !important;
  margin:0 !important;
  border:1px solid rgba(255,255,255,.34) !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.08) !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1 !important;
  cursor:pointer !important;
  box-shadow:none !important;
  text-decoration:none !important;
}

footer .footer-admin-access:hover,
footer .footer-admin-access:focus-visible{
  background:#fff !important;
  border-color:#fff !important;
  color:#4b2d33 !important;
  outline:none !important;
}

/* Tablet */
@media(max-width:900px){
  footer .footer-bottom{
    flex-wrap:wrap !important;
    align-items:flex-start !important;
  }
  footer .footer-copyright{
    white-space:normal !important;
  }
}

/* Mobile */
@media(max-width:640px){
  footer .footer-bottom{
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:14px !important;
  }
  footer .footer-utility-links{
    width:100% !important;
    justify-content:flex-start !important;
    flex-wrap:wrap !important;
    gap:12px !important;
  }
}


/* =========================================================
   Footer layout matched to supplied reference
   Left copyright / centered Privacy / right Admin Access
   ========================================================= */
footer .footer-bottom-reference{
  display:grid !important;
  grid-template-columns:1fr auto 1fr !important;
  align-items:start !important;
  gap:28px !important;
  width:100% !important;
  padding-top:18px !important;
  border-top:1px solid rgba(255,255,255,.12) !important;
}

footer .footer-copy-block{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:6px !important;
  margin:0 !important;
  color:rgba(255,255,255,.78) !important;
  font-size:12px !important;
  line-height:1.25 !important;
}

footer .footer-copy-block span{
  display:block !important;
  margin:0 !important;
}

footer .footer-privacy-center{
  display:flex !important;
  justify-content:center !important;
  align-items:flex-start !important;
  margin:0 !important;
  padding-top:2px !important;
}

footer .footer-privacy-center a{
  color:rgba(255,255,255,.82) !important;
  font-size:12px !important;
  font-weight:600 !important;
  line-height:1 !important;
  text-decoration:none !important;
}

footer .footer-privacy-center a:hover{
  color:#fff !important;
  text-decoration:underline !important;
  text-underline-offset:3px !important;
}

footer .footer-admin-right{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:flex-start !important;
  margin:0 !important;
}

footer .footer-admin-access{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:62px !important;
  padding:0 18px !important;
  margin:0 !important;
  border:1px solid rgba(255,255,255,.38) !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.08) !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1 !important;
  cursor:pointer !important;
  box-shadow:none !important;
  text-decoration:none !important;
}

footer .footer-admin-access:hover,
footer .footer-admin-access:focus-visible{
  background:#fff !important;
  border-color:#fff !important;
  color:#4b2d33 !important;
  outline:none !important;
}

/* Mobile */
@media(max-width:700px){
  footer .footer-bottom-reference{
    grid-template-columns:1fr !important;
    gap:16px !important;
  }

  footer .footer-privacy-center{
    justify-content:flex-start !important;
  }

  footer .footer-admin-right{
    justify-content:flex-start !important;
  }

  footer .footer-admin-access{
    min-height:44px !important;
  }
}


/* =========================================================
   Production polish: smooth scroll, responsive behavior,
   accessibility and rendering performance
   ========================================================= */

html{
  scroll-behavior:smooth;
  scroll-padding-top:92px;
}

body{
  overflow-x:hidden;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

img,
video{
  max-width:100%;
}

img{
  height:auto;
}

section[id]{
  scroll-margin-top:92px;
}

/* Reduce expensive off-screen painting on long public pages */
@supports (content-visibility:auto){
  main > section:not(.hero){
    content-visibility:auto;
    contain-intrinsic-size:1px 700px;
  }
}

/* Robust wrapping so long content never causes horizontal overflow */
.footer,
.site-header,
main,
section,
.container{
  max-width:100%;
}

p,
h1,h2,h3,h4,
a,
button,
label{
  overflow-wrap:break-word;
}

/* Touch-friendly interactive controls */
@media (pointer:coarse){
  header nav a,
  header button,
  .btn,
  button,
  input,
  select{
    min-height:44px;
  }
}

/* Mobile layout safety */
@media(max-width:768px){
  html{
    scroll-padding-top:78px;
  }

  section[id]{
    scroll-margin-top:78px;
  }

  body{
    width:100%;
    overflow-x:hidden;
  }

  .container{
    width:min(100% - 32px, 1180px) !important;
    margin-inline:auto !important;
  }

  h1{
    font-size:clamp(2.35rem,12vw,4.2rem) !important;
    line-height:.96 !important;
  }

  h2{
    font-size:clamp(2rem,9vw,3.4rem) !important;
  }

  input,
  textarea,
  select{
    max-width:100% !important;
    font-size:16px !important;
  }
}

/* Respect OS accessibility preference */
@media (prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto !important;
  }

  *,
  *::before,
  *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* ==========================================================
   FINAL MOBILE HEADER + HERO FIX — 2026-08-12
   Authoritative rules kept at the end of the stylesheet so
   older responsive overrides cannot hide accordion content.
   ========================================================== */
@media (max-width:1240px){
  .site-header.premium-public-header.one-line-public-header .public-header-container > nav{
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }

  .site-header.premium-public-header.one-line-public-header .nav-dropdown{
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
    flex:0 0 auto!important;
  }

  .site-header.premium-public-header.one-line-public-header .nav-dropdown-toggle{
    width:100%!important;
    min-height:62px!important;
    height:auto!important;
    padding:17px 8px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    background:transparent!important;
    border:0!important;
    border-bottom:1px solid rgba(116,66,75,.12)!important;
    text-align:left!important;
  }

  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu-compact{
    position:static!important;
    inset:auto!important;
    float:none!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:6px 0 10px 14px!important;
    overflow:visible!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
    transition:none!important;
    background:#f9f0ea!important;
    border:0!important;
    border-bottom:1px solid rgba(116,66,75,.10)!important;
    border-radius:0!important;
    box-shadow:none!important;
    display:none!important;
  }

  .site-header.premium-public-header.one-line-public-header .nav-dropdown.is-open > .nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown.is-open > .nav-dropdown-menu-compact{
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
  }

  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu > a,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu-compact > a{
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:58px!important;
    padding:12px 14px!important;
    margin:0!important;
    color:#513538!important;
    background:transparent!important;
    border:0!important;
    border-left:2px solid rgba(111,55,66,.20)!important;
    text-decoration:none!important;
  }

  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu > a strong,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu-compact > a strong{
    display:block!important;
    color:#6f3742!important;
    font-size:17px!important;
    line-height:1.15!important;
  }

  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu > a small,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-menu-compact > a small{
    display:block!important;
    margin-top:4px!important;
    color:#756966!important;
    font-size:10px!important;
    line-height:1.35!important;
  }

  .site-header.premium-public-header.one-line-public-header .nav-dropdown.is-open > .nav-dropdown-toggle svg{
    transform:rotate(180deg)!important;
  }
}

/* The previous tablet rule gives hero buttons flex-basis:190px.
   Reset it when they stack vertically on phones. */
@media (max-width:520px){
  .hero{
    min-height:650px!important;
    height:auto!important;
    padding:84px 0 96px!important;
    align-items:center!important;
  }
  .hero .hero-content{
    width:min(100% - 32px,1180px)!important;
    padding-top:0!important;
  }
  .hero .hero-actions{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    width:100%!important;
    gap:12px!important;
    margin-top:26px!important;
  }
  .hero .hero-actions .btn{
    flex:0 0 auto!important;
    width:100%!important;
    height:auto!important;
    min-height:52px!important;
    max-height:none!important;
    padding:14px 18px!important;
    white-space:normal!important;
    line-height:1.3!important;
  }
  .wedding-walk{
    max-width:44vw!important;
    pointer-events:none!important;
  }
}

/* 2026-08-12 v32 — About detail hero desktop/tablet/mobile normalization
   Keeps full-bleed photography while constraining copy to an editorial column. */
.about-detail-hero{
  min-height:clamp(500px,62vh,650px) !important;
  align-items:center !important;
}
.about-detail-hero__content{
  width:min(1180px,calc(100% - 64px)) !important;
  max-width:1180px !important;
  margin-inline:auto !important;
  padding:120px 0 72px !important;
}
.about-detail-hero__content .eyebrow{
  display:block;
  margin-bottom:14px;
}
.about-detail-hero__content h1{
  width:min(100%,720px) !important;
  max-width:720px !important;
  margin:0 0 20px !important;
  font-size:clamp(3rem,4.25vw,4.6rem) !important;
  line-height:.98 !important;
  letter-spacing:-.025em;
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:normal;
}
.about-detail-hero__content p{
  width:min(100%,640px) !important;
  max-width:640px !important;
  margin:0 !important;
  font-size:clamp(.95rem,1.05vw,1.08rem) !important;
  line-height:1.7 !important;
  text-wrap:pretty;
}
@media(max-width:900px){
  .about-detail-hero{
    min-height:500px !important;
  }
  .about-detail-hero__content{
    width:min(100% - 40px,1180px) !important;
    padding:112px 0 60px !important;
  }
  .about-detail-hero__content h1{
    max-width:660px !important;
    font-size:clamp(2.8rem,7vw,4rem) !important;
  }
}
@media(max-width:600px){
  .about-detail-hero{
    min-height:460px !important;
    align-items:end !important;
  }
  .about-detail-hero__content{
    width:calc(100% - 32px) !important;
    padding:100px 0 46px !important;
  }
  .about-detail-hero__content h1{
    width:100% !important;
    font-size:clamp(2.4rem,11.2vw,3.25rem) !important;
    line-height:1 !important;
    letter-spacing:-.02em;
  }
  .about-detail-hero__content p{
    width:100% !important;
    font-size:.92rem !important;
    line-height:1.6 !important;
  }
}


/* ==========================================================
   MOBILE DROPDOWN FAILSAFE V5 — 2026-08-12
   The submenu can open from either the wrapper class or the
   button's ARIA state. This prevents older rules from hiding it.
   ========================================================== */
@media (max-width:1240px){
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-toggle[aria-expanded="true"] + .nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-toggle[aria-expanded="true"] + .nav-dropdown-menu-compact,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown.is-open > .nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown.is-open > .nav-dropdown-menu-compact{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    opacity:1!important;
    visibility:visible!important;
    overflow:visible!important;
    pointer-events:auto!important;
  }

  .site-header.premium-public-header.one-line-public-header .nav-dropdown-toggle[aria-expanded="false"] + .nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header .nav-dropdown-toggle[aria-expanded="false"] + .nav-dropdown-menu-compact{
    display:none!important;
  }
}


/* ==========================================================
   DEFINITIVE MOBILE DROPDOWN FIX V8 — 2026-08-12
   Native details/summary + overrides for legacy .is-open rules.
   ========================================================== */
.nav-dropdown > summary.nav-dropdown-toggle {
  list-style:none;
  cursor:pointer;
}
.nav-dropdown > summary.nav-dropdown-toggle::-webkit-details-marker { display:none; }
.nav-dropdown[open] > summary.nav-dropdown-toggle svg { transform:rotate(180deg)!important; }

@media (max-width:1240px) {
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown {
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown > summary.nav-dropdown-toggle {
    display:flex!important;
    width:100%!important;
    min-height:62px!important;
    padding:17px 8px!important;
    align-items:center!important;
    justify-content:space-between!important;
    border:0!important;
    border-bottom:1px solid rgba(116,66,75,.12)!important;
    background:transparent!important;
    color:#513538!important;
  }
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown:not([open]) > .nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown:not([open]) > .nav-dropdown-menu-compact {
    display:none!important;
  }

  /* These selectors intentionally outrank the old :focus-within/:hover hide rules. */
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown[open]:not(.is-open):focus-within > .nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown[open]:not(.is-open):focus-within > .nav-dropdown-menu-compact,
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown[open]:not(.is-open):hover > .nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown[open]:not(.is-open):hover > .nav-dropdown-menu-compact,
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown[open] > .nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown[open] > .nav-dropdown-menu-compact,
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown.is-open > .nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown.is-open > .nav-dropdown-menu-compact {
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
    position:static!important;
    inset:auto!important;
    float:none!important;
    clear:both!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:5px 0 10px 16px!important;
    opacity:1!important;
    visibility:visible!important;
    overflow:visible!important;
    pointer-events:auto!important;
    transform:none!important;
    transition:none!important;
    background:#fbf5f0!important;
    border:0!important;
    border-bottom:1px solid rgba(116,66,75,.12)!important;
    border-radius:0!important;
    box-shadow:none!important;
    z-index:auto!important;
  }
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown[open] > .nav-dropdown-menu > a,
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown[open] > .nav-dropdown-menu-compact > a {
    display:block!important;
    position:relative!important;
    width:100%!important;
    min-height:58px!important;
    padding:12px 14px!important;
    margin:0!important;
    color:#513538!important;
    background:transparent!important;
    border:0!important;
    border-left:2px solid rgba(111,55,66,.25)!important;
    text-decoration:none!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    z-index:2!important;
  }
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown[open] > .nav-dropdown-menu a strong,
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown[open] > .nav-dropdown-menu-compact a strong {
    display:block!important;
    color:#6f3742!important;
    font-size:16px!important;
    line-height:1.2!important;
  }
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown[open] > .nav-dropdown-menu a small,
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown[open] > .nav-dropdown-menu-compact a small {
    display:block!important;
    margin-top:4px!important;
    color:#756966!important;
    font-size:11px!important;
    line-height:1.35!important;
  }
}

@media (min-width:1241px) {
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown[open] > .nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown:hover > .nav-dropdown-menu,
  .site-header.premium-public-header.one-line-public-header details.nav-dropdown:focus-within > .nav-dropdown-menu {
    display:block!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
}

/* Mobile-only hero overlap fix: keep the existing animation position, but make it static and give the paragraph its own readable width. */
@media (max-width:520px){
  .hero .hero-content > p{
    width:300px!important;
    max-width:300px!important;
    margin-top:18px!important;
    line-height:1.58!important;
  }

  .hero .wedding-walk{
    animation:none!important;
  }
}

/* Mobile hero refinement: keep the wedding element fixed, slightly smaller, and fully within the viewport. */
@media (max-width:520px){
  .hero .wedding-walk{
    left:85%!important;
    top:38%!important;
    z-index:1!important;
    width:98px!important;
    height:125px!important;
    padding:9px 10px 8px!important;
    box-sizing:border-box!important;
    border-radius:18px!important;
    animation:none!important;
    transform:translate(-50%,-50%)!important;
  }

  .hero .wedding-walk::before{
    inset:7px!important;
    animation:none!important;
  }

  .hero .wedding-walk::after{
    width:90px!important;
    height:132px!important;
    top:-20px!important;
  }

  .hero .wedding-couple,
  .hero .bride-figure,
  .hero .groom-figure,
  .hero .walk-shadow,
  .hero .petal{
    animation:none!important;
  }

  .hero .wedding-couple{
    left:10px!important;
    right:10px!important;
    top:9px!important;
    bottom:8px!important;
  }

  .hero .petal-one{left:12px!important;top:27px!important;}
  .hero .petal-two{right:12px!important;top:60px!important;}
  .hero .petal-three{left:46px!important;top:10px!important;}
}
