/*
  Emma's Salon – Clean CSS rebuild
  - Single source of truth (removes duplicates / conflicting patches)
  - Consistent rounding on cards + images
  - Promo pill visible + responsive
  - Mobile menu panel
  Updated: 2026-03-03
*/

:root{
  --bg: #ffd4df;
  --surface: #ffe1ed;
  --ink: #2b2b33;
  --muted: #6f6f7a;
  --brand: #d86a8d;      /* soft pink */
  --brand-ink: #6b4a3a;  /* warm brown */
  --blush: #f6dcd3;
  --blush-border: #e7bfb2;

  --radius-sm: 12px;
  --radius-md: 18px;
  --radius-lg: 24px;
  --shadow-sm: 0 8px 20px rgba(0,0,0,.06);
  --shadow-md: 0 14px 30px rgba(0,0,0,.08);

  --container: 1120px;
}

/* Base */
*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
}
img{ max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
a:hover{ text-decoration:underline; }

.container{
  width:min(var(--container), calc(100% - 32px));
  margin-inline:auto;
}

.section{ padding:56px 0; }
@media (max-width: 700px){ .section{ padding:40px 0; } }

h1,h2,h3{ line-height:1.2; margin:0 0 10px; }
h1{ font-size: clamp(1.7rem, 3.2vw, 2.6rem); }
h2{ font-size: clamp(1.35rem, 2.4vw, 1.9rem); }
.lead{ color:var(--muted); font-size:1.05rem; }
.muted{ color:var(--muted); }
.fine{ color:var(--muted); font-size:.92rem; }

/* Simple blocks used on homepage */
.trust-grid, .how-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap:14px;
  margin-top:16px;
}
.trust-grid > div,
.how-grid > div{
  background: var(--surface);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--radius-md);
  padding: 12px 14px;
  box-shadow: var(--shadow-sm);
}

.cta-box{
  background: var(--surface);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--radius-lg);
  padding: 20px;
  box-shadow: var(--shadow-sm);
}

.flyer-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
}
@media (max-width: 700px){ .flyer-grid{ grid-template-columns: 1fr; } }

.flyer-thumb{ display:block; text-decoration:none; }
.flyer-thumb:hover{ text-decoration:none; transform: translateY(-1px); }
.flyer-thumb-label{ margin-top:10px; font-weight:700; color: var(--ink); }
.flyer-full{ box-shadow: var(--shadow-md); }

/* Layout helpers */
.grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:12px;
}
@media (max-width: 980px){ .grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px){ .grid{ grid-template-columns: 1fr; } }

.split{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap:18px;
  align-items:start;
}
@media (max-width: 860px){ .split{ grid-template-columns: 1fr; } }

/* Treatments pages */
.treatment-split{ align-items:stretch; }

/* Header / Nav */
.header{
  position:sticky;
  top:0;
  z-index:50;
  background: #ffd4df;
  backdrop-filter: blur(10px);
  border-bottom:1px solid rgba(0,0,0,.05);
}

.navbar{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:16px 0 14px;
}

.brand{
  width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
  padding:8px 0;
}
.brand img{
  height:96px;
  width:auto;
  max-width:min(980px, 96vw);
  object-fit:contain;
  display:block;
}

