html { scroll-behavior: smooth; }
.site-faq { padding:80px 24px; background:#f2f0e8; color:#303633; }
.site-faq-inner { max-width:1000px; margin-inline:auto; }
#faq h2 { text-align:center; font:42px/1.2 Georgia,serif; margin:0 0 24px; }
.faq-item { background:#faf9f5; border:1px solid #bea348; border-radius:4px; }
.faq-item + .faq-item { margin-top:16px; }
.faq-item summary { padding:24px 28px; cursor:pointer; font:26px/1.4 Georgia,serif; }
.faq-item summary::marker { color:#85702d; }
.faq-item summary:focus-visible { outline:3px solid #c9aa43; outline-offset:4px; }
.faq-answer { padding:0 28px 28px; font:16px/1.8 Montserrat,sans-serif; }
.faq-answer p { margin:0 0 20px; }
.faq-answer p:last-child { margin:20px 0 0; }
.faq-answer ul { padding-left:24px; margin:0; }
.faq-answer li { margin-bottom:6px; }
.faq-answer li::marker { color:#85702d; }
@media (max-width:767px) {
  .site-faq { padding:48px 24px; }
  .faq-item summary { padding:20px; font-size:23px; }
  .faq-answer { padding:0 20px 20px; }
}
.site-prices { padding:80px 24px; background:#f2f0e8; color:#303633; }
.site-prices-inner { max-width:1000px; margin-inline:auto; }
#prices h2 { text-align:center; font:42px/1.2 Georgia,serif; margin:18px 0 24px; }
.price-options { display:grid; gap:24px; }
.price-option { display:grid; grid-template-columns:180px minmax(0,1fr); align-items:center; gap:32px; border:1px solid #bea348; border-radius:6px; background:#faf9f5; }
#prices .price-amount { margin:0; font:72px/1.2 Georgia,serif; color:#85702d; text-align:center; }
.price-option > div { padding-left:32px; border-left:1px solid #bea348; }
#prices h3 { margin:0 0 10px; font:28px/1.3 Georgia,serif; }
#prices .price-option div p { font:16px/1.7 Montserrat,sans-serif; margin:0; }
#prices .price-option .price-size { margin-bottom:12px; color:#796323; font-weight:600; }
.price-enquiry { display:table; margin:32px auto 0; padding:16px 28px; background:#bea348; color:#232820; border-radius:4px; text-align:center; text-decoration:none; font:600 13px/1.5 Montserrat,sans-serif; letter-spacing:1px; text-transform:uppercase; }
.price-enquiry:hover { background:#ac913b; color:#232820; }
@media (max-width:767px) {
  .site-prices { padding:48px 24px; }
  .price-option { grid-template-columns:minmax(0,1fr); gap:20px; }
  .price-option > div { padding:20px 0 0; border-left:0; border-top:1px solid #bea348; text-align:center; }
  #prices .price-amount { font-size:56px; }
}
.cryopen-benefits { padding:80px 24px; background:#faf9f5; color:#303633; }
.cryopen-benefits-inner { max-width:1000px; margin-inline:auto; }
#why-cryopen h2 { text-align:center; font:42px/1.2 Georgia,serif; margin:18px 0 24px; }
#why-cryopen h2 span { font-size:.7em; }
.cryopen-benefit-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 32px; padding:0; margin:0; list-style:none; }
.cryopen-benefit-list li { display:flex; align-items:flex-start; gap:16px; padding:20px; background:#f2f0e8; border-radius:4px; font:16px/1.7 Montserrat,sans-serif; }
.cryopen-benefit-list li span { flex-shrink:0; color:#796323; font-weight:700; }
@media (max-width:767px) {
  .cryopen-benefits { padding:48px 24px; }
  .cryopen-benefit-list { grid-template-columns:minmax(0,1fr); gap:16px; }
}
.cryopen-treatments { padding:80px 24px; background:#faf9f5; color:#303633; }
.cryopen-treatments-inner { max-width:1000px; margin-inline:auto; }
#what-can-cryopen-treat h2 { text-align:center; font:42px/1.2 Georgia,serif; margin:18px 0 24px; }
.cryopen-treatments-intro { text-align:center; font:16px/1.8 Montserrat,sans-serif; margin:0 auto 32px; }
.cryopen-lesions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 40px; margin:0; padding:0; list-style:none; }
.cryopen-lesions li { position:relative; padding:18px 0 18px 24px; border-bottom:1px solid #e3dbc2; font:16px/1.7 Montserrat,sans-serif; }
.cryopen-lesions li::before { content:""; position:absolute; left:0; top:29px; width:6px; height:6px; border-radius:50%; background:#bea348; }
.cryopen-suitability { margin:32px 0 0; padding:20px 24px; border-left:3px solid #bea348; background:#f2f0e8; font:16px/1.8 Montserrat,sans-serif; }
@media (max-width:767px) {
  .cryopen-treatments { padding:48px 24px; }
  .cryopen-lesions { grid-template-columns:minmax(0,1fr); }
}
.how-it-works { background:#f2f0e8; padding:80px 24px; color:#303633; }
.how-it-works-inner { max-width:1200px; margin-inline:auto; }
.how-it-works-intro { max-width:900px; margin:0 auto 48px; }
.how-it-works-eyebrow { display:block; text-align:center; color:#85702d; font:600 13px/1.5 Montserrat,sans-serif; letter-spacing:2px; text-transform:uppercase; }
#how-it-works h2 { text-align:center; font:42px/1.2 Georgia,serif; margin:18px 0 24px; }
.how-it-works-rule { width:48px; height:3px; background:#bea348; margin:0 auto 32px; }
#how-it-works p { font:16px/1.8 Montserrat,sans-serif; margin:0 0 16px; }
#how-it-works .how-it-works-subheading { text-align:center; font:30px/1.3 Georgia,serif; margin:0 0 32px; }
.treatment-steps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; list-style:none; padding:0; margin:0; }
.treatment-step { background:#faf9f5; border:1px solid #c3aa5c; border-radius:4px; }
.treatment-step-number { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid #bea348; border-radius:50%; color:#796323; font:18px/1 Georgia,serif; margin-bottom:20px; }
#how-it-works h4 { font:26px/1.3 Georgia,serif; color:#303633; margin:0 0 16px; }
#how-it-works .treatment-step p:last-child { margin-bottom:0; }
@media (max-width:767px) {
  .how-it-works { padding:48px 24px; }
  .treatment-steps { grid-template-columns:minmax(0,1fr); }
  #how-it-works h4 { font-size:24px; }
}
.validation-summary-valid { display: none; }
.enquiry-errors:not(.validation-summary-valid) { width:100%; padding:16px; margin-bottom:20px; color:#8b2525; background:#fff3f1; border:1px solid #8b2525; font:14px/1.6 Montserrat,sans-serif; }
.enquiry-success { width:100%; padding:16px; margin-bottom:20px; color:#244d32; background:#f0f7f0; font:14px/1.6 Montserrat,sans-serif; }
.enquiry-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
input:focus-visible, textarea:focus-visible, select:focus-visible, button:focus-visible, a:focus-visible { outline:3px solid #c9aa43; outline-offset:4px; }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Keep the original desktop layout; stack its narrow columns on small screens. */
@media (max-width:767px) {
  main .e-flexbox-base { flex-direction:column !important; align-items:stretch !important; }
  main .e-con { width:100% !important; max-width:100% !important; min-width:0 !important; }
  main .elementor > .e-con { padding:48px 24px !important; }
  main .e-con .e-con:not(.site-card) { padding-left:0 !important; padding-right:0 !important; }
  main h1 { font-size:40px !important; line-height:1.15 !important; overflow-wrap:normal; }
  main h2 { font-size:32px !important; line-height:1.2 !important; }
  main h3 { font-size:25px !important; line-height:1.3 !important; }
  main .e-image-base { width:100% !important; height:auto !important; max-height:560px; object-fit:cover; }
  main .e-button-base { white-space:normal; text-align:center; width:100%; }
  main .elementor-form .elementor-col-50 { width:100%; }
  main .elementor-widget-google_maps iframe { width:100%; }
}

/* A shared inset for treatment, benefit, testimonial, value and consultation cards. */
#content {
  --card-padding-block:32px;
  --card-padding-inline:28px;
}
#content .site-card {
  padding:var(--card-padding-block) var(--card-padding-inline) !important;
}
#content .site-card > :is(h3, p, img) {
  min-width:0;
  max-width:100%;
}
#content .site-card > :is(h3, p) { overflow-wrap:anywhere; }

/* Four icon cards become too narrow near the tablet breakpoint. */
@media (min-width:768px) and (max-width:1024px) {
  #content :is(.elementor-element-container_spao138ir, .elementor-element-container_s0cgbi2uc) {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:767px) {
  /* Preserve an inset around the story panel's text, button and image. */
  #content .elementor-element-container_xozwhy9nk {
    padding:var(--card-padding-block) var(--card-padding-inline) !important;
  }
}

/* Progressive enhancement: all reviews remain readable without JavaScript. */
#testimonials.carousel-ready .testimonial-slides {
  display:grid; grid-template-columns:minmax(0, 1fr); gap:0;
  width:100%; max-width:820px; margin-inline:auto;
}
#testimonials.carousel-ready .testimonial-slides > .site-card {
  grid-area:1 / 1; width:100%; min-width:0; align-self:stretch;
}
#testimonials .site-card[aria-hidden="true"] { visibility:hidden; pointer-events:none; }
#testimonials .testimonial-controls:not([hidden]) {
  display:flex; align-items:center; justify-content:center; gap:20px; width:100%;
}
#testimonials .testimonial-dots { display:flex; align-items:center; gap:4px; }
#testimonials .testimonial-controls button {
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; padding:0; cursor:pointer; background:transparent;
  border:0; color:#68571f;
}
#testimonials .testimonial-controls .testimonial-arrow {
  border:1px solid #bea348; border-radius:50%; font-size:24px;
}
#testimonials .testimonial-dots span {
  width:9px; height:9px; border:1px solid #bea348; border-radius:50%;
}
#testimonials .testimonial-dots [aria-current="true"] span { background:#bea348; }
#testimonials .testimonial-arrow:hover { background:#eee7d3; }

.site-header {
  display:flex; align-items:center; justify-content:space-between; gap:32px;
  padding:22px max(24px, calc((100vw - 1320px) / 2));
  background:#faf9f5; border-bottom:1px solid #d9c990;
}
.site-brand { color:#292c2b; text-decoration:none; font:28px/1.15 Georgia,serif; white-space:nowrap; }
.site-brand span { display:block; margin-top:7px; font:10px/1.5 Montserrat,sans-serif; letter-spacing:1.4px; text-transform:uppercase; }
.site-menu nav { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:8px 20px; }
.site-menu nav a { color:#353833; font:13px/1.5 Montserrat,sans-serif; padding:8px 0; text-decoration:none; }
.site-menu nav a:hover { color:#7b641f; text-decoration:underline; text-underline-offset:5px; }
.site-menu summary { display:flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; cursor:pointer; color:#353833; font:14px/1.5 Montserrat,sans-serif; padding:12px; list-style:none; }
.site-menu summary::-webkit-details-marker { display:none; }
.site-menu summary::marker { content:""; }
.site-menu summary span { margin:0; }
.site-footer { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:28px 24px; background:#faf9f5; border-top:1px solid #d9c990; font:13px/1.5 Montserrat,sans-serif; }
.site-footer button { border:0; background:none; color:#65531f; text-decoration:underline; cursor:pointer; padding:12px; }
@media (min-width:1100px) {
  .site-menu > summary { display:none; }
  .site-menu:not([open]) > nav { display:flex; }
  .site-menu::details-content { content-visibility:visible; }
}
@media (max-width:1099px) {
  .site-header { position:relative; flex-wrap:wrap; gap:16px; padding:18px 24px; }
  .site-menu { margin-left:auto; }
  .site-menu[open] { width:auto; }
  .site-menu[open] summary { text-align:right; }
  .site-menu nav {
    position:absolute; top:100%; inset-inline:0; z-index:100;
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 16px;
    padding:12px 24px 24px; background:#faf9f5; border-bottom:1px solid #d9c990;
  }
  .site-menu nav a { padding:12px; border-bottom:1px solid #e7dfc5; }
}

/* Each supplied photo already contains the complete comparison. */
.treatment-gallery { padding:80px 24px; background:#faf9f5; color:#303633; scroll-margin-top:100px; }
.treatment-gallery-inner { max-width:1200px; margin-inline:auto; }
.gallery-heading { text-align:center; margin-bottom:36px; }
.gallery-eyebrow { color:#796323; font:600 13px/1.5 Montserrat,sans-serif; letter-spacing:2px; text-transform:uppercase; }
#before-after h2 { font:42px/1.2 Georgia,serif; margin:18px 0; }
.gallery-rule { width:48px; height:3px; background:#bea348; margin:0 auto 24px; }
.gallery-heading p { margin:0; font:16px/1.8 Montserrat,sans-serif; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; list-style:none; padding:0; margin:0; }
.gallery-card { min-width:0; border:1px solid #e3dbc2; border-radius:4px; background:#f2f0e8; overflow:hidden; }
.gallery-card[hidden], .gallery-toggle[hidden] { display:none; }
.gallery-photo { display:block; padding:10px; color:inherit; text-decoration:none; }
.gallery-photo:hover { color:#796323; background:#ede9dc; }
.gallery-photo:focus-visible { outline-offset:-4px; }
.gallery-photo img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; border-radius:2px; }
.gallery-caption { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:16px 8px 8px; font:22px/1.3 Georgia,serif; }
.gallery-enlarge { font:500 12px/1.5 Montserrat,sans-serif; text-decoration:underline; text-underline-offset:3px; color:#796323; }
.gallery-actions { display:flex; flex-direction:column; align-items:center; gap:20px; margin-top:28px; }
.gallery-count { margin:0; font:14px/1.6 Montserrat,sans-serif; }
.gallery-toggle, .gallery-book, .gallery-close { min-height:48px; padding:14px 28px; border:1px solid #977a28; border-radius:4px; font:600 13px/1.4 Montserrat,sans-serif; letter-spacing:1px; text-align:center; cursor:pointer; }
.gallery-toggle { background:transparent; color:#796323; text-transform:uppercase; }
.gallery-toggle:hover, .gallery-close:hover { background:#ede9dc; }
.gallery-book { background:#bea348; color:#232820; text-decoration:none; text-transform:uppercase; }
.gallery-book:hover { background:#ac913b; color:#232820; }
.gallery-modal-open { overflow:hidden; }
.gallery-dialog { width:min(900px,calc(100% - 32px)); max-width:none; max-height:calc(100dvh - 32px); padding:16px; border:1px solid #bea348; border-radius:4px; background:#faf9f5; color:#303633; }
.gallery-dialog::backdrop { background:rgb(20 24 21 / 80%); }
.gallery-dialog-bar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; }
#before-after .gallery-dialog h3 { margin:0; font:24px/1.3 Georgia,serif; }
.gallery-close { padding:10px 16px; background:transparent; color:#796323; letter-spacing:0; }
.gallery-full-photo { display:block; width:100%; height:auto; max-height:calc(100dvh - 140px); object-fit:contain; }
@media (max-width:1024px) { .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:767px) {
  .treatment-gallery { padding:48px 24px; }
  .gallery-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
  .gallery-toggle, .gallery-book { width:100%; }
  .gallery-caption { font-size:20px; }
}

/* Keep navigation within reach when the visitor scrolls back up. */
.site-header.scroll-header { position:sticky; top:0; z-index:200; transition:transform .2s ease; }
.site-header.scroll-header.is-hidden { transform:translateY(-100%); }
.site-header.scroll-header:has(:focus-visible) { transform:translateY(0); }
#content > section { scroll-margin-top:calc(var(--site-header-height, 100px) + 16px); }
@media (max-width:1099px) {
  .site-menu nav { max-height:calc(100dvh - var(--site-header-height, 100px)); overflow-y:auto; }
}
@media (prefers-reduced-motion:reduce) {
  .site-header.scroll-header { transition:none; }
}

/* Preserve the transparent logo’s full artwork and natural proportions. */
.site-brand { display:block; position:relative; flex-shrink:0; width:250px; }
.site-brand img { display:block; width:100%; height:auto; }
@media (max-width:767px) {
  .site-brand { width:210px; }
}
@media (max-width:359px) {
  .site-brand { width:180px; }
}

/* Cap all section content while keeping backgrounds full-width. */
#content > section {
  box-sizing:border-box;
  padding-inline:max(48px, calc((100% - 1280px) / 2)) !important;
}
#content > #home {
  gap:48px;
  align-items:center;
}
#home > .elementor-element-container_vzq512yll {
  flex:1 1 0;
  min-width:0;
}
#home > img {
  flex:0 1 45%;
  width:45%;
  min-width:0;
  height:auto;
}
@media (max-width:767px) {
  #content > section { padding-inline:24px !important; }
  #content > #home { gap:0; }
  #home > .elementor-element-container_vzq512yll { flex:auto; width:100%; }
  #home > img { display:none; }
}

/* Values imagery and compact title icons. */
#values .elementor-element-container_s0cgbi2uc { grid-template-columns:repeat(2,minmax(0,1fr)); }
#values .value-photo { display:block; width:100%; height:auto; aspect-ratio:10 / 7; object-fit:cover; object-position:center; border-radius:3px; }
#values .value-title { display:flex; align-items:center; gap:12px; width:100%; }
#values .value-title svg { width:28px; height:28px; flex:0 0 28px; fill:#bea348; }
#values .value-title h3 { margin:0; min-width:0; }
@media (max-width:767px) {
  #values .elementor-element-container_s0cgbi2uc { grid-template-columns:minmax(0,1fr); }
}

#location .e-divider-base { border-color:#bea348; background-color:#bea348; }

.benefits-heart { width:0.85em; height:0.85em; fill:#bea348; vertical-align:-0.05em; }

.google-reviews-widget { width:100%; min-width:0; }
