/*
Theme Name: Brightwater
Author: dmarkdevin
Description: A light, friendly block theme for Brightwater Dental Studio, a fictional family dental clinic in Pasay City. White and mist with deep-teal text and one teal accent, real clinic photography, treatments with clear prices. Self-hosted Manrope. Pair with the Brightwater Core plugin for treatments, dentists and the appointment form.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.2
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: brightwater
Tags: full-site-editing, block-patterns, block-styles, one-column, wide-blocks, custom-colors, custom-menu, editor-style, translation-ready
*/

/* Only what theme.json cannot express. Mobile first. */

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	border-radius: 4px;
}
.skip-link.screen-reader-text:focus { background: var(--wp--preset--color--ink); color: #fff; border-radius: 8px; }
img { height: auto; }
.wp-site-blocks > main, .wp-site-blocks > footer { margin-block-start: 0; }

/* Header: white bar, hairline, sticky. */
.bw-header { position: sticky; top: 0; z-index: 50; background: var(--wp--preset--color--base); border-bottom: 1px solid var(--wp--preset--color--line); }
.admin-bar .bw-header { top: var(--wp-admin--admin-bar--height, 0); }
.bw-header .wp-block-site-logo { flex-shrink: 0; }
.bw-header .wp-block-site-logo img { display: block; }
.bw-header .wp-block-button__link, .bw-header .wp-block-site-title { white-space: nowrap; }
.bw-header .wp-block-navigation .wp-block-navigation-item__content { padding: .45rem .8rem; border-radius: 999px; }
.bw-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.bw-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content { background: var(--wp--preset--color--surface); }
.wp-block-navigation__responsive-container.is-menu-open { padding: var(--wp--preset--spacing--50); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.75rem; font-weight: 700; }
@media (max-width: 781px) { .bw-hide-mobile { display: none !important; } .bw-header .wp-block-button__link { padding: .6rem 1rem !important; font-size: .875rem; } }
@media (max-width: 479px) { .bw-header .wp-block-site-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } }
@media (min-width: 600px) and (max-width: 1023px) {
	.bw-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.bw-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* Outline button: ink on light sections. */
.wp-block-button.is-style-outline > .wp-block-button__link { border: 1.5px solid var(--wp--preset--color--ink); background: transparent; color: var(--wp--preset--color--ink); padding: calc(.85rem - 1.5px) calc(1.5rem - 1.5px); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--ink); color: #fff; }

/* Photos: soft rounded corners and fixed ratios. */
.bw-photo img { border-radius: var(--wp--custom--radius--image); width: 100%; object-fit: cover; }
.bw-ratio-hero img { aspect-ratio: 5 / 4; }
.bw-ratio-wide img { aspect-ratio: 4 / 3; }
.bw-ratio-portrait img { aspect-ratio: 4 / 5; }

/* Cards. */
.is-style-bw-card { background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--radius--card); }

/* First-visit steps: a real sequence, so numbered. */
.bw-steps { list-style: none; counter-reset: bw-step; padding: 0; margin: 0; display: grid; gap: 1.5rem; }
.bw-steps li { counter-increment: bw-step; position: relative; padding-left: 3.5rem; }
.bw-steps li::before { content: counter(bw-step); position: absolute; left: 0; top: -.1rem; width: 2.4rem; height: 2.4rem; border-radius: 50%; display: grid; place-items: center; background: var(--wp--preset--color--accent); color: #fff; font-weight: 800; }
.bw-steps strong { display: block; font-size: 1.125rem; margin-bottom: .2rem; }

/* FAQ. */
.wp-block-details summary { cursor: pointer; font-weight: 700; font-size: 1.0625rem; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; flex-shrink: 0; display: inline-grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--wp--preset--color--base); color: var(--wp--preset--color--accent); font-weight: 800; transition: transform .2s ease; }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > :not(summary) { color: var(--wp--preset--color--muted); margin-top: .6rem; }

/* Hours list. */
.bw-hours { list-style: none; padding: 0; margin: 0; }
.bw-hours li { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.bw-hours li span:last-child { font-weight: 700; text-align: right; }

/* Post cards. */
.wp-block-post-featured-image { overflow: hidden; border-radius: var(--wp--custom--radius--card); }

/* Forms (Fluent Forms): rounded fields that match the theme. */
.fluentform .ff-el-input--label label { font-weight: 700; font-size: .9375rem; color: var(--wp--preset--color--ink); }
.fluentform .ff-el-form-control { border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--radius--control); background: var(--wp--preset--color--base); font: inherit; padding: .75rem .95rem; color: var(--wp--preset--color--ink); }
.fluentform .ff-el-form-control:focus { border-color: var(--wp--preset--color--accent); box-shadow: 0 0 0 3px rgba(19,117,108,.15); }
.fluentform .ff-el-is-required.asterisk-right label::after { color: var(--wp--preset--color--accent); }
.fluentform .ff-btn-submit { background-color: var(--wp--preset--color--accent) !important; color: #fff !important; border-radius: 999px !important; padding: .85rem 1.75rem !important; font: 700 .9375rem/1.2 var(--wp--preset--font-family--body) !important; }
.fluentform .ff-btn-submit:hover { background-color: var(--wp--preset--color--ink) !important; opacity: 1 !important; }

/* Footer: deep teal. */
.bw-footer a { color: inherit; }
.bw-footer h2, .bw-footer h3 { color: var(--wp--preset--color--soft); }
.bw-footer .wp-block-list { list-style: none; padding-left: 0; }
.bw-footer .wp-block-list li + li { margin-top: .4rem; }
.bw-footer__small { color: var(--wp--preset--color--soft); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