.navrow{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

.navlinks{
  display:flex;
  gap:14px;
  flex:1;
  justify-content:center;
  flex-wrap:wrap;
}
.navlinks a{
  padding:8px 10px;
  border-radius:999px;
  color:var(--ink);
}
.navlinks a:hover{ background:rgba(0,0,0,.04); text-decoration:none; }

.navcta{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

@media (max-width: 920px){
  .brand img{ height:80px; }
  .navrow{ flex-wrap:wrap; justify-content:center; }
  .navcta{ justify-content:center; }
}
@media (max-width: 560px){
  .brand img{ height:64px; }
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background:var(--surface);
  box-shadow: 0 1px 0 rgba(0,0,0,.03);
  font-weight:600;
  font-size:.95rem;
  line-height:1;
  white-space:nowrap;
}
.btn:hover{ text-decoration:none; transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.btn:active{ transform:none; }

.btn.primary{
  background: linear-gradient(135deg, var(--brand), #f2a4ba);
  border-color: rgba(0,0,0,.08);
  color:#fff;
}

.btn.ghost{
  background: transparent;
}

.menu-btn{
  display:none;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background:var(--surface);
  font-weight:700;
}

@media (max-width: 840px){
  .navlinks{ display:none; }
  .menu-btn{ display:inline-flex; }
}


/* Promo pill (nav) */
.promo-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 14px;
  border-radius:999px;
  background:var(--blush);
  border:2px dotted var(--blush-border);
  color:var(--brand-ink);
  font-weight:700;
  font-size:.9rem;
  line-height:1;
}
@media (max-width: 520px){
  .promo-pill{ padding:6px 10px; font-size:.82rem; }
}

/* Mobile panel */
.mobile-panel{
  display:none;
  margin-top:8px;
  padding:14px;
  background:var(--surface);
  border:1px solid rgba(0,0,0,.08);
  border-radius:var(--radius-md);
  box-shadow: var(--shadow-sm);
}
.mobile-panel a{
  display:block;
  padding:10px 10px;
  border-radius:var(--radius-sm);
}
.mobile-panel a:hover{ background:rgba(0,0,0,.04); text-decoration:none; }
.mobile-panel .row{ display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; }
.mobile-panel.show{ display:block; }

/* Active nav link */
.navlinks a.active,
.mobile-panel a.active{
  background: rgba(216,106,141,.12);
  border: 1px solid rgba(216,106,141,.22);
  text-decoration:none;
}

/* Hero */
.hero{ padding:34px 0 10px; }
.hero-grid{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap:18px;
  align-items:stretch;
}
@media (max-width: 920px){ .hero-grid{ grid-template-columns:1fr; } }

.hcard{
  background:var(--surface);
  border:1px solid rgba(0,0,0,.06);
  border-radius:var(--radius-lg);
  padding:22px;
  box-shadow: var(--shadow-sm);
}

.pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border-radius:999px;
  background: rgba(216,106,141,.10);
  border:1px solid rgba(216,106,141,.20);
  color:#7a2e47;
  font-weight:700;
  font-size:.86rem;
}

.hero-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }

/* Cards */
.card{
  background:var(--surface);
  border:1px solid rgba(0,0,0,.06);
  border-radius:var(--radius-lg);
  padding:18px;
  box-shadow: var(--shadow-sm);
}
.card:hover{ box-shadow: var(--shadow-md); text-decoration:none; }

.card .meta{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }

/* Media card + guaranteed rounding */
.media-card{
  padding:0;
  overflow:hidden;
}
.img-frame{
  border-radius: inherit;
  overflow:hidden;
}
.media-card img,
.img-frame img,
img.service-img,
img.hero-photo,
.rounded-img{
  display:block;
  width:100%;
  height:auto;
  border-radius: inherit;
  object-fit: cover;
}

/* Lists (prices) */
.list{ list-style:none; padding:0; margin:14px 0 0; display:grid; gap:10px; }
.list li{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:12px 12px;
  border:1px solid rgba(0,0,0,.06);
  border-radius:var(--radius-md);
  background: rgba(0,0,0,.015);
}

/* Page head */
.pagehead{ padding:18px 0 6px; }
.breadcrumb{ color:var(--muted); font-size:.92rem; margin-bottom:6px; }

/* Promo circle (treatments page) – keep, but tame */
.promo-card{ text-align:center; display:grid; gap:12px; place-items:center; }
.promo-circle{
  width:160px;
  height:160px;
  border-radius:50%;
  background:var(--blush);
  border:3px dotted var(--blush-border);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  color:var(--brand-ink);
  box-shadow: var(--shadow-sm);
}
.promo-circle-main{ font-size:2.1rem; font-weight:900; line-height:1; }
.promo-circle-off{ font-size:1.05rem; letter-spacing:2px; font-weight:800; line-height:1.1; margin-top:2px; }
.promo-circle-sub{ margin-top:10px; font-size:.98rem; font-style:italic; opacity:.9; line-height:1.1; }
@media (max-width: 520px){
  .promo-circle{ width:120px; height:120px; }
  .promo-circle-main{ font-size:1.7rem; }
  .promo-circle-off{ font-size:.95rem; }
  .promo-circle-sub{ font-size:.9rem; margin-top:8px; }
}

/* Footer */
.footer{ padding:40px 0; margin-top:30px; }
.footer-grid{
  display:grid;
  grid-template-columns: 1.2fr .9fr .9fr;
  gap:18px;
}
@media (max-width: 900px){ .footer-grid{ grid-template-columns:1fr; } }

/* Legacy flyer footer markup */
.footergrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:18px;
}
@media (max-width: 900px){ .footergrid{ grid-template-columns:1fr; } }
.small{ color: var(--muted); font-size: .9rem; margin-top: 18px; }

