/*
Theme Name: GilbertHealingMassage
Theme URI: https://gilberthealingmassage.com/
Description: Divi child theme for Gilbert Healing Massage, with a branded theme preview and included promotional graphic. Requires the Divi parent theme; intended for Divi 5.
Author: Gilbert Healing Massage
Template: Divi
Version: 1.1.0
Text Domain: gilbert-healing-massage-child
*/

/* =========================================================
   Gilbert Healing Massage — design system for Divi 5
   Pages are built with Divi 5 modules; layout + look come from
   the ghm-* CSS classes set on each section/row/column/module
   (Advanced > Attributes > CSS Class in the Visual Builder).
   ========================================================= */

:root{
  --paper:#f6f3eb;--green:#344a3c;--green-dark:#1d3426;--ink:#293b30;--muted:#667166;
  --line:#d9ddcf;--sand:#e9e6d9;--sage:#e8ecdf;--footer:#293e31;
  --serif:'Libre Caslon Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;
  --wrap:1220px;
}

/* ---------- Base ---------- */
body{background:var(--paper)!important;color:var(--ink);font:16px/1.7 var(--sans);-webkit-font-smoothing:antialiased}
#page-container,#main-content,#et-boc,.et-l--body,.et-l--post{background:var(--paper)}
#main-content .container:before{display:none}
#page-container a{color:inherit;text-decoration:none}
#page-container a:focus-visible,#page-container button:focus-visible{outline:3px solid #9b6a36;outline-offset:5px}
#page-container h1,#page-container h2,#page-container h3,#page-container h4,#page-container h5{font-family:var(--serif);font-weight:400;line-height:1.06;color:inherit;padding:0;margin:0 0 22px}
#page-container h1{font-size:clamp(54px,6.3vw,96px);letter-spacing:-2px}
#page-container h2{font-size:clamp(40px,4vw,62px);letter-spacing:-1px}
#page-container h3{font-size:32px}
#page-container p{color:var(--muted);max-width:620px;margin:0 0 22px;padding:0}
#page-container .et_pb_text_inner>*:last-child{margin-bottom:0}
#page-container .et_pb_text{font-family:var(--sans);font-size:16px;line-height:1.7;color:var(--ink)}
.ghm-eyebrow,#page-container .eyebrow{font-size:10px;letter-spacing:2.2px;font-weight:600;display:block;margin-bottom:24px;color:var(--ink);text-transform:uppercase}

/* ---------- Divi 5 layout resets for ghm sections ---------- */
#page-container .et_pb_section.ghm-sec{padding:95px 0;background-color:transparent;border:0}
#page-container .ghm-sec>.et_pb_row{width:88%;max-width:var(--wrap);padding:0;margin:0 auto}
#page-container .ghm-sec>.et_pb_row+.et_pb_row{margin-top:35px}
#page-container .ghm-sec .et_flex_column{row-gap:0}
#page-container .ghm-grid{display:grid!important;align-items:start}
#page-container .ghm-grid>.et_pb_column{width:auto!important;max-width:none!important;min-width:0;flex:none!important;margin:0!important}
#page-container .ghm-sec .et_pb_module{margin-bottom:0}

/* ---------- Buttons (Divi Button module + .ghm-btn class) ---------- */
#page-container .et_pb_button.ghm-btn,#page-container .ghm-btn-html{display:inline-flex!important;flex-direction:row!important;flex-wrap:nowrap;white-space:nowrap;width:auto;align-items:center;justify-content:space-between;gap:34px;padding:16px 24px!important;background:var(--green);color:#fff!important;font:500 13px/1.4 var(--sans);letter-spacing:0;border:1px solid var(--green)!important;border-radius:0;transition:background .2s}
#page-container .et_pb_button.ghm-btn:hover,#page-container .ghm-btn-html:hover{background:var(--green-dark);padding:16px 24px!important}
#page-container .et_pb_button.ghm-btn:after{content:"↗"!important;font-family:var(--sans)!important;font-size:20px!important;line-height:1!important;opacity:1!important;position:static!important;margin:0!important;display:inline-block!important;transform:none;color:inherit}
#page-container .et_pb_button.ghm-btn:before{display:none}
#page-container .et_pb_button.ghm-btn--light{background:#e5e9d5;border-color:#e5e9d5!important;color:#24392b!important}
#page-container .et_pb_button.ghm-btn--light:hover{background:#fff}
#page-container .et_pb_button.ghm-btn--sand{background:#e8ecd9;border-color:#e8ecd9!important;color:var(--green)!important}
#page-container .et_pb_button.ghm-btn--sand:hover{background:#fff}
#page-container .et_pb_button.ghm-btn--noarrow:after{display:none!important}
.textlink,#page-container a.textlink{display:inline-block;font-size:13px;border-bottom:1px solid #a7af9c;padding-bottom:5px;margin:20px 0}
#page-container .ghm-textlink{margin-top:20px}
#page-container .ghm-textlink a{font-size:13px;border-bottom:1px solid #a7af9c;padding-bottom:5px}

