/*
Theme Name: The Woulfe Collective
Theme URI: https://thewoulfecollective.com.au
Author: The Woulfe Collective
Description: Native WordPress salon theme with editable design-section blocks, custom menus, contact and brand controls, and an explicit draft-only setup tool. No frontend React or page-builder runtime.
Version: 1.0.3
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: woulfe
Tags: custom-logo, custom-menu, featured-images, wide-blocks, editor-style, blog
*/

/* Keep the exported Tailwind design authoritative. These styles cover WP
   menus, admin toolbar, accessibility and ordinary editorial templates. */
.woulfe-theme {
  margin: 0;
  background: var(--color-cream, #faf7f2);
  color: var(--color-charcoal, #302b28);
  font-family: var(--font-sans, 'Jost', sans-serif);
}
.woulfe-theme img { max-width: 100%; }
.woulfe-theme button, .woulfe-theme input, .woulfe-theme textarea, .woulfe-theme select { font: inherit; }
.woulfe-theme a:focus-visible, .woulfe-theme button:focus-visible,
.woulfe-theme input:focus-visible, .woulfe-theme textarea:focus-visible {
  outline: 2px solid var(--color-rose, #ca8b91);
  outline-offset: 4px;
}
.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.skip-link:focus {
  display: block;
  position: fixed !important;
  z-index: 100000;
  left: 1rem;
  top: 1rem;
  width: auto;
  height: auto;
  padding: .75rem 1.25rem;
  margin: 0;
  overflow: visible;
  clip: auto;
  clip-path: none;
  background: var(--color-cream, #faf7f2);
  color: var(--color-charcoal, #302b28);
  border-radius: .5rem;
  box-shadow: 0 3px 20px rgb(0 0 0 / .2);
}
#main-content:focus { outline: none; }
.woulfe-nav-list, .woulfe-footer-menu,
.woulfe-nav-list .sub-menu, .woulfe-footer-menu .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
.woulfe-nav-list li { position: relative; }
.woulfe-nav-list .sub-menu {
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 55;
  min-width: 12rem;
  padding: .75rem;
  background: var(--color-cream, #faf7f2);
  border: 1px solid color-mix(in srgb, var(--color-gold, #cda95e) 35%, transparent);
  box-shadow: 0 10px 25px rgb(0 0 0 / .08);
  visibility: hidden;
  opacity: 0;
}
.woulfe-nav-list li:hover > .sub-menu,
.woulfe-nav-list li:focus-within > .sub-menu { visibility: visible; opacity: 1; }
.woulfe-nav-list .sub-menu li + li { margin-top: .65rem; }
.woulfe-nav-list .sub-menu .sub-menu { top: 0; left: 100%; }
#woulfe-header .sub-menu .woulfe-menu-link { color: var(--color-charcoal, #302b28); }
.woulfe-footer-menu .sub-menu { padding-left: 1rem; margin-top: .6rem; }
.woulfe-footer-menu .sub-menu li + li { margin-top: .6rem; }
#mobile-navigation .woulfe-mobile-list { display: flex; flex-direction: column; align-items: center; gap: 1.25rem; }
#mobile-navigation .woulfe-menu-link { font-family: var(--font-serif, 'Cormorant Garamond', Georgia, serif); font-size: 1.875rem; line-height: 1.2; text-transform: none; letter-spacing: .025em; gap: .75rem; }
#mobile-navigation .woulfe-menu-link [aria-hidden="true"] { font-family: var(--font-sans, 'Jost', sans-serif); }
#mobile-navigation .sub-menu { display: flex; flex-direction: column; align-items: center; gap: .5rem; position: static; min-width: 0; padding: .5rem 0 0; border: 0; box-shadow: none; background: transparent; visibility: visible; opacity: 1; }
#mobile-navigation .sub-menu .woulfe-menu-link { font-size: 1.125rem; }
#mobile-navigation .sub-menu li + li { margin-top: 0; }
.woulfe-email { overflow-wrap: anywhere; }
.woulfe-email svg { flex-shrink: 0; }
body.admin-bar #woulfe-header { top: 32px; }
body.admin-bar #mobile-navigation { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar #woulfe-header, body.admin-bar #mobile-navigation { top: 46px; }
}
@media (max-width: 600px) { body.admin-bar #wpadminbar { position: fixed; } }
.wp-block-woulfe-design-section { width: 100%; margin: 0; }
.woulfe-design-content { width: 100%; }
.woulfe-design-article > .wp-block-woulfe-design-section { max-width: none; }
.woulfe-standard-main { min-height: 55vh; padding-top: 9rem; padding-bottom: 5rem; }
.woulfe-prose { max-width: 850px; }
.woulfe-entry-header, .woulfe-archive-header { margin-bottom: 2.5rem; }
.woulfe-prose h1, .woulfe-archive-header h1, .woulfe-empty h1 {
  font-family: var(--font-serif, 'Cormorant Garamond', Georgia, serif);
  font-size: clamp(2.5rem, 6vw, 4.25rem);
  line-height: 1.08;
  font-weight: 500;
}
.woulfe-prose .entry-content { font-size: 1.05rem; line-height: 1.8; overflow-wrap: anywhere; }
.woulfe-prose .entry-content > * { margin-top: 0; margin-bottom: 1.5rem; }
.woulfe-prose .entry-content h2, .woulfe-prose .entry-content h3, .woulfe-empty h2 {
  font-family: var(--font-serif, 'Cormorant Garamond', Georgia, serif);
  font-weight: 500;
  line-height: 1.2;
}
.woulfe-prose .entry-content h2, .woulfe-empty h2 { font-size: 2.3rem; margin-top: 2rem; }
.woulfe-prose .entry-content h3 { font-size: 1.8rem; margin-top: 1.75rem; }
.woulfe-prose .entry-content a, .woulfe-post-meta a, .woulfe-comments a { color: var(--color-rose, #ca8b91); text-decoration: underline; text-underline-offset: .2em; }
.woulfe-prose .entry-content ul, .woulfe-prose .entry-content ol { padding-left: 1.5rem; list-style: revert; }
.woulfe-prose .entry-content blockquote { padding: 1rem 1.5rem; border-left: 3px solid var(--color-gold, #cda95e); background: color-mix(in srgb, var(--color-blush, #edc5ca) 25%, transparent); }
.woulfe-prose .entry-content pre { overflow-x: auto; padding: 1.2rem; background: #f0eae1; }
.woulfe-prose .entry-content table { border-collapse: collapse; width: 100%; }
.woulfe-prose .entry-content td, .woulfe-prose .entry-content th { border: 1px solid #d8cbb8; padding: .65rem; }
.woulfe-prose .entry-content .alignwide { width: min(1100px, 90vw); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.woulfe-prose .entry-content .alignfull { width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }
.woulfe-featured-image { display: block; width: 100%; border-radius: 1rem; margin: 0 0 2rem; }
.woulfe-entry-meta { font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: color-mix(in srgb, var(--color-charcoal, #302b28) 65%, transparent); margin-bottom: .7rem; }
.woulfe-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.woulfe-post-card { overflow: hidden; border-radius: 1rem; background: #fff; border: 1px solid color-mix(in srgb, var(--color-gold, #cda95e) 25%, transparent); }
.woulfe-post-image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.woulfe-post-card-content { padding: 1.5rem; }
.woulfe-post-card h2 { font-family: var(--font-serif, 'Cormorant Garamond', Georgia, serif); font-size: 1.8rem; line-height: 1.2; margin-bottom: 1rem; }
.woulfe-excerpt { font-size: .95rem; line-height: 1.7; margin-bottom: 1.25rem; }
.woulfe-read-more { color: var(--color-rose, #ca8b91); font-size: .85rem; text-transform: uppercase; letter-spacing: .1em; text-decoration: underline; text-underline-offset: .25em; }
.woulfe-empty { text-align: center; max-width: 850px; margin: 0 auto; }
.woulfe-empty > p { margin: 1rem 0 1.75rem; }
.search-form { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; margin: 1.5rem 0; }
.woulfe-empty .search-form { justify-content: center; }
.search-form label { display: flex; flex-direction: column; gap: .4rem; }
.search-field, .woulfe-comments input:not([type="checkbox"]):not([type="submit"]), .woulfe-comments textarea, .post-password-form input[type="password"] { border: 1px solid #cbbda8; border-radius: .4rem; padding: .65rem .85rem; max-width: 100%; background: #fff; }
.search-submit, .woulfe-comments .submit, .post-password-form input[type="submit"] { cursor: pointer; border-radius: 999px; padding: .7rem 1.4rem; color: #fff; background: var(--color-rose, #ca8b91); border: 0; }
.pagination, .post-navigation, .woulfe-page-links { margin-top: 3rem; }
.pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.pagination .page-numbers { padding: .5rem 1rem; border: 1px solid #d8cbb8; border-radius: 999px; }
.pagination .current { background: var(--color-blush, #edc5ca); }
.post-navigation .nav-links { display: flex; justify-content: space-between; gap: 2rem; }
.post-navigation .nav-next { text-align: right; }
.woulfe-post-meta { padding-top: 1.5rem; margin-top: 2rem; border-top: 1px solid #d8cbb8; font-size: .9rem; }
.woulfe-comments { margin-top: 3rem; max-width: 850px; }
.woulfe-comments h2, .woulfe-comments h3 { font-family: var(--font-serif, 'Cormorant Garamond', Georgia, serif); font-size: 2rem; margin-bottom: 1.5rem; }
.woulfe-comments .comment-list { padding: 0; list-style: none; }
.woulfe-comments .comment-body { border-bottom: 1px solid #d8cbb8; padding: 1.5rem 0; }
.woulfe-comments .comment-meta { font-size: .85rem; margin-bottom: .75rem; }
.woulfe-comments .avatar { border-radius: 50%; display: inline-block; margin-right: .65rem; vertical-align: middle; }
.woulfe-comments .children { list-style: none; padding-left: 1.5rem; }
.woulfe-comments .comment-form p { margin: 1rem 0; }
.woulfe-comments .comment-form label:not(.comment-form-cookies-consent label) { display: block; margin-bottom: .35rem; }
.woulfe-comments textarea { width: 100%; }
.woulfe-noscript-nav { padding: 7rem 1rem 1rem; }
.woulfe-noscript-nav .woulfe-nav-list { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem 1rem; }
@media (max-width: 1023px) { .woulfe-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639px) {
  .woulfe-post-grid { grid-template-columns: 1fr; }
  .woulfe-standard-main { padding-top: 7rem; padding-bottom: 3rem; }
  .woulfe-entry-header, .woulfe-archive-header { margin-bottom: 1.75rem; }
  .search-field { width: min(100%, 22rem); }
  .woulfe-brand img { max-width: calc(100vw - 7rem); }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto !important; } }

/* Photo refresh: only the new strip and new tiles, never existing photos. */
#woulfe-photo-refresh-20261109 .woulfe-photo-refresh-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
}
#woulfe-photo-refresh-20261109 img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 1rem;
}
[data-woulfe-photo-refresh-tile] {
  grid-column: auto !important;
  grid-row: auto !important;
  aspect-ratio: 4 / 5;
}
[data-woulfe-photo-refresh-tile] > img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0 !important;
  object-fit: cover;
}
@media (min-width: 640px) {
  #woulfe-photo-refresh-20261109 .woulfe-photo-refresh-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  #woulfe-photo-refresh-20261109 .woulfe-photo-refresh-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