.sep{ border:none; border-top:1px solid rgba(0,0,0,.10); margin:10px 0 12px; }

/* WhatsApp floating button */
.whatsapp-float{
  position:fixed;
  right:18px;
  bottom:18px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border-radius:999px;
  background:#25D366;
  color:#fff;
  box-shadow: var(--shadow-md);
  border:1px solid rgba(0,0,0,.12);
  z-index:60;
}
.whatsapp-float:hover{ text-decoration:none; transform: translateY(-1px); }
.whatsapp-float svg{ width:22px; height:22px; fill:currentColor; display:block; }

/* Forms */
input, textarea, select{
  font: inherit;
}
.form{
  display:grid;
  gap:12px;
}
.field{
  display:grid;
  gap:6px;
}
.field input,
.field textarea,
.field select{
  padding:12px 12px;
  border-radius:var(--radius-md);
  border:1px solid rgba(0,0,0,.14);
  background: var(--surface);
}
.field textarea{ min-height:140px; resize:vertical; }

/* Accessibility */
:focus-visible{ outline: 3px solid rgba(216,106,141,.45); outline-offset: 2px; border-radius: 10px; }

/* Treatments: make the image fill the full height of its card (no white gap) */
.treatment-split { align-items: stretch; }

.treatment-split .media-card{
  display: flex;
  padding: 0;
  overflow: hidden;
}

.treatment-split .media-card .img-frame{
  flex: 1;
  display: block;
  border-radius: inherit;
  overflow: hidden;
}

.treatment-split .media-card img{
  width: 100%;
  display: block;
}

/* Treatments: keep images a consistent, neat size (no stretch/crop to match price box) */
.treatment-split{ align-items:flex-start; }

/* keep image cards tidy and uniform */
.treatment-split .media-card{
  padding: 0;
  overflow: hidden;
}

/* consistent aspect ratio like the massage image */
.treatment-split .img-frame{
  aspect-ratio: 4 / 3;      /* change to 3/2 if you prefer slightly wider */
  width: 100%;
  overflow: hidden;
  border-radius: inherit;
}

.treatment-split .img-frame img{
  width: 100%;
  height: 100%;
  object-fit: cover;         /* keeps it uniform without stretching */
  display: block;
}

/* ===============================
   Gallery page – remove white boxes ONLY in the gallery grid
   =============================== */