/* ---------- Photos (Image module + .ghm-photo) ---------- */
#page-container .ghm-photo{width:100%;margin:0}
#page-container .ghm-photo .et_pb_image_wrap{display:block;width:100%}
#page-container .ghm-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:3px}
#page-container .ghm-photo--43 img{aspect-ratio:4/3;border-radius:4px}
#page-container .ghm-photo--45 img{aspect-ratio:4/5}
#page-container .ghm-credit{margin-top:8px}
#page-container .ghm-credit p{font-size:9px;line-height:1.5;color:#6a7368;margin:0;max-width:none}
#page-container .ghm-credit a{text-decoration:underline;text-underline-offset:2px}

/* ---------- Hero (Section background image + .ghm-hero) ---------- */
#page-container .et_pb_section.ghm-hero{position:relative;min-height:490px;padding:70px 0;display:flex;align-items:center;justify-content:center;background-size:cover!important;background-position:center 48%!important;background-color:#24392b!important;color:#fff;overflow:hidden}
#page-container .et_pb_section.ghm-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,28,20,.86) 0%,rgba(15,28,20,.64) 48%,rgba(15,28,20,.22) 100%);z-index:0;pointer-events:none}
#page-container .et_pb_section.ghm-hero--home{min-height:610px}
#page-container .ghm-hero>.et_pb_row{position:relative;z-index:1;width:86%;max-width:var(--wrap)}
#page-container .ghm-hero .et_pb_column{max-width:780px}
#page-container .ghm-hero h1{font-size:clamp(50px,5.1vw,80px);max-width:780px;letter-spacing:-1.4px;margin-bottom:24px;line-height:1.08;text-wrap:balance;color:#fff}
#page-container .ghm-hero h1 em{color:#e6dbb9;font-style:italic}
#page-container .ghm-hero p{color:#f1f1e8;max-width:600px;font-size:16px;line-height:1.8;margin-bottom:25px}
#page-container .ghm-hero .eyebrow{color:#e1e6d2;font-size:10px;margin-top:20px}
#page-container .ghm-hero .crumb{font-size:11px;color:#e2e7d7;border-bottom:1px solid #bac5ae}

/* ---------- Section heading (eyebrow/H2 left, intro right) ---------- */
#page-container .ghm-section-heading{display:flex!important;justify-content:space-between;align-items:flex-end;gap:80px}
#page-container .ghm-section-heading>.et_pb_column{width:auto!important;flex:0 1 auto!important;margin:0!important}
#page-container .ghm-section-heading>.et_pb_column:last-child p{max-width:350px;font-size:14px}

/* ---------- Treatment cards ---------- */
#page-container .ghm-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:50px 30px}
#page-container .ghm-cards--4{grid-template-columns:repeat(4,minmax(0,1fr))}
#page-container .ghm-cards--4 .ghm-card-copy h3{font-size:26px}
#page-container .ghm-card{display:flex!important;flex-direction:column;height:100%}
#page-container .ghm-card .ghm-card-copy{flex:1;display:flex;flex-direction:column;padding:19px 0 22px;border-bottom:1px solid var(--line);margin-top:0}
#page-container .ghm-card .ghm-card-copy .et_pb_text_inner{display:flex;flex-direction:column;height:100%}
#page-container .ghm-card-copy small{font-size:9px;text-transform:uppercase;letter-spacing:1.5px;display:block}
#page-container .ghm-card-copy h3{font-size:29px;margin:14px 0}
#page-container .ghm-card-copy h3 a{display:block}
#page-container .ghm-card-copy h3 a:hover{text-decoration:underline;text-underline-offset:5px}
#page-container .ghm-card-copy h3 span{float:right;font:20px Arial,sans-serif}
#page-container .ghm-card-copy p{font-size:13px;margin-bottom:18px}
#page-container .ghm-card-copy .card-link{display:block;margin-top:auto;padding-top:18px;font-size:11px;letter-spacing:.4px}

