/*
Theme Name: BeausWorld Consultancy
Theme URI: https://beausworldhospitalitytraining.com
Author: Kay Works
Description: Custom block theme for Beau'sWorld Hospitality Excellence Training & Consulting. Black, ivory and gold brand system with Home, About, Services and Contact layouts, a built-in consultation form and a Business Details settings page.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: beausworld
*/

/* ---------- Base ---------- */
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: #E6C979; color: #0B0B0B; }
img { height: auto; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
:focus-visible { outline: 2px solid #C9A24A; outline-offset: 3px; }

/* ---------- Type helpers ---------- */
.bw-eyebrow {
	font-size: 0.72rem !important;
	font-weight: 600;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: #8E6B24;
}
.has-black-background-color .bw-eyebrow,
.bw-dark .bw-eyebrow { color: #E6C979; }
.bw-eyebrow .bw-dot { color: #C9A24A; padding: 0 0.3em; }

.bw-script {
	font-family: var(--wp--preset--font-family--script) !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	background: linear-gradient(120deg, #F1DA93 0%, #C9A24A 45%, #8E6B24 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
	padding: 0.1em 0.15em 0.15em;
}
.bw-gold-text {
	background: linear-gradient(120deg, #F1DA93 0%, #C9A24A 45%, #B38A36 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
}
.bw-caps { letter-spacing: 0.24em; text-transform: uppercase; }

/* Short gold rule used under headings */
.bw-rule.wp-block-separator,
hr.bw-rule {
	width: 64px !important;
	max-width: 64px;
	border: 0 !important;
	border-top: 2px solid #C9A24A !important;
	opacity: 1;
	margin-left: 0 !important;
	margin-right: auto !important;
}
.bw-rule.is-center, .has-text-align-center + .bw-rule, .bw-center .bw-rule { margin-left: auto !important; }

/* ---------- Header ---------- */
.bw-header {
	position: sticky;
	top: 0;
	z-index: 50;
	backdrop-filter: saturate(140%) blur(10px);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
	background: rgba(248, 246, 240, 0.94) !important;
	border-bottom: 1px solid rgba(201, 162, 74, 0.35);
}
.admin-bar .bw-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .bw-header { top: 46px; } }
.bw-header .wp-block-site-logo img,
.bw-logo img { width: 210px; max-width: 48vw; display: block; }
.bw-header .wp-block-navigation a { color: #0B0B0B; text-decoration: none; position: relative; }
.bw-header .wp-block-navigation a:hover { color: #8E6B24; }
.bw-header .wp-block-navigation .current-menu-item > a::after,
.bw-header .wp-block-navigation a[aria-current="page"]::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px; background: #C9A24A;
}
.bw-header .wp-block-navigation__responsive-container.is-menu-open {
	background: #0B0B0B !important;
	color: #F8F6F0 !important;
}
.bw-header .wp-block-navigation__responsive-container.is-menu-open a { color: #F8F6F0 !important; font-size: 1rem; }
.bw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3rem; gap: 1.6rem; }
.bw-header .wp-block-navigation__responsive-container-close svg { fill: #E6C979; }

.bw-topbar { font-size: 0.72rem; letter-spacing: 0.14em; }
.bw-topbar a { color: #E6C979 !important; text-decoration: none; }

/* ---------- Buttons ---------- */
.wp-block-button .wp-block-button__link { transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s ease; }
.wp-block-button .wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	border: 1px solid currentColor;
	color: inherit;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #C9A24A; border-color: #C9A24A; color: #0B0B0B; }
.bw-btn-gold .wp-block-button__link {
	background: linear-gradient(120deg, #F1DA93 0%, #C9A24A 55%, #A88430 100%) !important;
	color: #0B0B0B !important;
}
.bw-btn-gold .wp-block-button__link:hover { filter: brightness(1.06); }

/* ---------- Hero ---------- */
.bw-hero { position: relative; overflow: hidden; }
.bw-hero::before, .bw-hero::after {
	content: ""; position: absolute; pointer-events: none; border-radius: 50%;
	border: 2px solid rgba(201,162,74,.55);
}
.bw-hero::before { width: 900px; height: 900px; left: -620px; top: -560px; border-width: 10px; border-color: rgba(201,162,74,.35); }
.bw-hero::after  { width: 700px; height: 700px; right: -520px; bottom: -520px; border-width: 6px; border-color: rgba(201,162,74,.45); }
.bw-hero > * { position: relative; z-index: 1; }
.bw-hero h1 { color: #F8F6F0; }
.bw-hero h1 em { font-style: italic; color: #E6C979; }

.bw-portrait { position: relative; margin: 0; }
.bw-portrait img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 20%; }
.bw-portrait::before {
	content: ""; position: absolute; inset: 18px -18px -18px 18px;
	border: 1px solid #C9A24A; z-index: -1;
}
.bw-portrait-wrap { position: relative; z-index: 1; padding: 0 18px 18px 0; }
.bw-badge {
	position: absolute; left: -12px; bottom: 34px; z-index: 2;
	background: #0B0B0B; color: #F8F6F0; padding: 1rem 1.25rem; border-left: 3px solid #C9A24A;
	font-size: .8rem; line-height: 1.4; box-shadow: 0 16px 40px rgba(0,0,0,.25);
}
.bw-badge strong { display: block; font-family: var(--wp--preset--font-family--heading); font-size: 1.9rem; font-weight: 500; color: #E6C979; line-height: 1; margin-bottom: .2rem; }

/* ---------- Pillars strip ---------- */
.bw-pillars { border-top: 1px solid rgba(201,162,74,.35); }
.bw-pillars p { margin: 0; }

/* ---------- Cards ---------- */
.bw-icon { width: 76px; height: 76px; border-radius: 50%; display: grid; place-items: center; border: 1px solid #C9A24A; margin: 0 0 1.25rem; background: transparent; }
.bw-icon img { width: 38px; height: 38px; }
.bw-icon.is-solid { background: #0B0B0B; box-shadow: 0 0 0 3px #F8F6F0, 0 0 0 4px #C9A24A; }
.bw-center .bw-icon, .bw-icon.is-center { margin-left: auto; margin-right: auto; }

.bw-card {
	background: #FFFFFF;
	border: 1px solid rgba(201,162,74,.28);
	transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
	height: 100%;
	position: relative;
}
.bw-card::after {
	content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: 0;
	background: linear-gradient(90deg, #F1DA93, #C9A24A, #8E6B24); transition: width .45s ease;
}
.bw-card:hover { transform: translateY(-6px); box-shadow: 0 24px 50px -24px rgba(11,11,11,.35); border-color: rgba(201,162,74,.6); }
.bw-card:hover::after { width: 100%; }
.bw-card h3 { letter-spacing: .02em; }
.bw-card .bw-num { font-family: var(--wp--preset--font-family--heading); color: #C9A24A; font-size: .9rem; letter-spacing: .2em; }
.wp-block-columns.bw-equal > .wp-block-column { display: flex; flex-direction: column; }
.wp-block-columns.bw-equal > .wp-block-column > .bw-card { flex: 1; }

/* Values (dark) */
.bw-values .wp-block-column + .wp-block-column { border-left: 1px solid rgba(201,162,74,.35); }
@media (max-width: 781px) {
	.bw-values .wp-block-column + .wp-block-column { border-left: 0; border-top: 1px solid rgba(201,162,74,.25); padding-top: 2rem; }
}
.bw-values h3 { color: #F8F6F0 !important; }

/* ---------- Vision list ---------- */
.bw-vision-item { display: flex; gap: 1.1rem; align-items: center; }
.bw-vision-item .bw-icon { flex: 0 0 60px; width: 60px; height: 60px; margin: 0; }
.bw-vision-item .bw-icon img { width: 30px; height: 30px; }
.bw-vision-item p { margin: 0; font-size: 1.15rem; }

/* ---------- Impact banner (brush) ---------- */
.bw-impact { position: relative; overflow: hidden; }
.bw-brush {
	display: inline-block; position: relative; isolation: isolate; z-index: 0; padding: .55rem 2.2rem;
	color: #0B0B0B !important; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; font-size: .85rem;
}
.bw-brush::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(100deg, rgba(241,218,147,0) 0%, #E6C979 8%, #C9A24A 55%, #B38A36 92%, rgba(179,138,54,0) 100%);
	clip-path: polygon(2% 12%, 30% 0, 70% 6%, 99% 0, 97% 55%, 100% 100%, 60% 92%, 25% 100%, 0 88%, 3% 50%);
}
.bw-impact .bw-big { font-family: var(--wp--preset--font-family--body) !important; font-weight: 700 !important; letter-spacing: .01em; line-height: 1.02 !important; text-transform: uppercase; }

/* ---------- Lists ---------- */
.bw-list { list-style: none; padding-left: 0 !important; margin: 1.75rem 0 1.5rem; }
.bw-list li { position: relative; padding: .85rem 0 .85rem 2rem; border-bottom: 1px solid rgba(201,162,74,.3); }
.bw-list li::before {
	content: ""; position: absolute; left: 0; top: 1.45rem; width: 10px; height: 10px; transform: rotate(45deg);
	background: linear-gradient(120deg, #F1DA93, #C9A24A 60%, #8E6B24);
}
.bw-dark .bw-list li { border-bottom-color: rgba(201,162,74,.25); }

.bw-checks { list-style: none; padding-left: 0 !important; }
.bw-checks li { position: relative; padding: .5rem 0 .5rem 2.3rem; }
.bw-checks li::before {
	content: ""; position: absolute; left: 0; top: .72rem; width: 22px; height: 22px;
	background: url("assets/icons/check.svg") center / contain no-repeat;
}

/* ---------- Founder ---------- */
.bw-signature { font-family: var(--wp--preset--font-family--script); font-size: 2.6rem; color: #8E6B24; line-height: 1; }

/* ---------- Page hero (inner pages) ---------- */
.bw-page-hero { position: relative; overflow: hidden; }
.bw-page-hero::after {
	content: ""; position: absolute; right: -260px; top: -300px; width: 620px; height: 620px; border-radius: 50%;
	border: 6px solid rgba(201,162,74,.4); pointer-events: none;
}
.bw-page-hero h1 { color: #F8F6F0; }

/* ---------- Contact ---------- */
.bw-contact-list { list-style: none; padding: 0; margin: 0; }
.bw-contact-list li { display: flex; gap: 1rem; align-items: flex-start; padding: 1rem 0; border-bottom: 1px solid rgba(201,162,74,.3); }
.bw-contact-list li:last-child { border-bottom: 0; }
.bw-contact-list img { width: 26px; height: 26px; flex: 0 0 26px; margin-top: .2rem; }
.bw-contact-list .bw-label { display: block; font-size: .68rem; letter-spacing: .24em; text-transform: uppercase; color: #8E6B24; font-weight: 600; }
.bw-dark .bw-contact-list .bw-label { color: #E6C979; }
.bw-contact-list a { color: inherit; text-decoration: none; }
.bw-contact-list a:hover { color: #C9A24A; }
.bw-contact-list .bw-pending { opacity: .55; font-style: italic; }

.bw-form { display: grid; gap: 1.1rem; }
.bw-form .bw-row { display: grid; gap: 1.1rem; grid-template-columns: 1fr 1fr; }
@media (max-width: 640px) { .bw-form .bw-row { grid-template-columns: 1fr; } }
.bw-form label { display: block; font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 600; margin-bottom: .45rem; color: #1C1A17; }
.bw-form input, .bw-form select, .bw-form textarea {
	width: 100%; box-sizing: border-box; font: inherit; font-size: .95rem; color: #1C1A17;
	background: #FFFFFF; border: 1px solid rgba(95,88,80,.35); border-radius: 0; padding: .9rem 1rem;
	transition: border-color .2s, box-shadow .2s;
}
.bw-form input:focus, .bw-form select:focus, .bw-form textarea:focus { outline: none; border-color: #C9A24A; box-shadow: 0 0 0 3px rgba(201,162,74,.2); }
.bw-form textarea { min-height: 150px; resize: vertical; }
.bw-form .bw-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bw-form button {
	justify-self: start; cursor: pointer; border: 0; border-radius: 0;
	background: linear-gradient(120deg, #F1DA93 0%, #C9A24A 55%, #A88430 100%); color: #0B0B0B;
	font: 600 .75rem/1 var(--wp--preset--font-family--body); letter-spacing: .2em; text-transform: uppercase; padding: 1.15rem 2.2rem;
	transition: filter .2s, transform .2s;
}
.bw-form button:hover { filter: brightness(1.07); transform: translateY(-1px); }
.bw-notice { padding: 1rem 1.2rem; border-left: 3px solid #C9A24A; background: #FFFFFF; margin-bottom: 1.25rem; font-size: .95rem; }
.bw-notice.is-error { border-left-color: #B3261E; }

/* ---------- Footer ---------- */
.bw-footer a { color: #F8F6F0; text-decoration: none; }
.bw-footer a:hover { color: #E6C979; }
.bw-footer .bw-logo img { width: 240px; }
.bw-footer h4 { color: #E6C979 !important; font-family: var(--wp--preset--font-family--body) !important; font-size: .72rem !important; font-weight: 600 !important; letter-spacing: .28em; text-transform: uppercase; }
.bw-footer .bw-foot-links { list-style: none; padding: 0; margin: 0; }
.bw-footer .bw-foot-links li { padding: .3rem 0; }
.bw-footer .bw-contact-list li { border-bottom-color: rgba(201,162,74,.2); padding: .6rem 0; font-size: .9rem; }
.bw-footer .bw-contact-list img { width: 20px; height: 20px; flex-basis: 20px; }
.bw-footer-bottom { border-top: 1px solid rgba(201,162,74,.3); }

/* ---------- Reveal on scroll ---------- */
@media (prefers-reduced-motion: no-preference) {
	.bw-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s ease; }
	.bw-reveal.is-visible { opacity: 1; transform: none; }
}
.block-editor-block-list__layout .bw-reveal, .editor-styles-wrapper .bw-reveal { opacity: 1 !important; transform: none !important; }

/* ---------- Responsive ---------- */
@media (max-width: 781px) {
	.bw-hero .wp-block-buttons { gap: .75rem; }
	.bw-badge { left: 8px; }
	.bw-pillars .wp-block-column { flex-basis: 50% !important; }
	.bw-impact .bw-brush { padding: .5rem 1.2rem; letter-spacing: .14em; font-size: .72rem; }
}

@media (max-width: 900px) { .bw-hide-mobile { display: none !important; } }

/* Full-width sections sit flush against each other */
main.wp-block-group > *,
main.wp-block-group > .alignfull + .alignfull { margin-block-start: 0 !important; }
.wp-site-blocks > footer, .wp-site-blocks > .wp-block-template-part { margin-block-start: 0; }

/* Mobile refinements */
.bw-eyebrow, .bw-caps { overflow-wrap: normal; word-break: normal; hyphens: none; }
@media (max-width: 781px) {
	.bw-eyebrow { letter-spacing: 0.2em; }
	.bw-eyebrow .bw-dot { padding: 0 0.35em; }
	.bw-pillars-cols.wp-block-columns { flex-wrap: wrap !important; row-gap: .6rem; }
	.bw-pillars-cols.wp-block-columns > .wp-block-column { flex: 0 0 calc(50% - .5rem) !important; }
	.bw-pillars .bw-caps { letter-spacing: .16em; }
	.bw-hero .wp-block-buttons > .wp-block-button { width: 100%; }
	.bw-hero .wp-block-buttons > .wp-block-button .wp-block-button__link { width: 100%; box-sizing: border-box; }
}
