/* Aura Massage - native block styles (Elementor replacement) */

:root{
	--am-brass:#A87F59;
	--am-brass-soft:#E5D7D1;
	--am-ink:#1C0D0A;
	--am-accent:#61CE70;
}

/* Hero */
.am-hero{
	position:relative;
	min-height:100vh;
	background-size:cover;
	background-position:top center;
	background-attachment:fixed;
	padding:24px;
	display:flex; flex-direction:column; align-items:center; justify-content:center;
	text-align:center;
	color:#fff;
}
.am-hero::before{
	content:''; position:absolute; inset:0; background:rgba(0,0,0,.5); z-index:0;
}
.am-hero > *{position:relative; z-index:1;}
.am-hero h1{color:#fff; font-size:clamp(38px,7vw,80px); line-height:1.1; margin:0 0 18px;}
.am-hero p{color:#fff; font-size:18px; margin:0 0 6px;}
.am-hero .wp-block-buttons{justify-content:center; margin-top:30px;}
.am-hero .wp-block-button__link{
	background:var(--am-ink); color:#fff; border-radius:4px; padding:14px 30px;
	font-weight:600; text-transform:uppercase; letter-spacing:.04em; font-size:14px;
}

/* Intro strip */
.am-intro{
	display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start;
	padding:56px 24px; max-width:1180px; margin:0 auto;
}
.am-intro h2{font-size:28px; max-width:16ch; margin:0;}
.am-intro ul, .am-two-col-list ul{list-style:none; margin:0; padding:0;}
.am-intro ul li, .am-two-col-list ul li{
	position:relative; padding-left:26px; margin-bottom:8px; font-size:14.5px;
}
.am-intro ul li::before, .am-two-col-list ul li::before{
	content:'✓'; position:absolute; left:0; top:0; color:var(--am-accent); font-weight:700;
}
@media (max-width:780px){ .am-intro{grid-template-columns:1fr;} }

/* Services grid */
.am-services{padding:24px 24px 72px; max-width:1180px; margin:0 auto;}
.am-services > h2{text-align:center; font-size:32px; margin-bottom:36px;}
.am-services-grid{
	display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:28px;
}
.am-service-card{
	border:1px solid #e7e1d6; border-radius:8px; overflow:hidden;
	display:flex; flex-direction:column; background:#fff;
}
.am-service-card img{width:100%; aspect-ratio:4/3; object-fit:cover; margin:0;}
.am-service-card .am-service-body{padding:18px 20px 22px; display:flex; flex-direction:column; gap:4px; flex:1; text-align:center; align-items:center;}
.am-service-card h3{font-size:19px; margin:0 0 6px;}
.am-service-card .am-price-label{
	font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--am-brass);
	font-weight:700; margin:6px 0 2px;
}
.am-service-card .am-price-line{font-size:14.5px; color:#4a453e; margin:0;}
.am-service-card .am-learn-more{
	font-size:12.5px; color:var(--am-brass); text-decoration:underline; margin-top:6px;
}
.am-service-card .wp-block-button__link{
	margin-top:14px; background:var(--am-accent); color:#fff; border-radius:4px; padding:10px 18px;
	font-size:13.5px; text-align:center; display:inline-block;
}

/* Generic content section */
.am-section{padding:56px 24px; max-width:1180px; margin:0 auto;}
.am-section h2{font-size:26px; margin-bottom:18px;}
.am-section-tinted{background:var(--am-brass-soft);}
.am-section h2{text-align:center;}
.am-two-col-list{display:grid; grid-template-columns:1fr 1fr; gap:8px 48px;}
@media (max-width:780px){ .am-two-col-list{grid-template-columns:1fr;} }

.am-hygiene-cards{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:24px 0;}
@media (max-width:780px){ .am-hygiene-cards{grid-template-columns:1fr;} }
.am-hygiene-cards p{
	border:2px solid var(--am-brass); border-radius:6px; padding:16px 18px; margin:0; font-weight:600;
}

/* Simple page hero (Booking, Treatment Packages) */
.am-page-hero{
	background:var(--am-ink); color:#fff; text-align:center; padding:70px 24px;
}
.am-page-hero h1{color:#fff; font-size:clamp(30px,5vw,46px); margin:0 0 10px;}
.am-page-hero p{color:#e9e2d8; margin:0 0 4px;}

/* Booking form */
.am-booking-form{text-align:center;}
.wpcf7{max-width:640px; margin:0 auto; text-align:left;}
.wpcf7 p{margin:0 0 16px;}
.wpcf7 label{display:block; font-weight:600; margin-bottom:6px; font-size:14px;}
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 input[type=date], .wpcf7 textarea, .wpcf7 select{
	width:100%; padding:10px 12px; border:1px solid #d8d3c4; border-radius:4px; font-size:15px;
}
.wpcf7 input[type=submit]{
	background:var(--am-accent); color:#fff; border:0; border-radius:4px; padding:12px 30px;
	font-weight:600; text-transform:uppercase; letter-spacing:.04em; cursor:pointer;
}

/* Treatment Packages overview cards */
.am-package-overview{
	display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:24px; margin-top:24px;
}
.am-package-thumb{text-align:center;}
.am-package-thumb img{width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:8px; margin:0 0 10px;}
.am-package-thumb h3{font-size:15.5px; margin:0;}

/* Treatment Packages detail cards */
.am-package-details{display:flex; flex-direction:column; gap:36px;}
.am-package-detail{
	background:#fff; border:1px solid #e7e1d6; border-radius:8px; padding:26px 28px;
}
.am-package-detail h3{font-size:20px; margin:0 0 10px;}
.am-package-detail p{color:#4a453e; font-size:14.5px;}
.am-price-table{border-collapse:collapse; margin:16px 0; width:100%; max-width:380px;}
.am-price-table th, .am-price-table td{
	text-align:left; padding:9px 14px; border:1px solid #e7e1d6; font-size:14px;
}
.am-price-table th{background:var(--am-brass-soft); font-weight:700;}
.am-package-detail .wp-block-button__link{
	background:var(--am-accent); color:#fff; border-radius:4px; padding:10px 20px;
	display:inline-block; font-size:14px; font-weight:600;
}

/* Contact page grid */
.am-contact-grid{
	display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px;
}
.am-contact-card{
	border:1px solid #e7e1d6; border-radius:8px; padding:22px 24px; background:#fff;
}
.am-contact-card h3{font-size:14px; text-transform:uppercase; letter-spacing:.05em; color:var(--am-brass); margin:0 0 8px;}
.am-contact-card p{margin:0 0 10px; font-size:15.5px;}
.am-contact-card .wp-block-button__link{background:var(--am-accent); color:#fff; border-radius:4px; padding:8px 16px; font-size:13.5px; display:inline-block;}

/* Service detail pages */
.am-service-detail{max-width:900px;}
.am-service-detail-grid{
	display:grid; grid-template-columns:280px 1fr; gap:32px; align-items:start; margin-bottom:12px;
}
.am-service-detail-img{width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:8px; margin:0;}
.am-service-detail h2{font-size:22px; margin-top:34px; text-align:left;}
.am-service-detail p{color:#3a352e; font-size:15px;}
.am-benefits-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:8px 24px;}
.am-benefits-list li{position:relative; padding-left:24px; font-size:14.5px;}
.am-benefits-list li::before{content:'✓'; position:absolute; left:0; color:var(--am-accent); font-weight:700;}
.am-service-detail .am-price-table{max-width:420px;}
.am-price-note{font-size:13px; color:#7a7368; font-style:italic;}
.am-service-detail .wp-block-button__link{
	background:var(--am-accent); color:#fff; border-radius:4px; padding:12px 24px;
	display:inline-block; font-weight:600; font-size:14px; margin-top:10px;
}
@media (max-width:700px){
	.am-service-detail-grid{grid-template-columns:1fr;}
	.am-benefits-list{grid-template-columns:1fr;}
}

/* Legal / long-form article pages */
.am-legal{max-width:760px;}
.am-legal h2{font-size:22px; margin-top:36px;}
.am-legal p{color:#3a352e; font-size:15px;}
.am-legal a{color:var(--am-brass); text-decoration:underline;}

/* Blog featured images — force a consistent 3:2 ratio instead of each
   photo's natural (and wildly inconsistent) aspect ratio */
.post-thumb-img-content.post-thumb,
.post-thumb-img-content.post-thumb a{
	display:block; width:100%; aspect-ratio:3/2; overflow:hidden; border-radius:8px;
}
.post-thumb-img-content.post-thumb img{
	width:100%; height:100%; object-fit:cover; object-position:center;
}

/* Blog sidebar */
#secondary .widget{
	border:0; border-radius:10px; padding:22px 24px; margin-bottom:22px; background:#faf8f4;
}
#secondary .widget-search .search-form{display:flex;}
#secondary .widget-search input[type="search"]{
	border:0; border-radius:10px 0 0 10px; padding:12px 16px; font-size:14px; flex:1; background:#fff;
}
#secondary .widget-search button{
	border:0 !important; border-radius:0 10px 10px 0 !important; background:var(--am-brass) !important;
	color:#fff !important; padding:0 18px !important;
}
#secondary .widget-title{
	display:flex; align-items:center; gap:9px;
	font-size:15px; text-transform:uppercase; letter-spacing:.05em; color:var(--am-brass);
	margin:0 0 16px; font-family:'Work Sans', sans-serif; font-weight:700;
}
#secondary .widget-title::before{
	content:''; flex:none; width:16px; height:16px; background-color:var(--am-brass);
	-webkit-mask-position:center; -webkit-mask-repeat:no-repeat; -webkit-mask-size:contain;
	mask-position:center; mask-repeat:no-repeat; mask-size:contain;
}
/* clock icon — Recent Posts */
#secondary .widget_aura_recent_posts .widget-title::before{
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpolyline points='12 7 12 12 15.5 14'/%3E%3C/svg%3E");
	mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpolyline points='12 7 12 12 15.5 14'/%3E%3C/svg%3E");
}
/* chat icon — Need Help Booking */
#secondary .widget_text .widget-title::before,
#secondary .widget_custom_html .widget-title::before{
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.4 8.4 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.4 8.4 0 0 1-3.8-.9L3 21l1.9-5.7a8.4 8.4 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.4 8.4 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z'/%3E%3C/svg%3E");
	mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.4 8.4 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.4 8.4 0 0 1-3.8-.9L3 21l1.9-5.7a8.4 8.4 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.4 8.4 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z'/%3E%3C/svg%3E");
}
/* tag icon — Categories */
#secondary .widget_categories .widget-title::before{
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.59 13.41 11 3.83A2 2 0 0 0 9.59 3.24L4 3a1 1 0 0 0-1 1l.24 5.59a2 2 0 0 0 .59 1.41l9.58 9.58a2 2 0 0 0 2.83 0l4.35-4.35a2 2 0 0 0 0-2.82z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.2' fill='%23000' stroke='none'/%3E%3C/svg%3E");
	mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.59 13.41 11 3.83A2 2 0 0 0 9.59 3.24L4 3a1 1 0 0 0-1 1l.24 5.59a2 2 0 0 0 .59 1.41l9.58 9.58a2 2 0 0 0 2.83 0l4.35-4.35a2 2 0 0 0 0-2.82z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.2' fill='%23000' stroke='none'/%3E%3C/svg%3E");
}