/* ---------- Editorial row (text + photo) ---------- */
#page-container .et_pb_section.ghm-editorial{border-bottom:1px solid var(--line)}
#page-container .ghm-editorial-row{grid-template-columns:1fr 1fr;gap:8%;align-items:center}
#page-container .ghm-editorial-row.reverse>.et_pb_column:first-child{order:2}
#page-container .ghm-editorial-row.reverse>.et_pb_column:last-child{order:1}
#page-container .ghm-editorial-row p{font-size:15px;line-height:1.9}
#page-container .ghm-editorial-row h2{font-size:clamp(38px,3.4vw,53px);line-height:1.12}

/* ---------- Rates ---------- */
#page-container .ghm-rates{grid-template-columns:1fr 1fr;border:1px solid var(--line);gap:0}
#page-container .ghm-rates>.et_pb_column{padding:45px}
#page-container .ghm-rates>.et_pb_column+.et_pb_column{border-left:1px solid var(--line)}
#page-container .ghm-rates span{font-size:11px;letter-spacing:1px}
#page-container .ghm-rates h3{font-size:40px;margin:15px 0}
#page-container .ghm-rates strong{font:60px var(--serif);display:block;margin-bottom:20px;font-weight:400}
#page-container .ghm-rates p{font-size:14px}
#page-container .ghm-rates .ghm-btn{margin-top:22px}
#page-container .ghm-note p{font-size:12px;margin-top:22px}
#page-container .addons{border-top:1px solid var(--line);margin-bottom:25px}
#page-container .addons>div{display:flex;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line);font-size:14px}
#page-container .addons strong{font-weight:600}

/* ---------- Photo grid (3 image tiles) ---------- */
#page-container .ghm-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
#page-container .ghm-photo-grid h3{font-size:30px;line-height:1.15;margin-top:25px}
#page-container .ghm-photo-grid p{font-size:14px;line-height:1.85}

/* ---------- Reading / prose sections ---------- */
#page-container .et_pb_section.ghm-reading{padding:65px 0}
#page-container .ghm-reading>.et_pb_row{max-width:1040px}
#page-container .ghm-reading p{max-width:none;line-height:1.9}
#page-container .ghm-reading h2{font-size:45px;line-height:1.15}
#page-container .ghm-prose>.et_pb_row{max-width:1000px}
#page-container .ghm-prose h2{font-size:36px;line-height:1.18;margin-top:42px}
#page-container .ghm-prose h2:first-child{margin-top:0}
#page-container .ghm-prose p{max-width:none}

/* ---------- Session (copy + price card) ---------- */
#page-container .et_pb_section.ghm-session{background:var(--sage)}
#page-container .ghm-session-row{grid-template-columns:1.3fr .7fr;gap:9%}
#page-container .ghm-session p{font-size:15px}
#page-container .ghm-aside{background:var(--paper);border:1px solid var(--line);padding:35px!important;align-self:start}
#page-container .ghm-aside span{font-size:12px;letter-spacing:1px;text-transform:uppercase;display:block}
#page-container .ghm-aside strong{display:block;font:48px Georgia,serif;margin:0 0 20px;font-weight:400}
#page-container .ghm-aside p{font-size:12px}
#page-container .ghm-aside .ghm-btn{margin-top:10px}

/* ---------- FAQ (Divi Toggle modules + .ghm-faq-item) ---------- */
#page-container .et_pb_toggle.ghm-faq-item{border:0;border-top:1px solid #cbd1c0;background:transparent!important;padding:20px 0;margin:0}
#page-container .ghm-faq-item:last-child{border-bottom:1px solid #cbd1c0}
#page-container .ghm-faq-item .et_pb_toggle_title{font:500 17px/1.5 var(--sans);color:var(--ink);padding-right:40px}
#page-container .ghm-faq-item .et_pb_toggle_title:before{color:var(--green);right:0}
#page-container .ghm-faq-item .et_pb_toggle_content{padding-top:16px}
#page-container .ghm-faq-item .et_pb_toggle_content p{font-size:14px;max-width:800px;margin:0}

/* ---------- Treatment links ---------- */
#page-container .et_pb_section.ghm-links{border-top:1px solid var(--line)}
#page-container .ghm-links-grid .et_pb_text_inner{display:grid;grid-template-columns:repeat(3,1fr);gap:0 40px}
#page-container .ghm-links-grid a{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:17px 0;font-size:14px}
#page-container .ghm-links-grid a:hover{color:var(--green)}

/* ---------- Closing CTA band ---------- */
#page-container .et_pb_section.ghm-closing{background:var(--green);text-align:center;color:#f7f3e8;padding:75px 0;border-bottom:1px solid #64735e}
#page-container .ghm-closing .et_pb_column{align-items:center}
#page-container .ghm-closing .et_pb_text,#page-container .ghm-closing .et_pb_text_inner{text-align:center!important;width:100%}
#page-container .ghm-closing .eyebrow{color:#f7f3e8}
#page-container .ghm-closing h2{color:#f7f3e8}
#page-container .ghm-closing p{margin:0 auto 26px;color:#d3dccf}
#page-container .ghm-closing .et_pb_button_module_wrapper{display:flex;justify-content:center}
#page-container .ghm-closing .ghm-textlink a{color:#e2e8db;border-color:#7c8b76}