/* target the gallery content area only */
body.gallery-page main .media-card,
body.gallery-page main .card,
body.gallery-page main figure{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

body.gallery-page main .img-frame{
  background: transparent !important;
  border-radius: 14px;
  overflow: hidden;
}

body.gallery-page main img{
  display: block;
  width: 100%;
  height: auto;
}
.gallery-page main img{
  transition: transform .25s ease;
}

.gallery-page main img:hover{
  transform: scale(1.03);
}

/* Logo image */
.brand-logo-img{
  height: 52px;
  width: auto;
  display: block;
}
@media (max-width:520px){
  .brand-logo-img{ height: 44px; }
}

/* Premium contact form focus styling */
.contact-form input,
.contact-form textarea{
  transition: all .2s ease;
}

.contact-form input:focus,
.contact-form textarea:focus{
  border-color:#caa74a;
  box-shadow:0 0 0 3px rgba(202,167,74,0.15);
  outline:none;
}
.grid .card p{
  font-size:0.95rem;
  line-height:1.6;
}

.section p{
  max-width:720px;
}

/* Treatment card View buttons */

.card .btn{
  background:#f6efe8;
  border:1px solid #d8c4b3;
  color:#5c4638;
  font-weight:500;
  padding:8px 16px;
  border-radius:8px;
  transition:all 0.2s ease;
}

.card .btn:hover{
  background:#efe3d6;
  border-color:#c9ad96;
  color:#3e2f25;
}

/* Call + Email buttons */

.btn-call,
.btn-email{
  background:#f6efe8;
  border:1px solid #d8c4b3;
  color:#5c4638;
  font-weight:500;
  padding:10px 18px;
  border-radius:8px;
  transition:all 0.2s ease;
}

.btn-call:hover,
.btn-email:hover{
  background:#efe3d6;
  border-color:#c9ad96;
  color:#3e2f25;
}

/* Homepage hero contact buttons */
.hcard .btn,
.hcard a.btn{
  background:#f6efe8;
  border:1px solid #d8c4b3;
  color:#5c4638;
  font-weight:600;
  padding:10px 18px;
  border-radius:8px;
  transition:all .2s ease;
}

.hcard .btn:hover,
.hcard a.btn:hover{
  background:#efe3d6;
  border-color:#c9ad96;
  color:#3e2f25;
}

/* Make treatment cards equal height */

.grid{
  align-items:stretch;
}

.grid .card{
  display:flex;
  flex-direction:column;
  height:100%;
}

.grid .card p{
  flex-grow:1;
}

/* Prevent buttons stretching full width */

.grid .card .btn{
  align-self:flex-start;
  width:auto;
}

/* FAQ section */

.faq h3{
  margin-top:22px;
  font-size:1.05rem;
  color:#333;
}

.faq p{
  margin-top:6px;
  color:#555;
  line-height:1.6;
  max-width:720px;
}

.faq-card h3,
.card h3{
  margin-top:18px;
  font-size:1.02rem;
  color:#333;
}

.card p{
  line-height:1.6;
}

.treatments-info .card h3{
  margin-top:18px;
  font-size:1.02rem;
  color:#333;
}

.treatments-info .card p{
  line-height:1.6;
}

/* Stack SEO info cards vertically */

.treatments-info .grid{
  grid-template-columns:1fr;
  gap:28px;
}

.treatments-info .card{
  max-width:100%;
}

/* Contact form improvements */

.form .input{
  width:100%;
  padding:12px 14px;
  border:1px solid #e2d6cc;
  border-radius:8px;
  background:#fff;
  transition:border-color .2s ease, box-shadow .2s ease;
}

/* spacing between fields */
.form .field{
  margin-bottom:16px;
}

/* textarea size */
.form textarea.input{
  min-height:120px;
  resize:vertical;
}

/* focus style */
.form .input:focus{
  outline:none;
  border-color:#d6a77a;
  box-shadow:0 0 0 3px rgba(214,167,122,.15);
}

/* Contact page intro text */

.card .lead{
  font-size:0.98rem;
  line-height:1.6;
  color:#555;
  margin-bottom:16px;
}

.minimum-spend{
  display:inline-block;
  margin-top:10px;
  padding:8px 12px;
  border-radius:999px;
  background:#f6efe8;
  border:1px solid #d8c4b3;
  color:#5c4638;
  font-size:.9rem;
  font-weight:600;
}

/* Dual treatment images */

.dual-img{
  display:flex;
  gap:12px;
  padding:12px;
  flex-wrap:wrap;
}

.dual-img .img-frame{
  flex:1 1 48%;
  overflow:hidden;
  border-radius:var(--radius-md);
  min-height:1px;
}

.dual-img img{
  display:block;
  width:100%;
  height:auto;
}

/* Improve image sharpness on Retina displays */

.service-img{
  image-rendering:auto;
  -webkit-backface-visibility:hidden;
  transform:translateZ(0);
}

.consent{
  margin:18px 0;
  padding:14px 16px;
  border-radius:14px;
  background:#f8f6f3;
  border:1px solid rgba(0,0,0,.08);
  font-size:14px;
  line-height:1.55;
}

.consent label{
  display:flex;
  align-items:flex-start;
  gap:10px;
  cursor:pointer;
}

.consent input{
  margin-top:3px;
  transform:scale(1.15);
}
.treatment-item-copy{
  margin:8px 0 0;
  font-size:.96rem;
  line-height:1.65;
  color:#5f6470;
}

.card{
  text-decoration:none;
}

.card h3{
  margin-top:0;
}

/* Booking page layout */

.booking-layout{
  display:grid;
  grid-template-columns: minmax(280px, 380px) minmax(0, 1fr);
  gap:24px;
  align-items:start;
}

.booking-panel,
.booking-widget{
  height:auto;
  align-self:start;
}

.booking-panel h2,
.booking-widget h2{
  margin-top:0;
}

.booking-panel .list{
  margin-top:16px;
}

.booking-help{
  margin-top:16px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.booking-widget{
  overflow:hidden;
  padding:20px; /* reduce if your normal card padding is larger */
}

.square-booking-embed{
  margin-top:8px;
  border-radius:20px;
  overflow:hidden;
  background:#fff;
  height:560px;
}

.square-booking-embed iframe{
  width:100% !important;
  height:700px !important;
  border:0 !important;
  display:block;
  background:#fff;
}

.booking-note{
  margin-top:14px;
  font-size:.94rem;
  line-height:1.6;
  color:#667085;
}

@media (max-width: 920px){
  .booking-layout{
    grid-template-columns:1fr;
  }

  .square-booking-embed{
    height:680px;
  }

  .square-booking-embed iframe{
    height:680px !important;
  }
}

/* Insurance block */
.insurance-block{
  margin-top:18px;
}

.insurance-block img{
  cursor:pointer;
  transition:0.25s ease;
}

.insurance-block img:hover{
  transform:scale(1.05);
}

/* Card style (matches your site look) */
.insurance-card{
  background:#fff;
  border-radius:16px;
  padding:14px;
  width:200px;
  box-shadow:0 6px 18px rgba(0,0,0,0.08);
  cursor:pointer;
  transition:0.25s ease;
}

.insurance-card:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 28px rgba(0,0,0,0.12);
}

/* Badge */
.insurance-header{
  margin-bottom:8px;
}

.insurance-badge{
  background:#ffd4df;
  color:#b35c74;
  font-size:12px;
  padding:4px 10px;
  border-radius:20px;
  font-weight:600;
}

/* Image */
.insurance-thumb{
  width:100%;
  border-radius:10px;
}

/* Text */
.insurance-text{
  margin-top:8px;
  font-size:12px;
  color:#777;
  text-align:center;
}

/* Modal */
.cert-modal{
  display:none;
  position:fixed;
  z-index:9999;
  left:0;
  top:0;
  width:100%;
  height:100%;
  background:rgba(255,255,255,0.6);
  backdrop-filter: blur(8px);
}

.cert-content{
  background:#fff;
  padding:8px;
  display:block;
  margin:5% auto;
  max-width:90%;
  max-height:85%;
  border-radius:16px;
  box-shadow:0 20px 60px rgba(0,0,0,0.5);
  animation:zoomIn 0.2s ease;
}
.cert-close{
  position:absolute;
  top:20px;
  right:30px;
  color:#5c4638;
  font-size:34px;
  cursor:pointer;
}

/* Animations */
@keyframes fadeIn{
  from{opacity:0;}
  to{opacity:1;}
}

@keyframes zoomIn{
  from{transform:scale(0.95);}
  to{transform:scale(1);}
}

/* Massage Newport page images */
.massage-feature-split{
  align-items:center;
}

.massage-wide-image{
  padding:0;
  overflow:hidden;
}

.massage-wide-image img{
  display:block;
  width:100%;
  height:auto;
}

.massage-page-grid{
  align-items:center;
}

@media (max-width: 920px){
  .massage-feature-split{
    grid-template-columns:1fr;
  }
}

/* Waxing Newport page images */
.waxing-feature-split{
  align-items:center;
}

.waxing-wide-image{
  padding:0;
  overflow:hidden;
}

.waxing-wide-image img{
  display:block;
  width:100%;
  height:auto;
}

.waxing-page-grid{
  align-items:center;
}

@media (max-width: 920px){
  .waxing-feature-split{
    grid-template-columns:1fr;
  }
}

/* Facial Newport page images */
.facial-feature-split{
  align-items:center;
}

.facial-wide-image{
  padding:0;
  overflow:hidden;
}

.facial-wide-image img{
  display:block;
  width:100%;
  height:auto;
}

.facial-page-grid{
  align-items:center;
}

@media (max-width: 920px){
  .facial-feature-split{
    grid-template-columns:1fr;
  }
}

/* ===============================
   Nails Newport page
   =============================== */
.nails-page-grid{
  align-items:center;
}

.nails-feature-split{
  align-items:center;
}

.nails-wide-image{
  padding:0;
  overflow:hidden;
}

.nails-wide-image img{
  display:block;
  width:100%;
  height:auto;
}

/* ===============================
   Brows & Lashes Newport page
   =============================== */
.brows-lashes-page-grid{
  align-items:center;
}

/* FIX: remove padding from hero image card */
.brows-lashes-page-grid .media-card{
  padding:0;
  overflow:hidden;
}

.brows-lashes-page-grid .hero-photo{
  display:block;
  width:100%;
  height:auto;
}

.brows-lashes-feature-split{
  align-items:center;
}

.brows-lashes-wide-image{
  padding:0;
  overflow:hidden;
}

.brows-lashes-wide-image img{
  display:block;
  width:100%;
  height:auto;
}

/* ===== Homepage reviews rotator ===== */
.homepage-reviews{
  padding-top:24px;
}

.reviews-shell{
  background:linear-gradient(180deg, #f7eef2 0%, #f6f1ef 100%);
  border:1px solid #eadde4;
  border-radius:28px;
  padding:24px;
  box-shadow:0 14px 34px rgba(121,87,104,.08);
}

.reviews-intro{
  max-width:720px;
  margin:0 auto 18px;
  text-align:center;
}

.reviews-intro h2{
  margin:10px 0 8px;
}

.reviews-note{
  margin:10px 0 0;
  color:#8b6e7c;
  font-weight:600;
}

.reviews-rotator{
  position:relative;
  min-height:290px;
  max-width:860px;
  margin:0 auto;
}

.review-card{
  position:absolute;
  inset:0;
  opacity:0;
  transform:translateY(10px);
  pointer-events:none;
  transition:opacity .45s ease, transform .45s ease;
  background:#fff7fa;
  border:1px solid #eadde4;
  border-radius:24px;
  padding:24px 26px;
  box-shadow:0 12px 28px rgba(108,57,84,.08);
}

.review-card.is-active{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}

.review-stars{
  font-size:30px;
  line-height:1;
  color:#e1ab17;
  letter-spacing:4px;
  margin-bottom:12px;
}

.review-name{
  margin:0 0 10px;
  font-size:1.22rem;
  font-weight:700;
  color:#523846;
}

.review-text{
  margin:0;
  font-size:1rem;
  line-height:1.7;
  color:#4a3a43;
}

.review-service{
  margin:14px 0 0;
  font-weight:700;
  color:#9a5d78;
}

.review-dots{
  display:flex;
  justify-content:center;
  gap:10px;
  margin-top:18px;
}

.review-dot{
  width:12px;
  height:12px;
  border-radius:999px;
  border:none;
  background:#d8bfca;
  cursor:pointer;
  transition:transform .18s ease, background .18s ease;
}

.review-dot.is-active{
  background:#a0677f;
  transform:scale(1.15);
}

.review-dot:hover{
  background:#8d586f;
}

@media (max-width: 760px){
  .reviews-shell{
    padding:18px;
    border-radius:22px;
  }

  .reviews-rotator{
    min-height:360px;
  }

  .review-card{
    padding:20px 18px;
    border-radius:20px;
  }

  .review-stars{
    font-size:26px;
    letter-spacing:3px;
  }
}

/* Homepage reviews rotator */
.homepage-reviews{
  padding-top:24px;
}
.reviews-shell{
  background:linear-gradient(180deg, #f8f0f3 0%, #f6f1ef 100%);
  border:1px solid #eadde4;
  border-radius:28px;
  padding:24px;
  box-shadow:0 14px 34px rgba(121,87,104,.08);
}
.reviews-intro{
  max-width:720px;
  margin:0 auto 18px;
  text-align:center;
}
.reviews-intro h2{
  margin:10px 0 8px;
}
.reviews-note{
  margin:10px 0 0;
  color:#8b6e7c;
  font-weight:600;
}
.reviews-rotator{
  position:relative;
  min-height:290px;
  max-width:860px;
  margin:0 auto;
}
.review-card{
  position:absolute;
  inset:0;
  opacity:0;
  transform:translateY(10px);
  pointer-events:none;
  transition:opacity .45s ease, transform .45s ease;
  background:#fff8fb;
  border:1px solid #eadde4;
  border-radius:24px;
  padding:24px 26px;
  box-shadow:0 12px 28px rgba(108,57,84,.08);
}
.review-card.is-active{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
.review-stars{
  font-size:30px;
  line-height:1;
  color:#e1ab17;
  letter-spacing:4px;
  margin-bottom:12px;
}
.review-name{
  margin:0 0 10px;
  font-size:1.22rem;
  color:#523846;
}
.review-text{
  margin:0;
  font-size:1rem;
  line-height:1.7;
  color:#4a3a43;
}
.review-service{
  margin:14px 0 0;
  font-weight:700;
  color:#9a5d78;
}
.review-dots{
  display:flex;
  justify-content:center;
  gap:10px;
  margin-top:18px;
}
.review-dot{
  width:12px;
  height:12px;
  border-radius:999px;
  border:none;
  background:#d8bfca;
  cursor:pointer;
  transition:transform .18s ease, background .18s ease;
}
.review-dot.is-active{
  background:#a0677f;
  transform:scale(1.15);
}
.review-dot:hover{
  background:#8d586f;
}
@media (max-width: 760px){
  .reviews-shell{
    padding:18px;
    border-radius:22px;
  }
  .reviews-rotator{
    min-height:360px;
  }
  .review-card{
    padding:20px 18px;
    border-radius:20px;
  }
  .review-stars{
    font-size:26px;
    letter-spacing:3px;
  }
}


/* ===== Homepage reviews: allow longer Google review text ===== */
.reviews-rotator{
  min-height:430px;
}

.review-card{
  min-height:430px;
  overflow:hidden;
}

.review-text{
  font-size:.98rem;
  line-height:1.62;
}

@media (max-width: 760px){
  .reviews-rotator{
    min-height:560px;
  }

  .review-card{
    min-height:560px;
  }

  .review-text{
    font-size:.95rem;
    line-height:1.55;
  }
}

@media (max-width: 420px){
  .reviews-rotator{
    min-height:640px;
  }

  .review-card{
    min-height:640px;
  }
}

/* ===== Facebook follow section ===== */
.facebook-follow-section{
  padding-top:24px;
}

.facebook-follow-box{
  text-align:left;
}

.facebook-follow-box h2{
  margin-top:10px;
}

.facebook-follow-box p{
  max-width:760px;
}

.footer a[href*="facebook.com"]{
  font-weight:700;
  color:#5c4638;
}


/* ===== Facebook site links ===== */
.footer a[href*="facebook.com"],
.mobile-panel a[href*="facebook.com"]{
  font-weight:700;
  color:#5c4638;
}