/* Recent Posts widget (with thumbnail) */
.am-recent-posts-list{display:flex; flex-direction:column; gap:14px;}
.am-recent-posts-list li{margin:0;}
.am-recent-posts-list a{
	display:flex; gap:12px; align-items:flex-start; color:var(--am-ink) !important; text-decoration:none;
}
.am-recent-posts-thumb{
	flex:none; width:60px; height:60px; border-radius:8px; overflow:hidden; background:#ece6da;
}
.am-recent-posts-thumb img{width:100%; height:100%; object-fit:cover; display:block; margin:0;}
.am-recent-posts-body{display:flex; flex-direction:column; gap:4px; min-width:0; padding-top:2px;}
.am-recent-posts-title{
	font-size:13.5px; font-weight:600; line-height:1.4;
	display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.am-recent-posts-date{font-size:11.5px; color:#9a9187; font-family:'IBM Plex Mono','Courier New',monospace;}
.am-recent-posts-list a:hover .am-recent-posts-title{color:var(--am-brass);}
#secondary ul{list-style:none; margin:0; padding:0;}
#secondary li{margin-bottom:12px; font-size:14.5px; line-height:1.5;}
#secondary .widget{color:var(--am-ink);}
#secondary .widget p{color:#4a453e; font-size:14.5px; line-height:1.6;}
#secondary a{color:var(--am-ink) !important; text-decoration:none;}
#secondary a:hover{color:var(--am-brass) !important;}
#secondary .widget_categories li{
	display:flex; justify-content:space-between; align-items:baseline;
	padding-bottom:10px; margin-bottom:10px; border-bottom:1px solid #ece6da;
}
#secondary .widget_categories li:last-child{border-bottom:0; margin-bottom:0; padding-bottom:0;}
#secondary .widget_categories li{font-size:14.5px; color:#8a8175;}
#secondary .widget_categories li a{color:var(--am-ink) !important; font-weight:600;}
.am-sidebar-wa{
	display:inline-block; margin-top:10px; background:var(--am-accent); color:#fff;
	border-radius:4px; padding:10px 20px; font-size:13.5px; font-weight:600; text-decoration:none;
}

/* Auto Table of Contents */
.am-toc{
	background:#fdfcfa; border:1px solid #e9e3d8; border-radius:12px;
	padding:22px 26px 24px; margin:0 0 36px; max-width:640px;
	box-shadow:0 1px 3px rgba(28,13,10,.05), 0 8px 24px -12px rgba(28,13,10,.10);
	counter-reset:am-toc-counter;
}
/* !important throughout: Astra ships a global `button{...}` rule (filled
   background, 30px pill radius, padding) that this toggle must override
   regardless of any specificity quirk. */
.am-toc-toggle{
	display:flex !important; justify-content:space-between !important; align-items:center !important; width:100% !important;
	background:none !important; background-color:transparent !important;
	border:0 !important; border-radius:0 !important;
	padding:0 0 16px !important; margin-bottom:16px !important;
	border-bottom:1px solid #ece6da !important;
	font-weight:700 !important; font-size:13px !important; letter-spacing:.08em !important; text-transform:uppercase !important;
	color:var(--am-brass) !important; cursor:pointer !important; font-family:inherit !important;
}
.am-toc-toggle span{display:flex; align-items:center; gap:10px; color:var(--am-ink);}
.am-toc-toggle span::before{
	content:''; width:16px; height:16px; flex:none;
	background-color:var(--am-brass);
	-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Cline x1='8' y1='6' x2='21' y2='6'/%3E%3Cline x1='8' y1='12' x2='21' y2='12'/%3E%3Cline x1='8' y1='18' x2='21' y2='18'/%3E%3Cline x1='3' y1='6' x2='3.01' y2='6'/%3E%3Cline x1='3' y1='12' x2='3.01' y2='12'/%3E%3Cline x1='3' y1='18' x2='3.01' y2='18'/%3E%3C/svg%3E") center/contain no-repeat;
	mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Cline x1='8' y1='6' x2='21' y2='6'/%3E%3Cline x1='8' y1='12' x2='21' y2='12'/%3E%3Cline x1='8' y1='18' x2='21' y2='18'/%3E%3Cline x1='3' y1='6' x2='3.01' y2='6'/%3E%3Cline x1='3' y1='12' x2='3.01' y2='12'/%3E%3Cline x1='3' y1='18' x2='3.01' y2='18'/%3E%3C/svg%3E") center/contain no-repeat;
}
.am-toc-caret{transition:transform .2s; color:var(--am-brass); font-style:normal;}
.am-toc[data-collapsed="true"] .am-toc-toggle{border-bottom-color:transparent; padding-bottom:0; margin-bottom:0;}
.am-toc[data-collapsed="true"] .am-toc-caret{transform:rotate(-90deg);}
.am-toc[data-collapsed="true"] .am-toc-list{display:none;}
.am-toc-list{list-style:none; margin:0; padding:0; font-size:14.5px;}
.am-toc-list li{margin-bottom:3px; border-radius:6px;}
.am-toc-list li:not(.am-toc-sub){counter-increment:am-toc-counter;}
.am-toc-list > li:not(.am-toc-sub) > a{
	display:flex; align-items:baseline; gap:12px; padding:7px 8px;
	color:var(--am-ink); text-decoration:none; border-radius:6px; line-height:1.4;
}
.am-toc-list > li:not(.am-toc-sub) > a::before{
	content:counter(am-toc-counter);
	flex:none; min-width:20px; text-align:center;
	font-family:'IBM Plex Mono','Courier New',monospace; font-size:12px; font-weight:600;
	color:var(--am-accent);
}
.am-toc-list > li:not(.am-toc-sub) > a:hover{background:var(--am-brass-soft);}
.am-toc-sub{margin-left:32px;}
.am-toc-sub a{
	display:block; padding:5px 8px; font-size:13.5px; color:#6b6255; text-decoration:none; border-radius:6px;
}
.am-toc-sub a::before{content:'—'; margin-right:8px; color:#c9bfa8;}
.am-toc-sub a:hover{background:var(--am-brass-soft); color:var(--am-ink);}

/* FAQ accordion + schema block */
.am-faq{max-width:760px; margin:24px 0;}
.am-faq-item{
	border:1px solid #e7e1d6; border-radius:8px; padding:14px 18px; margin-bottom:10px; background:#fff;
}
.am-faq-item summary{font-weight:700; cursor:pointer; font-size:15.5px; color:var(--am-ink);}
.am-faq-item summary::marker{color:var(--am-accent);}
.am-faq-answer{margin-top:10px; font-size:14.5px; color:#4a453e;}
.am-faq-answer p{margin:0 0 10px;}
.am-faq-answer p:last-child{margin-bottom:0;}

/* Map - the page itself is set to Astra's full-width (page-builder) layout,
   so this just needs to fill 100% with no max-width constraint. */
.am-map{width:100%;}
.am-map iframe{width:100%; height:450px; border:0; display:block;}

/* Contact footer block */
.am-contact{
	background:#fff; color:var(--am-ink); padding:56px 24px;
	display:grid; grid-template-columns:auto 1fr; gap:40px; align-items:center; max-width:1180px; margin:0 auto;
}
.am-contact img{max-width:140px; margin:0;}
.am-contact h2{color:var(--am-ink); margin:0 0 12px;}
.am-contact ul{margin:0 0 18px; padding:0; list-style:none; color:var(--am-ink);}
.am-contact li{margin-bottom:4px;}
.am-contact .wp-block-button__link{background:var(--am-ink); color:#fff; border-radius:4px;}
@media (max-width:600px){ .am-contact{grid-template-columns:1fr; text-align:center;} }