/* ---------- Contact / reviews / journal ---------- */
#page-container .et_pb_section.ghm-contact{padding:65px 0}
#page-container .ghm-contact .phone{font:36px Georgia,serif;display:block;margin:15px 0}
#page-container .ghm-review-row{grid-template-columns:1fr 1.2fr 1fr;gap:40px;align-items:center}
#page-container .ghm-review-row h2{font-size:38px}
#page-container .ghm-review-row p{font-size:14px}
#page-container .ghm-review-row .ghm-photo img{aspect-ratio:4/5}
#page-container .ghm-journal-row{grid-template-columns:1fr 1fr;gap:8%}
#page-container .ghm-journal-row h2{font-size:43px}
#page-container .ghm-journal-row p{font-size:14px}
#page-container .ghm-journal-row .ghm-credit{margin-bottom:35px}
#page-container .ghm-intro p{max-width:none}

/* ---------- Header (Theme Builder header layout) ---------- */
#page-container .et_pb_section.ghm-header{padding:0;background:var(--paper)!important;border-bottom:1px solid var(--line);position:relative;z-index:50}
#page-container .ghm-header-row{width:89%!important;max-width:none!important;min-height:114px;padding:0!important;display:grid!important;grid-template-columns:auto 1fr auto;align-items:center;gap:26px}
#page-container .ghm-header-row>.et_pb_column{width:auto!important;max-width:none!important;margin:0!important}
#page-container .ghm-logo img{width:260px;height:auto;max-width:100%;display:block}
#page-container .ghm-logo .et_pb_image_wrap{display:block}
#page-container .ghm-header-row>.et_pb_column:nth-child(2){align-items:flex-end}
#page-container .ghm-nav{width:100%;background:transparent!important}
#page-container .ghm-nav .et_pb_menu__wrap{justify-content:flex-end}
#page-container .ghm-nav .et-menu{display:flex;gap:0 24px;flex-wrap:wrap;justify-content:flex-end}
#page-container .ghm-nav .et-menu>li{padding:0!important;margin:0!important}
#page-container .ghm-nav .et-menu>li>a{font:400 13px/1.7 var(--sans);color:var(--ink)!important;padding:10px 0!important;opacity:1!important}
#page-container .ghm-nav .et-menu>li>a:hover,#page-container .ghm-nav .et-menu>li.current-menu-item>a{text-decoration:underline;text-underline-offset:8px}
#page-container .ghm-nav .mobile_menu_bar:before{color:var(--green)!important}
#page-container .ghm-nav .et_mobile_menu{background:var(--paper);border-top:2px solid var(--green);padding:20px 25px}
#page-container .ghm-nav .et_mobile_menu li a{font-size:15px;color:var(--ink)!important;border-bottom:1px solid var(--line);padding:12px 0}

/* ---------- Footer (Theme Builder footer layout) ---------- */
#page-container .et_pb_section.ghm-footer{background:var(--footer)!important;color:#fff;padding:75px 0 25px}
#page-container .ghm-footer>.et_pb_row{width:88%;max-width:none;padding:0;margin:0 auto}
#page-container .ghm-footer-grid{grid-template-columns:1.3fr 1fr 1fr;gap:50px}
#page-container .ghm-footer p{font-size:13px;margin-top:23px;color:#d9e2d5}
#page-container .ghm-footer .ghm-logo img{width:300px}
#page-container .ghm-footer small{font-size:10px;letter-spacing:1.5px;display:block;margin-bottom:20px;color:#fff}
#page-container .ghm-footer .ghm-footer-links a,#page-container .ghm-footer .ghm-footer-visit a{display:block;font-size:13px;margin-bottom:7px;color:#fff}
#page-container .ghm-footer a:hover{text-decoration:underline;text-underline-offset:4px}
#page-container .ghm-footer .ghm-footer-visit p{margin-top:0}
#page-container .ghm-footer-bottom{border-top:1px solid #62705f;padding-top:25px!important;margin-top:45px!important}
#page-container .ghm-footer-bottom .et_pb_text_inner{display:flex;gap:25px;font-size:10px;color:#d9e2d5}
#page-container .ghm-footer-bottom .et_pb_text_inner span{margin-right:auto}
#page-container .ghm-footer-bottom p{display:contents}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  #page-container .ghm-cards--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  #page-container .ghm-review-row{gap:20px}
  #page-container .ghm-nav .et-menu{gap:0 15px}
}
@media (max-width:1000px){
  #page-container .ghm-header-row{min-height:100px;gap:15px}
  #page-container .ghm-header .ghm-logo img{width:210px}
  #page-container .ghm-header .ghm-btn{padding:12px 16px!important;gap:15px}
  #page-container .ghm-cards{gap:40px 20px}
  #page-container .ghm-section-heading{gap:30px}
}
@media (max-width:980px){
  #page-container .ghm-header-row{grid-template-columns:minmax(0,1fr) auto auto}
  #page-container .ghm-header-row>.et_pb_column{grid-row:1;min-width:0}
  #page-container .ghm-header-row>.et_pb_column:nth-child(1){grid-column:1}
  #page-container .ghm-header-row>.et_pb_column:nth-child(2){grid-column:3;align-items:flex-end;width:auto!important}
  #page-container .ghm-header-row>.et_pb_column:nth-child(3){grid-column:2;align-items:flex-end}
  #page-container .ghm-nav .et_pb_menu__wrap{justify-content:flex-end}
  #page-container .ghm-nav .mobile_nav{display:flex;justify-content:flex-end}
}
@media (max-width:760px){
  #page-container h1{letter-spacing:-1px}
  #page-container .et_pb_section.ghm-sec{padding:60px 0}
  #page-container .ghm-sec>.et_pb_row{width:86%}
  #page-container .ghm-header-row{min-height:88px;width:92%!important;gap:8px}
  #page-container .ghm-header .ghm-logo img{width:190px}
  #page-container .ghm-header .ghm-btn{font-size:11px;padding:10px 13px!important;gap:12px}
  #page-container .et_pb_section.ghm-hero{min-height:420px;padding:50px 0;background-position:58% center!important}
  #page-container .et_pb_section.ghm-hero:before{background:linear-gradient(90deg,rgba(15,28,20,.83),rgba(15,28,20,.55))}
  #page-container .et_pb_section.ghm-hero--home{min-height:490px}
  #page-container .ghm-hero h1{font-size:49px;letter-spacing:-.7px}
  #page-container .ghm-hero p{font-size:14px}
  #page-container .ghm-hero .eyebrow,#page-container .eyebrow{font-size:9px;letter-spacing:1.8px}
  #page-container .ghm-section-heading{display:block!important}
  #page-container .ghm-section-heading>.et_pb_column:last-child p{max-width:none}
  #page-container .ghm-cards,#page-container .ghm-cards--4,#page-container .ghm-editorial-row,#page-container .ghm-rates,#page-container .ghm-photo-grid,#page-container .ghm-session-row,#page-container .ghm-review-row,#page-container .ghm-journal-row{grid-template-columns:1fr}
  #page-container .ghm-cards{gap:30px}
  #page-container .ghm-editorial-row{gap:30px}
  #page-container .ghm-editorial-row.reverse>.et_pb_column:first-child,#page-container .ghm-editorial-row.reverse>.et_pb_column:last-child{order:initial}
  #page-container .ghm-rates>.et_pb_column{padding:30px}
  #page-container .ghm-rates>.et_pb_column+.et_pb_column{border-left:0;border-top:1px solid var(--line)}
  #page-container .ghm-photo-grid{gap:40px}
  #page-container .ghm-photo-grid h3{margin-top:20px}
  #page-container .ghm-session-row{gap:30px}
  #page-container .ghm-aside{padding:25px!important}
  #page-container .ghm-reading h2{font-size:37px}
  #page-container .et_pb_section.ghm-reading{padding:50px 0}
  #page-container .ghm-links-grid .et_pb_text_inner{grid-template-columns:1fr 1fr;gap:0 24px}
  #page-container .ghm-review-row .ghm-photo img{aspect-ratio:3/2}
  #page-container .ghm-journal-row{gap:50px}
  #page-container .ghm-footer-grid{grid-template-columns:1fr 1fr;gap:35px}
  #page-container .ghm-footer-grid>.et_pb_column:first-child{grid-column:1/-1}
  #page-container .ghm-footer .ghm-logo img{width:270px}
  #page-container .ghm-footer-bottom .et_pb_text_inner{flex-wrap:wrap;gap:15px}
  #page-container .ghm-footer-bottom .et_pb_text_inner span{width:100%}
}
@media (max-width:420px){
  #page-container .ghm-header .ghm-logo img{width:155px}
  #page-container .ghm-header .ghm-btn{font-size:10px;padding:9px!important;gap:8px}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
