/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  GeneratePress child theme Ryan Smith Photography
 Author:       Ryan Smith
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      5.2.0
*/

/* ==========================================================================
   Variables
   ========================================================================== */

:root {
  /* Colors - Light Mode */
  --color-bg: #fcfcfc;
  --color-text: #3a3a3a;
  --color-link: #06c;
  --color-link-hover: rgba(0, 77, 153, 1);
  --color-link-hover-underline: rgba(0, 77, 153, 0.4);
  --color-white: #fff;
  --color-black: #000;
  --color-accent-rgb: 251, 238, 223;
  --color-accent-light: #fbeedf;
  --color-accent-medium: #FAD6A5;
  --color-border-light: rgba(0, 0, 0, 0.20);
  --color-border-medium: #ebebeb;
  --color-border-dark: #6e6e6e;
  --color-border-nav-rgb: 0, 0, 0;
  --color-overlay-dark-rgb: 0, 0, 0;
  --color-overlay-light-rgb: 255, 255, 255;
  --color-shadow-base-opacity: 0.15;
  --color-page-number-bg: #e1e1e1;
  --color-page-number-bg-hover: #c8c8c8;
  --color-contact-form-bg-start: #141e30;
  --color-contact-form-bg-end: #243b55;
  --color-contact-form-text: var(--color-white);
  --color-contact-form-link: #d7daff;
  --color-footer-bg: #141e30;
  --color-footer-text: #efefef;
  --color-footer-link: #ddd;
  --color-footer-link-hover: var(--color-white);
  --color-pricing-header-bg: #2F343B;
  --color-pricing-grey-bg: #703030;
  --color-testimonial-link: #003b77;

  /* Fonts */
  --font-primary: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  --font-size-base: 18px;
  --font-size-base-mobile: 16px;
  --font-size-small: 14px;
  --font-size-xsmall: 12px;
  --line-height-base: 1.5em;
  --line-height-content: 1.5em;
  --line-height-heading: 1.4em;
  --font-weight-light: 200;
  --font-weight-normal: 400;
  --font-weight-medium: 700;
  --font-weight-bold: 700;

  /* Spacing */
  --spacing-xs: 5px;
  --spacing-s: 10px;
  --spacing-m: 15px;
  --spacing-l: 20px;
  --spacing-xl: 30px;
  --spacing-xxl: 40px;
  --spacing-content-max-width: 900px;
  --spacing-content-max-width-wide: 1500px;
  --spacing-gutter-responsive: 2vw;

  /* Borders */
  --border-radius-small: 5px;
  --border-radius-medium: 8px;
  --border-radius-large: 10px;
  --border-radius-xlarge: 30px;
  --border-radius-round: 100%;

  /* Transitions */
  --transition-base: all .2s ease-in-out;

  /* Shadows */
  --shadow-soft: 0 2px 4px rgba(var(--color-button-shadow-rgb), 0.3);
  --shadow-medium: 0 5px 10px rgba(var(--color-button-shadow-rgb), var(--color-shadow-base-opacity));
  --shadow-strong: 0 10px 15px rgba(var(--color-button-shadow-rgb), 0.50);
  --shadow-image: 0 6px 10px rgba(var(--color-button-shadow-rgb), 0.20);
  --shadow-image-hover: 0 12px 18px rgba(var(--color-button-shadow-rgb), 0.30);
  --shadow-image-active: 0 4px 4px rgba(var(--color-button-shadow-rgb), 0.15);
  --shadow-text: 2px 2px 4px rgba(var(--color-button-shadow-rgb), 0.30);

  /* Others */
  --blur-intensity: 3px;
  --hero-blur-intensity: 7px;
  --hr-gradient: linear-gradient(to right, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0));
}

/* Dark Mode Variables */
@media (prefers-color-scheme: dark) {
  :root {
	--color-bg: #121212;
	--color-text: #ededed;
	--color-link: #b6d0fa;
	--color-link-hover: rgba(211, 226, 250, 1);
	--color-link-hover-underline: rgba(211, 226, 250, 0.4);
	--color-accent-rgb: 255, 255, 255;
	--color-border-light: rgba(255, 255, 255, 0.20);
	--color-border-medium: #444;
	--color-border-dark: #888;
	--color-border-nav-rgb: 255, 255, 255;
	--color-page-number-bg: #4c4c4c;
	--color-page-number-bg-hover: #676767;
	--color-contact-form-text: var(--color-text);
	--color-contact-form-link: var(--color-link);
	--color-footer-text: #ccc;
	--color-footer-link: #b6d0fa;
	--color-footer-link-hover: var(--color-white);
	--color-testimonial-link: #b6d0fa;
	--hr-gradient: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,0.75), rgba(255,255,255,0));
	--color-button-shadow-rgb: 0, 0, 0;
	--color-shadow-base-opacity: 0.1;
  }
}
/* ==========================================================================
   Button Design Tokens (Solid Sunset Style - No Transparency)
   ========================================================================== */
:root {
  /* Standard Buttons: Warm Sunset Bronze */
  --btn-bg: #b35a5a;
  --btn-bg-hover: #cd7272;
  --btn-text: #ffffff;
  
  /* Hero "Learn More" Button: Solid Sunset Gold (Brightest) */
  --btn-hero-bg: #b35900;      /* Vibrant Sunset Orange/Gold */
  --btn-hero-bg-hover: #f39c12; 
  --btn-hero-text: #ffffff;
  
  /* Bolder Typography & Geometry */
  --btn-letter-spacing: 2px;
  --btn-radius: 2px;
  --btn-font-size: 15px;       /* Keeping the larger text you like */
  --btn-padding: 14px 36px;
}

/* Dark Mode Overrides */
@media (prefers-color-scheme: dark) {
  :root {
    --btn-bg: #924343; 
    --btn-bg-hover: #b35a5a;
    --btn-hero-bg: #d35400;    /* Deeper Sunset for dark backgrounds */
  }
}

/* ==========================================================================
   Base Styles & Typography
   ========================================================================== */

html {
  scroll-behavior: smooth;
}

body {
  font-size: var(--font-size-base);
  background-color: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-primary);
  line-height: var(--line-height-base);
}

p {
  line-height: var(--line-height-content);
}

a {
  color: var(--color-link);
  transition: var(--transition-base);
  text-decoration: underline;
  text-decoration-color: transparent;
}

a:hover {
    color: var(--color-link-hover);
    text-decoration-color: var(--color-link-hover-underline);
}


/* Lists */
ul {
  list-style-type: square;
}
.content-area .wp-block-list li { /* Specific block list item padding */
  padding-bottom: .5em;
}
.list-inside li { /* Utility class for indented list */
  margin-left: 1em;
  text-align: left;
}

/* Horizontal Rule */
hr,
hr.wp-block-separator {
  border: 0;
  height: 1px;
  background-color: transparent;
  background-image: var(--hr-gradient);
  clear: both;
  margin-top: calc(var(--spacing-xl) + var(--spacing-gutter-responsive));
  margin-bottom: calc(var(--spacing-xl) + var(--spacing-gutter-responsive)) !important;
}

/* Headings: Gilda Display (one weight, regular), chosen by Ryan 2026-10-12 */
h1, h2, h3 { font-weight: 400; line-height: 1.2; }
:is(h1, h2, h3).font-700 { font-weight: 400; }

/* --- H1 Styles --- */
h1 { 
  font-size: clamp(1.75rem, calc(1.5rem + 1.25vw), 39px); 
  letter-spacing: .01em; 
}

h1.no-fancy { 
  font-size: clamp(1.5rem, calc(1.32rem + 0.9vw), 32px); 
  text-shadow: none; 
}

h1.small { 
  font-size: clamp(1.375rem, calc(1.24rem + 0.68vw), 28px); 
  letter-spacing: .01em; 
}

/* --- H2 Styles --- */
h2 { 
  /* Bumped max from 30px to 36px, and min from 1.5rem to 1.75rem */
  font-size: clamp(1.75rem, calc(1.3rem + 1.4vw), 2.4rem); 
  letter-spacing: .01em; 
  padding-block-start: var(--spacing-l); 
}

h2.small { 
  /* Bumped max from 24px to 28px */
  font-size: clamp(1.5rem, calc(1.25rem + 0.6vw), 28px); 
  letter-spacing: .01em; 
}

/* --- H3 Styles --- */
h3 { 
  /* Bumped max from 24px to 30px to separate it more from body text */
  font-size: clamp(1.4rem, calc(1.2rem + 0.7vw), 1.7rem); 
  letter-spacing: .01em; 
  margin-block-start: var(--spacing-l); 
}

h3.small { 
  /* Bumped max from 21px to 24px */
  font-size: clamp(1.25rem, calc(1.16rem + 0.45vw), 24px); 
  letter-spacing: .01em; 
  margin-block-start: var(--spacing-l); 
}

/* --- H4 & H5 Styles --- */
h4 { 
  font-size: clamp(1.125rem, calc(1.05rem + 0.34vw), 21px); 
  letter-spacing: 1px; 
  font-weight: var(--font-weight-light); 
}

h5 { 
  font-size: clamp(1rem, calc(0.86rem + 0.68vw), 22px); 
  letter-spacing: 0px; 
}

/* Font Weight Helpers */
.font-200 { font-weight: var(--font-weight-light); }
.font-300 { font-weight: 300; }
.font-400 { font-weight: var(--font-weight-normal); }
.font-700 { font-weight: var(--font-weight-bold); }

/* Other Text Styles */
span.small { font-size: 70%; }
.big-font { font-size: 1.2em; }
.extra-line-height { line-height: 1.75em; }
.has-drop-cap:not(:focus):first-letter {
  font-size: 5em;
  margin-top: .10em;
  margin-bottom: -.05em;
  font-family: "Gilda Display", serif;
}
p.has-white-color { color: var(--color-white) !important; } /* High specificity class */

/* Entry Meta / Titles */
.entry-title a { color: var(--color-text) !important; }
.entry-meta { text-align: center; margin-top: var(--spacing-l); font-size: 1.1em; }
.author a, .cat-links a { color: inherit; }

.page .entry-title, .post .entry-title { /* Shared title styles */
  clear: both;
  text-align: center;
}
.page .entry-title { padding-top: var(--spacing-l); padding-bottom: var(--spacing-l); margin-top: var(--spacing-xxl); }
.post .entry-title { margin-top: var(--spacing-xl); }

/* ==========================================================================
   Layout & Containers
   ========================================================================== */

/* General Content Width */
.entry-content p, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5,
.entry-content .schema-faq-question, .comments-area, .900px {
  max-width: var(--spacing-content-max-width);
  margin-left: auto;
  margin-right: auto;
}
.forminator-guttenberg p { max-width: var(--spacing-content-max-width-wide); } /* Wider override */

/* Page Structure */
.page .entry-content:not(:first-child) { margin-top: 0em; }
.relative-position { position: relative; }
.clearfix:before, .clearfix:after { content: " "; display: table; }
.clearfix:after { clear: both; }
.clearfix { width: 100%; }

/* Width Helpers */
.narrow-width, .width-940 {
  padding-left: var(--spacing-xs);
  padding-right: var(--spacing-xs);
  margin-left: auto;
  margin-right: auto;
}
.narrow-width { max-width: 800px; }
.width-940 { max-width: 1036px; }

/* Group Boxes / Sections */
.groupbox, .category .page-header, .blog .page-header, .groupbox-norounded {
  margin-top: 2em;
  margin-bottom: 2em !important;
  box-shadow: var(--shadow-soft);
  background-color: var(--color-white);
}
.groupbox, .category .page-header, .blog .page-header {
  border-radius: var(--border-radius-small);
  padding: 5% 2%;
}
.groupbox-norounded {
  border-radius: 0px;
  padding: 2% 3%;
}
.groupbox-full {
  background: linear-gradient(to right, rgba(var(--color-accent-rgb), 0.1) 0%, rgba(var(--color-accent-rgb), 0.3) 50%, rgba(var(--color-accent-rgb), 0.1) 100%);
  padding: 5% 3%;
  margin-top: 2em;
  margin-bottom: 2em !important;
  margin-left: calc(-100vw / 2 + 100% / 2); /* Full bleed */
  margin-right: calc(-100vw / 2 + 100% / 2);
  max-width: 100vw;
  width: auto;
}
.light-border {
  border: 1px solid var(--color-border-light);
  padding: 1% .5%;
  margin-top: 2em;
  border-radius: var(--border-radius-large);
}
.container-background {
  background: linear-gradient(to right, rgba(var(--color-accent-rgb), 0.5) 0%, rgba(var(--color-accent-rgb), 0.8) 50%, rgba(var(--color-accent-rgb), 0.5) 100%);
}

/* Background Gradients (Utilities) */
.background-gradient-grey-right, .background-gradient-grey-bottom, .background-gradient-grey-left {
  padding-right: 1vw;
  padding-left: 1vw;
}
.background-gradient-grey-right { background-image: linear-gradient(90deg, rgba(var(--color-accent-rgb), 0) 70%, rgba(var(--color-accent-rgb), 0.6) 70%); }
.background-gradient-grey-bottom { background-image: linear-gradient(180deg, rgba(var(--color-accent-rgb), 0) 60%, rgba(var(--color-accent-rgb), 0.6) 60%); }
.background-gradient-grey-left { background-image: linear-gradient(90deg, rgba(var(--color-accent-rgb), 0.6) 30%, rgba(var(--color-accent-rgb), 0) 30%); }

/* Sidebar */
#right-sidebar { margin-top: var(--spacing-xxl); }
.widget_block {
  display: block;
  padding: 5% 2% !important;
  box-shadow: var(--shadow-soft);
  border-radius: var(--border-radius-small);
}
.cat-item-10 { background-color: rgba(0, 0, 0, 0.05); padding: 2px; }
.cat-item-10 a { font-size: 1.2em; }
.cat-item-10 .children a { font-size: 1em; }

/* Footer Areas */
.before-footer-content {
  background: linear-gradient(to right, var(--color-contact-form-bg-start) 0%, var(--color-contact-form-bg-end) 25%, var(--color-contact-form-bg-end) 75%, var(--color-contact-form-bg-start) 100%);
  color: var(--color-footer-text);
  margin-top: 100px;
}
.before-footer-content ul { list-style-type: none; padding: 0; margin: 0; }
.before-footer-content a { color: var(--color-footer-link); }
.before-footer-content a.button { color: var(--color-black); }
.before-footer-content hr {
  background-color: transparent;
  background-image: var(--hr-gradient);
  clear: both;
  margin-top: calc(var(--spacing-l) + 1vw);
  margin-bottom: calc(var(--spacing-xl) + 1vw) !important;
}
.site-footer { overflow-x: hidden; }
.site-info { background-color: var(--color-footer-bg); }
.after-content { padding-top: var(--spacing-xl); overflow: hidden; }
.after-content h2 { font-size: 24px; }

/* Rank Math Breadcrumbs */
.rank-math-breadcrumb p {
  padding: var(--spacing-xs) 1%;
  font-size: var(--font-size-small);
  max-width: var(--spacing-content-max-width-wide);
  margin: 0 auto;
  position: relative;
}

/* Optional: Style the links inside */
.rank-math-breadcrumb a {
  text-decoration: none;
  color: inherit; /* Keeps your current text color */
}

.rank-math-breadcrumb a:hover {
  text-decoration: underline;
}

/* ==========================================================================
   Gutenberg Blocks Specific Styles
   ========================================================================== */

/* Images & Media */
.gb-block-image img, .rsp-fill img { width: 100%; height: auto; }
figcaption { /* Base figcaption styles */
  font-size: var(--font-size-small);
  line-height: var(--font-size-small); /* Match font size */
  opacity: .8;
  text-align: center;
}
.wp-block-image figcaption { font-size: 75%; } /* WP Specific size override */
.wp-block-image .aligncenter > figcaption { text-align: center; }
.borderradius30 img { border-radius: var(--border-radius-round) !important; }
.border-radius5 img { border-radius: var(--border-radius-medium); }

/* Media & Text */
.wp-block-media-text .wp-block-media-text__content {
  padding-top: var(--spacing-s);
  padding-bottom: var(--spacing-m);
}
.background-blur { /* Blurred background container */
  background-color: rgba(var(--color-overlay-dark-rgb), 0.4);
  backdrop-filter: blur(var(--blur-intensity));
  padding: var(--spacing-m);
  border-radius: var(--border-radius-large);
}
/* Image Caption Overlay Styles */
.image-caption-overlay { position: relative; }
.featured-image-caption { /* Different caption style for featured */
  text-align: left;
  display: block;
  font-size: var(--font-size-base-mobile);
  position: absolute;
  bottom: var(--spacing-xs);
  padding: var(--spacing-xs) var(--spacing-l);
  line-height: var(--spacing-l);
  border: 0;
  border-radius: var(--border-radius-small);
  margin: 0;
  background: rgba(var(--color-overlay-light-rgb), 0.5);
  color: var(--color-black);
}

/* Search Form Inputs/Buttons */
.wp-block-search .wp-block-search__input,
.wp-block-search .wp-block-search__button
  {
  margin: 2px !important;
  border-radius: var(--border-radius-small) !important;
  -webkit-appearance: none; /* Required for iOS */
  -webkit-border-radius: var(--border-radius-small); /* Legacy iOS */
}

/* Search Block Layout */
.wp-block-search .wp-block-search__label { width: auto; }
.wp-block-search .wp-block-search__inside-wrapper { flex-wrap: wrap; margin-left: -2px; }

/* Group Block Inner Containers */
.site-main .alignfull .wp-block-group__inner-container { padding: 0px; }
.site-main .wp-block-group__inner-container { padding: var(--spacing-xl) var(--spacing-l); }
.groupbox .wp-block-group__inner-container,
.groupbox-norounded .wp-block-group__inner-container,
.groupbox-full .wp-block-group__inner-container { padding: var(--spacing-xl) var(--spacing-l); }
.width-940 .wp-block-group__inner-container { padding: var(--spacing-s); }
.wp-block-group__inner-container { padding: 0px; } /* Default, verify if needed */

/* Columns Block */
.mobile-columns { flex-wrap: nowrap; }
.mobile-columns .wp-block-column { margin-left: 1%; flex-basis: auto; }
.mobile-columns .wp-block-column:first-child { margin-left: 0%; }
.mobile-columns .wp-block-image { margin-bottom: 0em; }

/* Cover Block */
.wp-block-cover h2 { max-width: 100%; }

/* Latest Posts Block */
.wp-block-latest-posts { margin: 0; }
.wp-block-latest-posts__featured-image.aligncenter { margin-bottom: .5em; }
.wp-block-latest-posts__featured-image a,
.wp-block-latest-posts__featured-image img { display: block; }
.text-overflow .title { /* Ellipsis for titles */
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

/* Query Loop Block */
.wp-block-query { padding-top: 1em; padding-bottom: 1em; }
.wp-block-query ul, ul.is-flex-container { margin-left: 0; margin-right: 0; } /* Reset list margins */

/* Navigation Block */
.wp-block-navigation ul {
  margin-bottom: var(--spacing-xs);
  border-top: 1px solid rgba(125, 125, 125, 0.25);
  border-bottom: 1px solid rgba(125, 125, 125, 0.25);
}
.wp-block-navigation li {
  padding-right: 8px !important;
  border-right: 1px solid #787878;
  line-height: 2em;
}
.wp-block-navigation li:last-child { border-right: none; }
.wp-block-navigation-item__label { margin: 0 var(--spacing-xs); } /* Simplified margin */
.wp-block-navigation ul li[class*="current-menu-"] > a {
   background: rgba(var(--color-accent-rgb), 0.6);
   color: inherit;
}

/* Social Links Block */
.wp-block-social-links.aligncenter { justify-content: left; }

/* ==========================================================================
   Forms (General, Contact, Testimonials)
   ========================================================================== */

/* General Form Input Reset */
input[type="email"], input[type="text"], input[type="search"],
textarea, select {
  border-radius: var(--border-radius-small) !important;
  -webkit-appearance: none;
}

/* Contact Form Specifics */
.ryan-contact-form {
  background: linear-gradient(to right, var(--color-contact-form-bg-start) 0%, var(--color-contact-form-bg-end) 25%, var(--color-contact-form-bg-end) 75%, var(--color-contact-form-bg-start) 100%);
  border-radius: 0px;
  padding: var(--spacing-l) var(--spacing-s);
  margin-bottom: 100px !important;
  box-shadow: var(--shadow-medium);
  color: var(--color-contact-form-text);
}
.ryan-contact-form p, .ryan-contact-form h2 { color: var(--color-contact-form-text); }
.ryan-contact-form h2 { padding-top: 0px; padding-bottom: var(--spacing-l); }
.ryan-contact-form a { color: var(--color-contact-form-link); text-decoration: underline; }
.ryan-contact-form hr, .ryan-contact-form hr.wp-block-separator {
  background-image: linear-gradient(to right,rgba(255,255,255,0),rgba(255,255,255,0.75),rgba(255,255,255,0));
}

/* Testimonials Form */
.tt_form_container input, .tt_form_container textarea { width: 90%; }
.ttshowcase_form_wrap label {
  float: left; /* Keep float for layout? Consider flex/grid if structure allows */
  position: relative;
  width: 100%;
  padding-bottom: var(--spacing-xs);
  padding-top: var(--spacing-s);
}
.ttshowcase_form_wrap select, .ttshowcase_form_wrap input {
  box-sizing: border-box;
  padding: var(--spacing-s);
}

.read-only-field input { background-color: #a7d8ec !important; }

/* ==========================================================================
   Navigation (Main, Secondary, Mobile, Sticky)
   ========================================================================== */

/* General Navigation Structure */
.main-navigation, .inside-navigation, #mobile-header {
  position: relative;
  z-index: 9999;
  font-family: var(--font-secondary);
  font-weight: var(--font-weight-normal);
}
nav ul li a { color: inherit; }
nav ul li a:hover { color: inherit; }
.menu-toggle { color: inherit; }

/* Top Bar */
.top-bar { color: var(--color-black); border-bottom: 1px solid var(--color-border-medium); }
.top-bar-info { font-size: var(--font-size-xsmall); text-transform: uppercase; line-height: 21px; }
#menu-top-bar { color: var(--color-black); }

/* Main Menu Bar & Mobile Sticky Header - Upgraded Glassmorphism */
.main-navigation,
#mobile-header,
#sticky-navigation {
  z-index: 9999;
  background-color: rgba(255, 255, 255, 0.95);
  background: linear-gradient(
      to bottom, 
      rgba(var(--color-overlay-light-rgb), 0.85) 0%, 
      rgba(var(--color-overlay-light-rgb), 0.70) 100%
  );
  -webkit-backdrop-filter: blur(calc(var(--blur-intensity) + 2px));
  backdrop-filter: blur(calc(var(--blur-intensity) + 2px));
  border-bottom: 1px solid rgba(255, 255, 255, 0.5);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
   background: linear-gradient(to top, rgba(var(--color-accent-rgb), 0.2) 0%, rgba(var(--color-accent-rgb), 0.4) 50%, rgba(var(--color-accent-rgb), 0.2) 100%);
   color: inherit;
}
nav ul li a:hover { /* General hover */
  background: linear-gradient(to top, rgba(var(--color-accent-rgb), 0.8) 0%, rgba(var(--color-accent-rgb), 1) 50%, rgba(var(--color-accent-rgb), 0.8) 100%);
}
/* Dropdown Menus (Sub-menus) - Upgraded Glassmorphism */
ul.sub-menu { 
  z-index: 9999;
  background-color: rgba(255, 255, 255, 0.95);
  background: linear-gradient(
      to bottom, 
      rgba(var(--color-overlay-light-rgb), 0.85) 0%, 
      rgba(var(--color-overlay-light-rgb), 0.70) 100%
  );
  -webkit-backdrop-filter: blur(calc(var(--blur-intensity) + 2px));
  backdrop-filter: blur(calc(var(--blur-intensity) + 2px));
  /* Crisp edges on the sides and bottom, seamless at the top */
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-top: none; 
  /* Slightly deeper shadow to lift the dropdown off the page */
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12); 
}

/* Secondary Navigation */
#secondary-navigation {
  border-top: 1px solid rgba(var(--color-border-nav-rgb), 0.3);
  border-bottom: 1px solid rgba(var(--color-border-nav-rgb), 0.3);
  background: linear-gradient(to right, rgba(var(--color-accent-rgb), 0.5) 0%, rgba(var(--color-accent-rgb), 0.8) 50%, rgba(var(--color-accent-rgb), 0.5) 100%);
}
.secondary-navigation .menu-toggle { display: none; }
.secondary-navigation .main-nav > ul { align-items: center; justify-content: center; }
.secondary-navigation .inside-navigation { z-index: 1 !important; }
.secondary-menu li { /* Shared border style with desktop primary */
  border-right-style: solid;
  border-right-width: 1px;
  border-image-source: linear-gradient(0deg, rgba(var(--color-border-nav-rgb), 0) 20%, rgba(var(--color-border-nav-rgb), 0.5) 50%, rgba(var(--color-border-nav-rgb), 0) 80%);
  border-image-slice: 1;
}
.secondary-menu li:last-child { border-right: none; }
.secondary-navigation .main-nav ul li a {
  font-size: var(--font-size-small) !important;
  padding: 0 12px !important; /* Simplified padding */
}

/* Home Page Navigation */
.home .toggled { margin-bottom: 60px; }

/* Mobile Navigation */
#mobile-header > .inside-navigation { border-bottom: 1px solid #a6a6a6; }
#mobile-menu li { border-bottom: 1px solid #f1f1f1; }
#mobile-menu .sub-menu li { border-bottom: 1px solid #b1b1b1; }
.main-navigation.toggled .main-nav ul { background: inherit; }
.menu-item-has-children .dropdown-menu-toggle { padding-right: var(--spacing-s); }
.menu-item-has-children button.dropdown-menu-toggle { width: 100%; left: 0; padding: 0; }
.main-navigation .main-nav ul .menu-item-has-children:hover > button.dropdown-menu-toggle { background-color: transparent; }
.menu-item-has-children button.dropdown-menu-toggle .gp-icon { float: right; padding-right: var(--spacing-l); }
.menu-item-has-children button.dropdown-menu-toggle .gp-icon svg { width: 1.5em; height: 1.5em; }

/* ==========================================================================
   Buttons - Unified Fine Art Style (Scoped Version)
   ========================================================================== */

/* 1. THE TARGET LIST (Standard Bronze Buttons)
   Defines base styles for all general buttons across the site. */
.btn, 
.button, 
.wp-block-button__link, 
.gb-button, 
.forminator-button-submit, 
.tt_form_button, 
.search-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  text-transform: uppercase;
  letter-spacing: var(--btn-letter-spacing);
  font-family: var(--font-primary);
  font-size: var(--btn-font-size) !important;
  padding: var(--btn-padding) !important;
  border-radius: var(--btn-radius) !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  border: none;
  box-sizing: border-box;
  line-height: 1.2;
  white-space: nowrap; /* Fixes text stacking globally */
  background-color: var(--btn-bg); 
  color: var(--btn-text)!important;
  box-shadow: var(--shadow-soft);
}

/* 2. THE GOLD OVERRIDE (Primary Hero CTA)
   Overrides base styles. Includes the transparent border fix to match the secondary button math. */
.home-button, 
a.fine-art-button,
.fine-art-button > .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: var(--btn-letter-spacing);
  font-family: var(--font-primary);
  font-size: var(--btn-font-size) !important;
  border-radius: var(--btn-radius) !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  line-height: 1.2;
  white-space: nowrap; /* Prevents text stacking in hero */
  
  background-color: var(--btn-hero-bg);
  color: var(--btn-hero-text) !important;
  font-weight: 700;
  padding: 16px 32px !important; /* Reduced from 42px so they comfortably fit side-by-side */
  border: 2px solid transparent !important; /* Perfect Alignment Fix */
  box-shadow: 0 4px 15px rgba(230, 126, 34, 0.3);
}

/* 3. THE OUTLINE OVERRIDE (Secondary Hero CTA)
   Maintains the exact same padding as the primary button for perfect sizing. */
a.fine-art-button.secondary,
.fine-art-button.secondary > .wp-block-button__link {
  background-color: transparent !important;
  color: var(--color-white) !important;
  border-color: rgba(255, 255, 255, 0.6) !important;
  box-shadow: none !important;
  letter-spacing: 0px;
  padding: 10px 20px !important;
}

/* 4. HOVER & INTERACTIONS */
@media(hover: hover) {
  /* Standard Hover */
  .btn:hover, 
  .button:hover, 
  .gb-button:hover, 
  .wp-block-button__link:hover {
    background-color: var(--btn-bg-hover);
    transform: translateY(-2px);
    box-shadow: var(--shadow-medium);
  }

  /* Primary Hero Hover */
  .home-button:hover, 
  a.fine-art-button:hover,
  .fine-art-button > .wp-block-button__link:hover {
    background-color: var(--btn-hero-bg-hover);
    border-color: transparent !important;
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(230, 126, 34, 0.5);
    color: var(--color-white) !important;
  }

  /* Secondary Hero Hover */
  a.fine-art-button.secondary:hover,
  .fine-art-button.secondary > .wp-block-button__link:hover {
    background-color: rgba(255, 255, 255, 0.1) !important;
    border-color: var(--color-white) !important;
    box-shadow: 0 10px 25px rgba(255, 255, 255, 0.15) !important;
  }
}

/* Active / Click State for all buttons (Universal Tap Feedback) */
.btn:active, 
.button:active, 
.gb-button:active,
a.fine-art-button:active,
.fine-art-button > .wp-block-button__link:active,
.home-button:active,
.wp-block-button__link:active {
  transform: translateY(0); /* Pushes the button back down if hovered on desktop */
  box-shadow: none !important;
  filter: brightness(0.85); /* Instantly darkens the button to mimic a physical press */
  
  /* The Fix: This overrides your base 0.3s transition so the tap is INSTANT, eliminating mobile lag */
  transition: filter 0s, box-shadow 0s, transform 0.1s ease; 
}

/* 5. LAYOUT UTILITIES */
.hero-cta-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 15px;
  padding: 10px 25px 30px 0;
  clear: both;
}

@media (max-width: 767px) {
  .btn, .button, .wp-block-button__link { white-space: normal; text-align: center; }
}

@media (max-width: 768px) {
  .hero-cta-container { 
    justify-content: center !important; 
    padding: 20px 15px 30px 0px !important; 
  }
}

.button-line-even, 
.button-line {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-s);
  width: 100%;
  justify-content: center;
}

.button-line-even > * {
  width: 250px;
  flex-grow: 0;
}

/* Core buttons in a button line keep the red .button look
   (WordPress global styles would otherwise make them gray). */
.button-line .wp-block-button__link {
  background-color: var(--btn-bg);
  text-transform: uppercase;
  letter-spacing: var(--btn-letter-spacing);
  line-height: 1.2;
}

@media(hover: hover) {
  .button-line .wp-block-button__link:hover {
    background-color: var(--btn-bg-hover);
  }
}

/* ==========================================================================
   WordPress Core Accordion Block - Soft Fine Art Card Style
   ========================================================================== */

/* 1. The Container - Clean & Grounded with Dark Mode Support */
.wp-block-accordion-item {
  margin-bottom: 15px !important;
  border: 1px solid var(--color-border-light) !important;
  border-radius: 8px !important;
  background-color: var(--color-bg) !important; 
  /* Removes resting shadow to match your clean aesthetic */
  box-shadow: none !important; 
  transition: all 0.3s ease !important;
  overflow: hidden;
}

/* Reset heading margins so the block spacing stays uniform */
h3.wp-block-accordion-heading {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}

/* 2. The Toggle (The Question Button) */
.wp-block-accordion-heading__toggle {
  display: flex !important;
  align-items: center;
  justify-content: space-between !important;
  width: 100% !important;
  padding: 20px 25px !important;
  /* Forces transparency over WP defaults */
  background-color: transparent !important; 
  color: var(--color-text) !important; 
  font-family: var(--font-primary);
  font-size: 1.05rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  border: none !important;
  box-shadow: none !important;
  outline: none;
  text-decoration: none !important; 
}

/* Ensure no underline is triggered on hover or focus */
.wp-block-accordion-heading__toggle:hover,
.wp-block-accordion-heading__toggle:focus,
.wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title {
  text-decoration: none !important;
}

/* 3. Hide the default "+" text icon output by WordPress */
.wp-block-accordion-heading__toggle-icon {
  display: none !important;
}

/* 4. The Interactive Icon (Refined Fine Art Chevron) */
.wp-block-accordion-heading__toggle::after {
  content: "";
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background-color: var(--btn-bg) !important; 
  border-radius: 50%;
  margin-left: 15px;
  /* Uses a custom cubic-bezier for a springier, more elegant rotation */
  transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), background-color 0.3s ease;
  
  /* Thinner stroke width (1.5) for a more delicate, high-end look */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-size: 16px;
  background-position: center;
  background-repeat: no-repeat;
}

/* 5. Hover State - Using Your Native Variables */
@media(hover: hover) {
  .wp-block-accordion-item:hover {
    border-color: var(--btn-bg) !important;
    background-color: rgba(var(--color-accent-rgb), 0.04) !important; 
    /* Perfectly matches your site's standard hover depth */
    box-shadow: var(--shadow-medium) !important;
    /* Matches your button hover lift */
    transform: translateY(-2px);
  }
}

/* 6. Open State */
/* Refactored Accordion Open State */
.wp-block-accordion-item.is-open,
.wp-block-accordion-item.active { 
  border-color: var(--btn-bg) !important;
  background-color: var(--color-bg) !important;
}

/* Flips the chevron 180 degrees when open */
.wp-block-accordion-heading__toggle[aria-expanded="true"]::after {
  transform: rotate(-180deg);
}

/* 7. Content (The Answer Panel) */
.wp-block-accordion-panel {
  padding: 0 25px 25px 25px !important;
  color: var(--color-text) !important; 
  line-height: 1.6;
}

/* Cleanup internal paragraph spacing */
.wp-block-accordion-panel p:first-child {
  margin-top: 0 !important;
}
.wp-block-accordion-panel p:last-child {
  margin-bottom: 0 !important;
}

/* 8. Smooth fade and slide up for the accordion content */
@keyframes accordionFadeIn {
  from { 
    opacity: 0; 
    transform: translateY(-8px); 
  }
  to { 
    opacity: 1; 
    transform: translateY(0); 
  }
}

.wp-block-accordion-item.is-open .wp-block-accordion-panel,
.wp-block-accordion-item.active .wp-block-accordion-panel {
  animation: accordionFadeIn 0.5s cubic-bezier(0.165, 0.84, 0.44, 1) forwards;
}

/* ==========================================================================
   Galleries (WP, Photoswipe, Meow)
   ========================================================================== */

/* WordPress Default Gallery */
.gallery { align-items: center; }
.gallery-item { margin-bottom: var(--spacing-s); text-align: center; position: relative; }
.gallery-item img { max-height: 80vh; object-fit: contain; width: auto; }
.gallery-item > div > a { display: block; line-height: 0; box-shadow: none; }
.gallery-icon { padding: 0px; transition: var(--transition-base); }
.gallery-caption {
  display: block; /* Default display, hover reveals */
  opacity: 0;
  transition: opacity 0.2s;
  position: absolute;
  bottom: 6px;
  padding: var(--spacing-xs) var(--spacing-l);
  background: rgba(var(--color-overlay-light-rgb), 0.5);
  color: var(--color-black);
  -webkit-backdrop-filter: blur(calc(var(--blur-intensity) - 1px));
  backdrop-filter: blur(calc(var(--blur-intensity) - 1px));
  margin: 0 auto var(--spacing-xs) auto;
  left: 0; right: 0;
  width: fit-content;
  border-radius: var(--border-radius-small);
  /* Inherits base figcaption font-size, line-height, text-align */
}
.gallery-item:hover .gallery-caption { opacity: 1 !important; }

/* WP Gallery Block (Nested Images) */
.wp-block-gallery.has-nested-images figure.wp-block-image { flex-grow: 0; }
.wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image) { width: auto; }
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
  background: rgba(var(--color-overlay-dark-rgb), 0.50) !important;
  padding: 6px 6px 8px 6px; /* Specific padding */
}
figure.wp-block-gallery.has-nested-images { align-items: center; justify-content: center; }

/* Gallery Headers */
.gallery-header, .gallery-header-wide {
  width: 90%;
  margin: 2em auto !important;
  text-align: center;
  background-color: var(--color-white);
  padding: var(--spacing-l);
  box-shadow: var(--shadow-medium);
  border-radius: var(--border-radius-xlarge);
}
.gallery-header { max-width: 800px; }
.gallery-header-wide { max-width: var(--spacing-content-max-width-wide); }
.gallery-header .listing-item .title { text-align: center; }

/* Photoswipe (pswp) Captions */
.pswp__dynamic-caption--below, .pswp__dynamic-caption--mobile, .pswp__caption__exif {
  font-size: var(--font-size-xsmall); /* Smallest size */
}
.pswp__dynamic-caption--below, .pswp__dynamic-caption--mobile { text-align: center; }
.pswp__dynamic-caption--below { max-width: 100% !important; padding: var(--spacing-xs) 0 0 !important; }
.pswp__dynamic-caption--mobile { background: rgba(var(--color-overlay-dark-rgb), 0.5); padding: var(--spacing-xs) !important; }
.pswp__caption__text { font-size: 13px; line-height: 15px; }
.pswp__caption__text p { margin-bottom: 0em; }
.pswp__caption__exif { line-height: var(--font-size-small); }
.pswp__caption__exif_camera { display: none; }
.pswp__caption small { display: none; }

/* Gallery Layout Adjustments */
#gallery-1::before { /* Helper text */
  content: "Tap any image to go fullscreen with pinch, swipe & zoom";
  clear: both; display: block; width: 100%; position: relative;
  text-align: center; font-size: var(--font-size-xsmall);
  padding: 8px 0 2px 0; /* Simplified padding */
  margin-bottom: var(--spacing-s);
}
.gallery, .single-post .featured-image { /* Full bleed effect */
  width: calc(100% + 40px); max-width: calc(100% + 40px);
  margin-left: -20px; padding: 0;
}
.alignfull .gallery { /* Already edge to edge; the bleed would overflow the page */
  width: 100%; max-width: 100%; margin-left: 0;
}

/* Panorama */
.panorama {
  height: 80vh; overflow-x: scroll; overflow-y: hidden;
  -webkit-overflow-scrolling: touch; overflow-scrolling: touch;
}
.panorama img { height: 100%; max-width: none; }

/* ==========================================================================
   Plugins (YARPP, Novashare, Testimonials)
   ========================================================================== */

/* YARPP (Related Posts) */
.yarpp-related { margin: 1em 0; max-width: 100%; box-sizing: border-box; }
.yarpp-related h3 { font-size: 125%; font-weight: var(--font-weight-bold); margin: 0 0 1em; padding: 0; text-transform: capitalize; box-sizing: border-box; }
.yarpp-thumbnails-horizontal {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5em;
  max-width: 100%; box-sizing: border-box; text-align: left !important;
}
.yarpp-thumbnails-horizontal .yarpp-thumbnail { display: flex; flex-direction: column; text-decoration: none; color: inherit; overflow: hidden; box-sizing: border-box; }
.yarpp-thumbnails-horizontal .yarpp-thumbnail img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; margin-bottom: 0.5em; flex-shrink: 0; }
.yarpp-thumbnails-horizontal .yarpp-thumbnail .yarpp-thumbnail-title { font-size: 96%; font-weight: var(--font-weight-bold); text-align: left; text-decoration: none; display: block; }

/* Novashare */
@media (max-width: 1000px) {
  .ns-floating { background-color: rgba(var(--color-overlay-light-rgb), 0.34) !important; backdrop-filter: blur(var(--blur-intensity)); }
}

/* Testimonials Showcase */
.testimonials .ttshowcase_rl_box { box-shadow: 0 15px 30px rgba(var(--color-button-shadow-rgb), var(--color-shadow-base-opacity)); border-radius: 3px; }
.ttshowcase_rl_aditional_info { font-size: var(--font-size-base-mobile); }
.ttshowcase_rl_quote_block, .ttshowcase_rl_quote_block p { line-height: var(--line-height-content); font-size: var(--font-size-base-mobile); text-align: left; }
.ttshowcase_rl_quote p { margin-bottom: var(--spacing-xs); }
.tt_quote_info-above p, .tt_quote_info-below p { padding: var(--spacing-s); }
.ttshowcase_wrap img { width: 100%; }
.ttshowcase_rl_subtitle a { opacity: 1 !important; font-size: 1em !important; color: var(--color-testimonial-link); }
.ttshowcase_rl_subtitle a::after { content: "  >>"; }
.ttshowcase_rl_readmore { padding-left: var(--spacing-s); }
.tt_1cl, .tt_2cl, .tt_3cl, .tt_4cl, .tt_5cl, .tt_6cl { vertical-align: top !important; }

/* Schema FAQ */
.schema-faq-question { font-size: 1.2em; font-weight: var(--font-weight-medium); margin-bottom: var(--spacing-s); display: block; }

/* ==========================================================================
   Page Specific Styles (Home, Blog, Archive, Single)
   ========================================================================== */

/* Hero Sections */
.home-page-hero, .secondary-page-hero, .mb-page-hero {
  position: relative; padding: 0px !important; z-index: 0; min-height: 550px;
}
.home-page-hero { margin-top: -70px; height: 85vh; }
.secondary-page-hero { margin-top: 0px; height: 80vh; }
.mb-page-hero { margin-top: 0px; height: 50vh; }
.family-header { height: 70vh; } /* Specific hero height */

.home-page-hero .wp-block-cover__inner-container,
.secondary-page-hero .wp-block-cover__inner-container,
.mb-page-hero .wp-block-cover__inner-container {
  display: flex; justify-content: flex-end; position: static !important;
}
.home-hero { 
  flex-basis: 50%; 
  text-align: right; 
  color: var(--color-white);
  padding: var(--spacing-m); 
  border-radius: 0px;
  
  /* 1. Clear Start: Gradient begins at 0 opacity to remove the smudge */
  background: linear-gradient(
    to right, 
    rgba(var(--color-overlay-dark-rgb), 0) 0%, 
    rgba(var(--color-overlay-dark-rgb), 0.3) 25%, 
    rgba(var(--color-overlay-dark-rgb), 0.6) 100%
  );
  
  -webkit-backdrop-filter: blur(var(--hero-blur-intensity)); 
  backdrop-filter: blur(var(--hero-blur-intensity));

  /* 2. Floating Edge: Using a light border instead of a dark shadow */
  border-right: 1px solid rgba(255, 255, 255, 0.2);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  
  /* 3. Subtle Inner Glow: This gives the "floating" feel without the black line */
  box-shadow: inset 1px 1px 0px rgba(255, 255, 255, 0.05);
  
  /* Kill the outer shadow that was causing the smudge */
  border-left: none;
}

.home-hero p { display: block; float: right; padding: 0 calc(14px + .2em); clear: both; }

/* Hero Headlines */
.hero-title-group {
    margin: 0;
    padding: 0;
    line-height: 1;
    display: block; /* Ensures it acts like a container */
}
/* ==========================================================================
   Hero Headlines (Minifier-Hardened & Fluid)
   ========================================================================== */

/* 1. Main Brand Name */
.first-headline {
  /* Using clamp for safety, but protecting the math with calc() */
  font-size: clamp(2.2rem, calc(1.8rem + 2vw), 65px) !important;
  letter-spacing: .01em !important; 
  padding: 0 var(--spacing-s); 
  font-weight: 400; /* Gilda Display has one weight */
  line-height: 1.2 !important;
  display: block; 
  margin-top: 1rem;
}

/* 2. Location Subtitle */
.second-headline {
  /* Protected fluid scaling */
  font-size: clamp(1.7rem, calc(1.4rem + 1vw), 40px) !important;
  letter-spacing: .01em !important;
  padding: 0 calc(10px + 0.1rem); 
  padding-top: 10px; 
  padding-bottom: 0px !important;
  font-weight: var(--font-weight-medium); 
  line-height: 1.2 !important;
  display: block; 
  margin-bottom: 15px; 
  margin-right: 0.2rem;
  max-width: var(--spacing-content-max-width-wide) !important;
  font-weight: 400;
}
h2.second-headline {
  letter-spacing: 0px!important;
  padding-top: 0px;
  font-size: clamp(1.4rem, calc(1.1rem + .5vw), 32px) !important;
}

/* 3. Hero Description Paragraph */
.hero-description, 
.home-hero p {
    display: block;
    float: right;
    padding: 0 calc(14px + 0.2em);
    clear: both;
    font-size: 1.1rem;
    font-weight: 400;
    margin-top: 0px;
    padding-top: 15px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.3);
}


/* Home Page Links Section: each card is a core image block (figure > link > img, then the caption) */
.home-page-links .wp-block-image, .home-page-links .wp-block-image img { border-radius: var(--border-radius-large) !important; transition: var(--transition-base); }
.home-page-links .gb-inside-container, .home-page-links > .wp-block-column { position: relative; }
.home-page-links .wp-block-image { position: relative; }
.home-page-links .wp-block-image a { display: block; }
.home-page-links figcaption { 
  position: absolute; 
  bottom: var(--spacing-m); /* Lifts it off the bottom edge */
  left: 5%; /* Centers the 90% width */
  padding: var(--spacing-s) var(--spacing-xs);
  background: var(--color-accent-medium); 
  color: var(--color-black);
  -webkit-backdrop-filter: blur(var(--blur-intensity)); 
  backdrop-filter: blur(var(--blur-intensity));
  margin-bottom: 0px; 
  font-size: 1.3em; 
  width: 90%; /* Pulls it in from the sides */
  line-height: 1em; 
  opacity: 0.95; 
  text-align: center; 
  border-radius: 50px; /* Creates the distinct button/pill shape */
  border: 1px solid rgba(255, 255, 255, 0.4); /* Adds a glossy rim that pops in both modes */
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); /* Keeps a soft shadow for light mode */
  pointer-events: none; /* Clicks reach the image link underneath */
}
.home-page-links .wp-block-image.rsp-ico-end figcaption::after { font-size: 60%; top: -1px; left: var(--spacing-xs); }
@media(hover: hover) and (pointer: fine) {
  .home-page-links .wp-block-image:hover figcaption { opacity: 1; }
}
@media (max-width: 768px) {
  .home-page-links figcaption {
    font-size: 1.1em; 
    padding: var(--spacing-s) var(--spacing-xs); 
  }
}
/* --- Home Page Links Interactive States --- */

/* Mobile/Universal Tap: Instant dim, no scaling lag */
.home-page-links .wp-block-image:active {
  transform: none; 
  filter: brightness(0.85); 
  transition: filter 0s; 
}

/* Desktop Hover & Click States */
@media (hover: hover) and (pointer: fine) {
  
  /* Desktop Hover: Lifts and scales UP */
  .home-page-links .wp-block-image:hover {
    box-shadow: var(--shadow-image-hover);
    transform: scale(1.02);
    position: relative; 
    z-index: 5; 
    overflow: visible;
  }
  
  /* Desktop Click: Squishes DOWN */
  .home-page-links .wp-block-image:active {
    box-shadow: var(--shadow-image-active);
    transform: scale(0.97);
    filter: brightness(0.85); 
    transition: transform 0.1s ease, filter 0s; 
  }
}

/* Blog / Archive Pages */
.category .page-header, .blog .page-header { margin-left: 5%; margin-right: 5%; }
.category .page-header h1, .blog .page-header h1 { font-size: calc(1.2em + 1vw); }
.category .page-header h2 { font-size: calc(1.2em + .2vw); letter-spacing: 2px; }
.category .page-header h4 { font-size: calc(1em + .3vw); }

.archive .inside-article, .blog .inside-article {
  background-color: var(--color-white); border-radius: var(--border-radius-xlarge);
  padding: 5% 4% 6% 4%; box-shadow: var(--shadow-medium);
}
.archive .container, .blog .container { margin-top: 2em; }

/* Blog Pagination */
#nav-below { position: relative; text-align: center; }
.page-numbers {
  display: inline-block; padding: var(--spacing-s) var(--spacing-m) !important;
  box-sizing: border-box; border-radius: var(--border-radius-small); text-align: center;
  background-color: var(--color-page-number-bg); color: inherit;
  margin: 0 var(--spacing-xs); text-decoration: none;
}
.page-numbers:hover { background-color: var(--color-page-number-bg-hover); color: inherit; text-decoration: none; }
.page-numbers.current { background-color: var(--color-link); color: var(--color-white); }

/* Single Post */

.single-post p img.alignnone, .single-post img.alignnone { margin-bottom: 4px; }

/* Comments */
.page .comments-area { display: none; }


/* ==========================================================================
   Helper Classes (Spacing, Alignment, Visibility, etc.)
   ========================================================================== */

/* Text Alignment */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

/* Borders */
.rounded-corners { border-radius: var(--border-radius-large); }

/* Padding Helpers */
.pas { padding-top: calc(var(--spacing-xs) + 1vw)!important; padding-right: calc(var(--spacing-xs) + 1vw)!important; padding-bottom: calc(var(--spacing-xs) + 1vw)!important; padding-left: calc(var(--spacing-xs) + 1vw)!important; }
.pts { padding-top: calc(var(--spacing-xs) + 1vw)!important; }
.prs { padding-right: calc(var(--spacing-xs) + 1vw)!important; }
.pbs { padding-bottom: calc(var(--spacing-xs) + 1vw)!important; }
.pls { padding-left: calc(var(--spacing-xs) + 1vw)!important; }
.pal { padding-top: calc(var(--spacing-l) + 1.5vw)!important; padding-right: calc(var(--spacing-l) + 1.5vw)!important; padding-bottom: calc(var(--spacing-l) + 1.5vw)!important; padding-left: calc(var(--spacing-l) + 1.5vw)!important; }
.ptl { padding-top: calc(var(--spacing-l) + 1.5vw)!important; }
.prl { padding-right: calc(var(--spacing-l) + 1.5vw)!important; }
.pbl { padding-bottom: calc(var(--spacing-l) + 1.5vw)!important; }
.pll { padding-left: calc(var(--spacing-l) + 1.5vw)!important; }
.extra-padding { padding-left: var(--spacing-s); padding-right: var(--spacing-s); }

/* Margin Helpers */
.man { margin-top: 0!important; margin-right: 0!important; margin-bottom: 0!important; margin-left: 0!important; }
.mtn, .mvn { margin-top: 0!important; }
.mrn, .mhn { margin-right: 0!important; }
.mbn, .mvn { margin-bottom: 0!important; }
.mln, .mhn { margin-left: 0!important; }

.mas { margin-top: var(--spacing-m)!important; margin-right: var(--spacing-m)!important; margin-bottom: var(--spacing-m)!important; margin-left: var(--spacing-m)!important; }
.mts, .mvs { margin-top: var(--spacing-m)!important; }
.mrs, .mhs { margin-right: var(--spacing-m)!important; }
.mbs, .mvs { margin-bottom: var(--spacing-m)!important; }
.mls, .mhs { margin-left: var(--spacing-m)!important; }

.mam { margin-top: calc(var(--spacing-xl) + var(--spacing-gutter-responsive))!important; margin-right: calc(var(--spacing-xl) + var(--spacing-gutter-responsive))!important; margin-bottom: calc(var(--spacing-xl) + var(--spacing-gutter-responsive))!important; margin-left: calc(var(--spacing-xl) + var(--spacing-gutter-responsive))!important; }
.mtm, .mvm { margin-top: calc(var(--spacing-xl) + var(--spacing-gutter-responsive))!important; }
.mrm, .mhm { margin-right: calc(var(--spacing-xl) + var(--spacing-gutter-responsive))!important; }
.mbm, .mvm { margin-bottom: calc(var(--spacing-xl) + var(--spacing-gutter-responsive))!important; }
.mlm, .mhm { margin-left: calc(var(--spacing-xl) + var(--spacing-gutter-responsive))!important; }

.mal { margin-top: calc(var(--spacing-xxl) + var(--spacing-gutter-responsive))!important; margin-right: calc(var(--spacing-xxl) + 1vw)!important; margin-bottom: calc(var(--spacing-xxl) + var(--spacing-gutter-responsive))!important; margin-left: calc(var(--spacing-xxl) + var(--spacing-gutter-responsive))!important; }
.mtl, .mvl { margin-top: calc(var(--spacing-xxl) + var(--spacing-gutter-responsive))!important; }
.mrl, .mhl { margin-right: calc(var(--spacing-xxl) + 1vw)!important; } /* Note: 1vw */
.mbl, .mvl { margin-bottom: calc(var(--spacing-xxl) + var(--spacing-gutter-responsive))!important; }
.mll, .mhl { margin-left: calc(var(--spacing-xxl) + var(--spacing-gutter-responsive))!important; }

.mtneg { margin-top: calc(-1 * (var(--spacing-s) + 1vw)); }

/* Height Helpers */
.height60 { min-height: 400px; height: 60vh; }
.height80 { min-height: 500px; height: 80vh; }

/* Image Effects & Hovers */
a img:not(.site-logo a img):not(.gallery-item a img):not(.mgl-gallery-container a img) {
  transition: var(--transition-base);
  box-shadow: var(--shadow-image);
}
.no-shadow a img { box-shadow: none !important; }

/* ==========================================================================
   Global Image Tap & Hover States
   ========================================================================== */

/* Universal Tap State: Instant dim, no scaling lag */
a img:active:not(.site-logo a img):not(.home-page-links a img):not(.gallery-item a img):not(.mgl-gallery-container a img) {
  transform: none; 
  filter: brightness(0.85); 
  transition: filter 0s; 
}

@media (hover: hover) and (pointer: fine) {
  
  /* Desktop Hover: Lifts and scales UP */
  a img:hover:not(.site-logo a img):not(.home-page-links a img):not(.wp-block-gallery.has-nested-images a img):not(.gallery-item a img):not(.mgl-gallery-container a img) {
    box-shadow: var(--shadow-image-hover);
    transform: scale(1.02);
    position: relative; 
    z-index: 5; 
    cursor: pointer;
  }
  
  /* Desktop Click: Squishes DOWN */
  a img:active:not(.site-logo a img):not(.home-page-links a img):not(.gallery-item a img):not(.mgl-gallery-container a img) {
    box-shadow: var(--shadow-image-active);
    transform: scale(0.97); 
    filter: brightness(0.85); 
    transition: transform 0.1s ease, filter 0s; 
  }

  /* Footer Links */
  .before-footer-content a.button:hover, 
  .before-footer-content a:hover {
    color: var(--color-footer-link-hover);
  }
}

/* ==========================================================================
   Photography Locations Section
   ========================================================================== */

.photography-locations h4 { text-align: center; margin: var(--spacing-m) 0 var(--spacing-s) 0; }
.photography-locations p { text-align: left; }
.photography-locations h4 a {
  text-decoration: none;
  color: inherit;
  border: 1px solid #8f3d4b;
  padding: 10px 15px;
  display: inline-block;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.photography-locations h4 a:hover {
  background-color:  rgb(231, 231, 231);
}
.photography-locations a img {
  border-radius: var(--border-radius-large) !important; width: 100%;
  box-shadow: 0 5px 8px rgba(var(--color-button-shadow-rgb), 0.30);
}
.photography-locations .gb-container {
  padding: .5em; border-radius: var(--border-radius-large) var(--border-radius-large) 0 0;
  box-shadow: var(--shadow-soft);
}
@media (prefers-color-scheme: dark) {
  .photography-locations h4 a:hover {
    background-color:  rgb(96, 96, 96);
  }
}

/* ==========================================================================
   Pricing Table
   ========================================================================== */

.price-table { margin-top: var(--spacing-s); }
.price-table .grey, .price-table .header { color: var(--color-white); font-size: 1.5em; }
.price-table .grey { letter-spacing: 2px; background-color: var(--color-pricing-grey-bg); }
.price-table .header { background-color: var(--color-pricing-header-bg); margin-top: 0px; }
.price-table .gb-container, .price-table > .wp-block-column { box-shadow: 0 15px 35px rgba(var(--color-button-shadow-rgb), var(--color-shadow-base-opacity)); }
.price-table .gb-grid-column, .price-table > .wp-block-column { margin-top: var(--spacing-l); }
.price-table .col { margin: 0; padding: 0; list-style-type: none; }
.price-table li, .content-area .price-table .wp-block-list li { border-bottom: 1px solid #eee; padding: var(--spacing-l); text-align: center; line-height: 1.3em; }

/* ==========================================================================
   Responsive Media Queries (Consolidated & Overrides)
   ========================================================================== */

/* Tablet & Large Mobile (<= 1100px) */
@media (max-width: 1100px) {
  .tablet-hide { display: none !important; }
  .tablet-width-100 { width: 100%; flex-basis: 100%; }
}

/* Header/Nav Breakpoint (<= 865px) */
@media (max-width: 865px) {
  #sticky-placeholder { height: 60px; }
  .menu-item-has-children .dropdown-menu-toggle {
	font-size: 20px; padding: 0 25px !important; /* Simplified padding */
	background-color: rgba(var(--color-overlay-dark-rgb), 0.1);
  }
  .top-bar-info { display: none; }
  .secondary-navigation .main-nav ul li a { font-size: 13px !important; padding: 0 7px !important; }
  .home-page-hero { margin-top: -60px; }
}

/* Tablet Breakpoint (<= 768px) */
@media (max-width: 768px) {
  body { font-size: var(--font-size-base-mobile); }
  .yarpp-thumbnails-horizontal { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1em; }
  .gallery, .single-post .featured-image { width: calc(100% + 20px); max-width: calc(100% + 20px); margin-left: -10px; }
  .site-main .wp-block-group__inner-container,
  .groupbox .wp-block-group__inner-container,
  .groupbox-norounded .wp-block-group__inner-container,
  .groupbox-full .wp-block-group__inner-container { padding: var(--spacing-xl) var(--spacing-s); }
  .blog-home-header { margin-left: var(--spacing-s); margin-right: var(--spacing-s); }
  .mobile-columns .image-caption-overlay figcaption { display: none; }
  .home-hero {
  flex-basis: 100%; 
    text-align: center;
    padding: 0;
  
    /* Your existing center-focused gradient */
  background: linear-gradient(to right, rgba(var(--color-overlay-dark-rgb), 0.2) 0%, rgba(var(--color-overlay-dark-rgb), 0.5) 50%, rgba(var(--color-overlay-dark-rgb), 0.2) 100%);
  
    /* Adjusting glass edges for centered mobile view */
    border-right: none; 
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  
    /* Shadow moves to top/bottom instead of left */
    box-shadow: 0 5px 20px 0 rgba(0, 0, 0, 0.15); 
    }
  .home-hero-columns { justify-content: center; }
  .first-headline, h2.second-headline { text-align: center; margin-right: 0px !important; }
  .home-hero p { max-width: 100%; float: none; }
  .family-header { min-height: 650px; height: 650px; }
  .mobile-hide { display: none !important; }
  .separate-containers .inside-right-sidebar { margin-right: 0; }
  .before-footer-content { margin-top: var(--spacing-xl); }
  .button-menu { display: none; }
}

/* Mobile Breakpoint (~WP Default Columns Wrap) (<= 599px) */
@media (max-width: 599px) {
  .wp-block-latest-posts.is-grid li { margin: 0 0 1.25em 0; }
}

/* Mobile Image Alignment (<= 560px) */
@media (max-width: 560px) {
  .wp-block-image .alignleft, .wp-block-image .alignright {
	float: none; margin: 0 auto var(--spacing-s) auto; clear: both;
	width: 100%; text-align: center;
  }
}

/* Small Mobile / Icon Adjustments (>= 550px) */
@media (min-width: 550px) {
  .image-caption-overlay figcaption { /* Overlay appears wider screens */
	/* Base styles inherited from figcaption */
	position: absolute; bottom: 6px; padding: 8px 0px;
	background: rgba(var(--color-overlay-light-rgb), 0.5); color: var(--color-black);
	-webkit-backdrop-filter: blur(var(--blur-intensity)); backdrop-filter: blur(var(--blur-intensity));
	margin: 0 auto; left: 0; right: 0; width: 100%;
  }
}

/* Small Mobile Breakpoint (<= 500px) */
@media (max-width: 500px) {
	.family-header { min-height: 500px; height: 500px; }
}

/* Small Mobile Breakpoint (<= 480px) */
@media (max-width: 480px) {
  .yarpp-thumbnails-horizontal { grid-template-columns: minmax(0, 1fr); gap: 1.5em; }
  p img.alignnone, img.alignnone { margin-bottom: 1px; }
  .tiny-hide { display: none !important; }
  .heading-menu { display: none; }
}
/* Meow Gallery specific mobile layout */
@media screen and (max-width: 460px) {
  .mgl-square .mgl-item { width: 50% !important; padding-bottom: 50% !important; }
}

/* Tablet Columns Start (>= 481px) */
@media (min-width: 481px) {
  .tablet-columns { margin-left: -2%; }
  .tablet-columns .wp-block-column { flex: 1; margin-left: 2%; }
}


/* Desktop Specific Styles (>= 866px) */
@media (min-width: 866px) {
  #primary-menu li { /* Vertical separators for main nav */
	border-right-style: solid; border-right-width: 1px;
	border-image-source: linear-gradient(0deg, rgba(var(--color-border-nav-rgb), 0) 20%, rgba(var(--color-border-nav-rgb), 0.5) 50%, rgba(var(--color-border-nav-rgb), 0) 80%);
	border-image-slice: 1;
  }
  #primary-menu li:last-child { border-right: none; }
  .sub-menu li { border-right-width: 0px !important; }
}


/* ==========================================================================
   Dark Mode Specific Overrides (Consolidated)
   ========================================================================== */

@media (prefers-color-scheme: dark) {
  /* Base color/bg/link overrides happen via :root variables */

  /* Component Backgrounds / Borders */
  .groupbox, .groupbox-norounded, .category .page-header, .blog-home-header,
  .archive .inside-article, .blog .inside-article, .blog .page-header,
  .price-table .gb-container, .price-table > .wp-block-column, .groupbox-full, .photography-locations .gb-container,
  .widget_block { /* Shared dark container style */
	background: linear-gradient(to right, rgba(var(--color-accent-rgb), 0.07) 0%, rgba(var(--color-accent-rgb), 0.1) 50%, rgba(var(--color-accent-rgb), 0.07) 100%);
  }
  .widget_block { box-shadow: none; } /* Remove light shadow */
  .light-border { border: 1px solid var(--color-border-light); }
  .container-background { background: linear-gradient(to right, rgba(var(--color-accent-rgb), 0.1) 0%, rgba(var(--color-accent-rgb), 0.3) 50%, rgba(var(--color-accent-rgb), 0.1) 100%); }
  .cat-item-10 { background-color: transparent; }

  /* Navigation */
  #secondary-navigation {
	background: linear-gradient(to right, rgba(var(--color-accent-rgb), 0.1) 0%, rgba(var(--color-accent-rgb), 0.2) 50%, rgba(var(--color-accent-rgb), 0.1) 100%);
	color: #c5c5c5;
  }
  /* Dropdown Menus Dark Mode Override */
  ul.sub-menu {
    z-index: 9999; 
    background-color: rgba(17, 17, 17, 0.95);
    background: linear-gradient(
        to bottom, 
        rgba(17, 17, 17, 0.85) 0%, 
        rgba(17, 17, 17, 0.65) 100%
    );
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-top: none;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  }
  .site-logo img { -webkit-filter: invert(80%); filter: invert(80%); }
  .site-logo img:hover { -webkit-filter: invert(100%); filter: invert(100%); }

  nav ul li a:hover { background: linear-gradient(to top, rgba(var(--color-accent-rgb), 0.2) 0%, rgba(var(--color-accent-rgb), 0.25) 50%, rgba(var(--color-accent-rgb), 0.2) 100%); }
  /* Sticky Navigation Dark Mode Override (Desktop & Mobile) */
  .main-navigation,
  #mobile-header,
  #sticky-navigation { 
    z-index: 9999;
    background-color: rgba(17, 17, 17, 0.95); 
    background: linear-gradient(
        to bottom, 
        rgba(17, 17, 17, 0.85) 0%, 
        rgba(17, 17, 17, 0.65) 100%
    );
    border-bottom: 1px solid rgba(255, 255, 255, 0.08); 
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4); 
  }
  
  /* Backdrop filter already applied */
  .main-navigation .main-nav ul li[class*="current-menu-"] > a { background: linear-gradient(to top, rgba(var(--color-accent-rgb), 0.05) 0%, rgba(var(--color-accent-rgb), 0.08) 50%, rgba(var(--color-accent-rgb), 0.05) 100%); }
  .wp-block-navigation ul li[class*="current-menu-"] > a { background: rgba(var(--color-accent-rgb), 0.3); }

  /* Background Gradients */
  .background-gradient-grey-right { background-image: linear-gradient(90deg, rgba(var(--color-accent-rgb), 0) 70%, rgba(var(--color-accent-rgb), 0.07) 70%); }
  .background-gradient-grey-left { background-image: linear-gradient(90deg, rgba(var(--color-accent-rgb), 0.07) 30%, rgba(var(--color-accent-rgb), 0) 30%); }
  .background-gradient-grey-bottom { background-image: linear-gradient(180deg, rgba(var(--color-accent-rgb), 0) 65%, rgba(var(--color-accent-rgb), 0.07) 65%); }

  /* Misc */
  .ics-calendar-month-grid { color: var(--color-text); } /* Calendar plugin text */
  .ns-floating { background-color: rgba(var(--color-overlay-dark-rgb), 0.34) !important; } /* Novashare */

  /* Responsive Dark Mode */
  @media (min-width: 866px) {
	#primary-menu li, .secondary-menu li { /* Gradient border uses dark mode var */
	  border-image-source: linear-gradient(0deg, rgba(var(--color-border-nav-rgb), 0) 20%, rgba(var(--color-border-nav-rgb), 0.5) 50%, rgba(var(--color-border-nav-rgb), 0) 80%);
	}
  }
  @media (max-width: 865px) {
	.menu-item-has-children .dropdown-menu-toggle { background-color: rgba(var(--color-accent-rgb), 0.1); }
  }
}


/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
  :root { /* Reset colors for print */
	--color-bg: var(--color-white); --color-text: var(--color-black);
	--color-link: var(--color-black);
  }

  /* Hide elements */
  #masthead, #breadcrumbs, .rank-math-breadcrumb, .before-footer-content, .site-footer, .top-bar,
  .secondary-menu, .button, .button-line, .wp-block-button, .hide-from-print,
  .ttshowcase_wrap, div.wpforms-container, a.return-top, nav, amp-carousel,
  .forminator-module-edit-link, .forminator-edit-module, .ns-floating {
	display: none !important;
  }

  /* Reset styles */
  body { font-size: 12pt; color: var(--color-black); background-color: var(--color-white); }
  p { line-height: 1.4; font-size: 12pt; }
  h1, h2, h3, h4, h5, h6 { text-shadow: none; color: var(--color-black); }
  a { color: var(--color-black); text-decoration: underline; }
  #content { padding: 5px; }
  .price-table .header, .price-table .grey, .price-table .wp-block-column {
	color: var(--color-black); background: var(--color-white);
	box-shadow: none; border: 1px solid #ccc; text-shadow: none;
  }
  .wp-block-image img { max-width: 100% !important; width: auto; height: auto; }
  .gallery { display: block; }
  .gallery-item { display: block; width: 100%; margin-bottom: 1em; page-break-inside: avoid; }
  .gallery-item img { max-height: none; }
}


/* ==========================================================================
   SVG Icon Engine (Updated for Perfect Menu Alignment)
   ========================================================================== */


/* Base Icon Style (Single Element Method) */
 i[class^="fa-"], i[class*=" fa-"] {
   -webkit-mask-image: var(--rsp-ico);
   mask-image: var(--rsp-ico);
   display: inline-block;
   width: 1.2em;  /* The square footprint */
   height: 1.2em; /* Matches the width */
   background-color: currentColor;
   
   /* Masking setup on the element itself */
   -webkit-mask-repeat: no-repeat;
   mask-repeat: no-repeat;
   -webkit-mask-size: contain;
   mask-size: contain;
   -webkit-mask-position: center;
   mask-position: center;
 
   /* The magic alignment sauce */
   vertical-align: middle; 
   position: relative;
   top: -0.10em; /* Tiny nudge to center it visually with the text caps */
   margin-right: 0.3em;
}
/* 1. Base Transition for all arrows */
i[class^="fa-arrow-"], i[class*=" fa-arrow-"] {
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* ==========================================================================
   Arrow Hover Animations (Strictly for Desktop / Fine Pointers)
   ========================================================================== */
@media (hover: hover) and (pointer: fine) {
  
  /* 2. Horizontal Arrows (Nudge effect) */
  a:hover .fa-arrow-right, button:hover .fa-arrow-right { transform: translateX(5px); }
  a:hover .fa-arrow-left,  button:hover .fa-arrow-left  { transform: translateX(-5px); }

  /* 3. Vertical Arrows (Bounce effect) */
  @keyframes arrow-v-bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(4px); }
  }

  @keyframes arrow-v-bounce-up {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-4px); }
  }

  a:hover .fa-arrow-down, button:hover .fa-arrow-down { 
    animation: arrow-v-bounce 0.8s infinite ease-in-out; 
  }

  a:hover .fa-arrow-up, button:hover .fa-arrow-up { 
    animation: arrow-v-bounce-up 0.8s infinite ease-in-out; 
  }
}

/* 4. Spacing Fix (Ensures arrows at the end of text have proper room) */
.fa-arrow-right, .fa-arrow-down {
  margin-left: 0.5em;
  margin-right: 0;
}

/* Spacing for arrows at the start of text */
.fa-arrow-left, .fa-arrow-up {
  margin-right: 0.5em;
  margin-left: 0;
}
/* --- Reset Icon Alignment Inside Buttons (Minifier-Safe Version) --- */

/* 1. Base alignment and spacing for ALL icons inside buttons */
.btn i[class^="fa-"], 
.button i[class^="fa-"], 
.wp-block-button__link i[class^="fa-"],
.gb-button i[class^="fa-"],
.home-button i[class^="fa-"],
.fine-art-button i[class^="fa-"] {
  top: 0 !important; 
  vertical-align: middle !important; 
  display: inline-flex;
  align-self: center;
  transform: translateY(-1px); /* Centers with uppercase text */
  margin-right: 8px; /* Default spacing for icons on the LEFT */
  margin-left: 0;
}

/* 2. Spacing override for arrows on the RIGHT side of text */
.btn i.fa-arrow-right, .btn i.fa-arrow-down,
.button i.fa-arrow-right, .button i.fa-arrow-down,
.wp-block-button__link i.fa-arrow-right, .wp-block-button__link i.fa-arrow-down,
.gb-button i.fa-arrow-right, .gb-button i.fa-arrow-down,
.home-button i.fa-arrow-right, .home-button i.fa-arrow-down,
.fine-art-button i.fa-arrow-right, .fine-art-button i.fa-arrow-down {
  margin-left: 8px !important;
  margin-right: 0 !important;
}

/* 3. Spacing override for arrows on the LEFT side of text */
.btn i.fa-arrow-left, .btn i.fa-arrow-up,
.button i.fa-arrow-left, .button i.fa-arrow-up,
.wp-block-button__link i.fa-arrow-left, .wp-block-button__link i.fa-arrow-up,
.gb-button i.fa-arrow-left, .gb-button i.fa-arrow-up,
.home-button i.fa-arrow-left, .home-button i.fa-arrow-up,
.fine-art-button i.fa-arrow-left, .fine-art-button i.fa-arrow-up {
  margin-right: 8px !important;
  margin-left: 0 !important;
}
/* Specific Icon Mappings */
.fa-home, .rsp-ico-home {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z'/%3E%3C/svg%3E");
}
.fa-th-large, .rsp-ico-th-large {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-280 0h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H16c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm0 288h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H16c-13.255 0-24-10.745-24-24V344c0-13.255 10.745-24 24-24zm280 0h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V344c0-13.255 10.745-24 24-24z'/%3E%3C/svg%3E");
}
.fa-clock-o, .rsp-ico-clock-o {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z'/%3E%3C/svg%3E");
}
.fa-download, .rsp-ico-download {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 384v80c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48v-80c0-13.3 10.7-24 24-24h105.4c12.2 0 23.5 6.6 29.6 17.4L186.2 448h139.6l27.1-46.6c6.1-10.8 17.4-17.4 29.6-17.4H488c13.3 0 24 10.7 24 24z'/%3E%3C/svg%3E");
}
.fa-heart, .rsp-ico-heart {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z'/%3E%3C/svg%3E");
}
.fa-book, .rsp-ico-book {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M448 360V24c0-13.3-10.7-24-24-24H84.1C38 0 0 38 0 84.1v343.8C0 474 38 512 84.1 512h339.9c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H84.1c-11.5 0-20.9-9.4-20.9-20.9S72.6 400 84.1 400H424c13.3 0 24-10.7 24-24z'/%3E%3C/svg%3E");
}
.fa-print, .rsp-ico-print {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z'/%3E%3C/svg%3E");
}
.fa-camera, .rsp-ico-camera {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z'/%3E%3C/svg%3E");
}
.fa-image, .fa-photo, .fa-picture-o, .rsp-ico-image, .rsp-ico-photo, .rsp-ico-picture-o {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.93 0-56 25.07-56 56s25.07 56 56 56 56-25.07 56-56-25.07-56-56-56zM64 384h384V272l-87.51-87.51c-6.25-6.25-16.38-6.25-22.63 0L208 314.06l-73.37-73.37c-6.25-6.25-16.38-6.25-22.63 0L64 288v96z'/%3E%3C/svg%3E");
}
.fa-map-marker, .rsp-ico-map-marker {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z'/%3E%3C/svg%3E");
}
.fa-cloud, .rsp-ico-cloud {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z'/%3E%3C/svg%3E");
}
.fa-envelope, .rsp-ico-envelope {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z'/%3E%3C/svg%3E");
}
.fa-cutlery, .rsp-ico-cutlery {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 416 512'%3E%3Cpath d='M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 480c0 17.6-14.4 32-32 32s-32-14.4-32-32l12.9-231.4c-41.1-15-68.9-52.3-68.9-104.6 0-34.3 15.3-124.1 16.1-128.8.6-3.8 4.6-6.4 8.4-5.5 49.3 11 93.3 11 142.6 0 3.8-.9 7.8 1.7 8.4 5.5zM416 32v159.2c0 23.7-13.6 44.8-34.9 54.9L368 480c0 17.6-14.4 32-32 32s-32-14.4-32-32l-13.1-233.9C269.6 236 256 214.9 256 191.2V32c0-17.6 14.4-32 32-32s32 14.4 32 32v128h16V32c0-17.6 14.4-32 32-32s32 14.4 32 32z'/%3E%3C/svg%3E");
}
.fa-dollar, .fa-usd, .rsp-ico-dollar, .rsp-ico-usd {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 288 512'%3E%3Cpath d='M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C76.3 64 48 92.3 48 127.5c0 38.3 27 71.9 64.5 82.8l108 31.6c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C133.7 299.7 121.7 296 111.7 289.2c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c33.2-.9 60.5-29.2 60.5-63.3 0-38.3-27-71.9-64.5-82.8z'/%3E%3C/svg%3E");
}

.fa-file-image-o, .fa-file-photo-o, .fa-file-picture-o, .rsp-ico-file-image-o, .rsp-ico-file-photo-o, .rsp-ico-file-picture-o {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-39.4-84.6-29.5-28.8 7.6-41.7 36.8-42.5 38.5V312c0-13.3-10.7-24-24-24H104c-13.3 0-24 10.7-24 24v80c0 13.3 10.7 24 24 24h181.7c4.6 0 8.9-2.2 11.6-5.9l46.3-64.6c4.3-6 4.6-13.9 1-20.2l-46.4-76.4zm-120.6 57.9c4.2-5.3 15-16.1 27.6-19.4 12.3-3.2 24.5 2.1 33.7 11.1l29.6 48.7-28 39.1H133.4l44.2-79.5zM128 256c22.1 0 40-17.9 40-40s-17.9-40-40-40-40 17.9-40 40 17.9 40 40 40z'/%3E%3C/svg%3E");
}
.fa-diamond, .rsp-ico-diamond {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M378.7 32H133.3L43.6 156.4c-4 5.5-4 13.1 0 18.6l202.4 276.4c5.1 7.1 15.8 7.1 20.9 0L468.4 175c4-5.5 4-13.1 0-18.6L378.7 32zM151.7 64h208.7l50.8 70.8h-74.9l-49.2-70.8h-61.9l-49.2 70.8H100.9L151.7 64zM256 384l-145-198.1h102.3l42.7 85.5 42.7-85.5H401L256 384z'/%3E%3C/svg%3E");
}
.fa-man-woman, .rsp-ico-man-woman {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M8 3c0 1.657-1.343 3-3 3s-3-1.343-3-3c0-1.657 1.343-3 3-3s3 1.343 3 3zM26 3c0 1.657-1.343 3-3 3s-3-1.343-3-3c0-1.657 1.343-3 3-3s3 1.343 3 3zM8 8H2C.895 8 0 8.895 0 10v10h2v12h2.5v-12h1v12H8v-12h2v-10c0-1.105-.895-2-2-2zM30.469 16l1.531-1.109-4.165-6.441a.987.987 0 0 0-.835-.45h-8a.987.987 0 0 0-.835.45l-4.165 6.441 1.531 1.109 3.458-4.487 1.202 2.804-4.191 7.683h3.833l.667 10h2v-10h1v10h2l.667-10h3.833l-4.191-7.683 1.202-2.804 3.458 4.487z'/%3E%3C/svg%3E");
}
.fa-graduation-cap, .rsp-ico-graduation-cap {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14.1-57l86.5-20.8c10.6-2.5 10.6-17.5 0-20l-212-51.1c-7.9-1.9-16.1-1.9-24 0L13.6 59.8c-10.6 2.5-10.6 17.5 0 20z'/%3E%3C/svg%3E");
}
.fa-family, .rsp-ico-family {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M78.6 118.9c22.9 0 41.4-18.6 41.4-41.4 0-22.9-18.5-41.4-41.4-41.4-22.9 0-41.4 18.5-41.4 41.4 0 22.8 18.6 41.4 41.4 41.4zM255.7 228.7v.1c.1 0 .2 0 .3 0 .1 0 .2 0 .3 0v-.1c15.6-.3 28.1-13 28.1-28.6 0-15.6-12.5-28.3-28.1-28.6v-.1c-.1 0-.2 0-.3 0-.1 0-.2 0-.3 0v.1c-15.6.3-28.1 13-28.1 28.6 0 15.6 12.5 28.2 28.1 28.6zM433.4 118.9c22.9 0 41.4-18.6 41.4-41.4 0-22.9-18.5-41.4-41.4-41.4-22.9 0-41.4 18.5-41.4 41.4 0 22.8 18.6 41.4 41.4 41.4zM470.1 138.6h-36.3h-18.4c-21.1 0-40.4 11.8-50 30.6l-33.5 98c-1.2 2.2-3.3 3.8-5.8 4.3-2.5.4-5-.3-6.9-2l-20.8-18c-6.2-5.8-14.4-9-22.9-9H256h-19.4c-8.5 0-16.7 3.2-22.9 9l-20.8 18c-1.9 1.7-4.4 2.5-6.9 2-2.5-.4-4.6-2-5.8-4.3l-33.5-98c-9.6-18.8-28.9-30.6-50-30.6H78.2H41.9C21.8 138.6 0 160.4 0 180.5v139.2c0 10 8.1 18.2 18.2 18.2 4.9 0 0 0 12.7 0l6.9 118.7c0 10.7 8.7 19.3 19.3 19.3 4.5 0 12.8 0 21.1 0 8.3 0 16.6 0 21.1 0 10.7 0 19.3-8.7 19.3-19.3l6.9-118.7l-.1-84.8c0-1.3.9-2.5 2.2-2.8 1.3-.3 2.6.3 3.3 1.5l26.6 65.4c3.2 6.3 9.2 10.7 16.1 11.9 6.9 1.2 14-.8 19.2-5.6l25.4-18.7c.9-.8 2.1-1 3.1-.5 1.1.5 1.7 1.5 1.7 2.7l.1 73.5l4.8 82.2c0 7.4 6 13.4 13.4 13.4 3.1 0 8.9 0 14.6 0 5.8 0 11.5 0 14.6 0 7.4 0 13.4-6 13.4-13.4l4.8-82.2l.1-73.5c0-1.1.7-2.2 1.7-2.7 1.1-.4 2.3-.2 3.1.5l25.4 18.7c5.2 4.8 12.3 6.8 19.2 5.6 6.9-1.2 12.9-5.6 16.1-11.9l26.6-65.4c.6-1.2 2-1.8 3.3-1.5 1.3.3 2.2 1.5 2.2 2.8l-.1 84.8l6.9 118.7c0 10.7 8.7 19.3 19.3 19.3 4.5 0 12.8 0 21.1 0 8.3 0 16.6 0 21.1 0 10.7 0 19.3-8.7 19.3-19.3l6.9-118.7c12.7 0 7.7 0 12.7 0 10 0 18.2-8.1 18.2-18.2V180.5C512 160.4 490.2 138.6 470.1 138.6z'/%3E%3C/svg%3E");
}
.fa-arrow-left, .rsp-ico-arrow-left {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z'/%3E%3C/svg%3E");
}
.fa-arrow-right, .rsp-ico-arrow-right {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z'/%3E%3C/svg%3E");
}
.fa-arrow-up, .rsp-ico-arrow-up {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z'/%3E%3C/svg%3E");
}
.fa-arrow-down, .rsp-ico-arrow-down {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z'/%3E%3C/svg%3E");
}
.fa-house, .rsp-ico-house {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M280.4 148.3L96 300.1V464c0 8.8 7.2 16 16 16l112.1-.3c8.8 0 15.9-7.2 15.9-16V368c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v95.6c0 8.8 7.2 16 16 16.1l112.1-.1c8.8 0 16-7.2 16-16V300L295.7 148.3c-4.3-3.6-11-3.6-15.3 0zM571.6 251.5L488 182.6V44.1c0-6.6-5.4-12-12-12h-56c-6.6 0-12 5.4-12 12v72.6L318.5 43c-16.7-14.1-42.3-14.1-61 0L4.3 251.5c-5.1 4.2-5.8 11.8-1.6 16.9l25.5 31c4.2 5.1 11.8 5.8 16.9 1.6l235.2-193.7c4.3-3.6 11-3.6 15.3 0l235.2 193.7c5.1 4.2 12.7 3.5 16.9-1.6l25.5-31c4.3-5.2 3.6-12.7-1.7-16.9z'/%3E%3C/svg%3E");
}
.fa-bride, .fa-bridal, .rsp-ico-bride, .rsp-ico-bridal {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 16c-17.7 0-32 14.3-32 32s14.3 32 32 32c8.8 0 16-7.2 16-16s-7.2-16-16-16zm-76 100c-13.3 0-24 10.7-24 24v32c0 10.6 6.8 19.6 16.4 22.8L216 240v20L84 464c-8.5 14.5 2 32 18.9 32h306.2c16.9 0 27.4-17.5 18.9-32L296 260v-20l43.6-45.2c9.6-3.2 16.4-12.2 16.4-22.8v-32c0-13.3-10.7-24-24-24H180z'/%3E%3C/svg%3E");
}

.fa-review, .rsp-ico-review {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z'/%3E%3C/svg%3E");
}
.fa-apps, .rsp-ico-apps {
  --rsp-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M149.33 138.67c0-23.57-19.1-42.67-42.66-42.67H42.67C19.1 96 0 115.1 0 138.67v64c0 23.57 19.1 42.66 42.67 42.66h64c23.56 0 42.66-19.09 42.66-42.66v-64zm170.67 0c0-23.57-19.1-42.67-42.67-42.67h-64c-23.56 0-42.66 19.1-42.66 42.67v64c0 23.57 19.1 42.66 42.66 42.66h64c23.57 0 42.67-19.09 42.67-42.66v-64zm170.67 0c0-23.57-19.1-42.67-42.67-42.67h-64c-23.57 0-42.67 19.1-42.67 42.66v64c0 23.57 19.1 42.67 42.67 42.67h64c23.56 0 42.66-19.1 42.66-42.67v-64zM149.33 309.33c0-23.56-19.1-42.66-42.66-42.66H42.67C19.1 266.67 0 285.77 0 309.33v64c0 23.57 19.1 42.67 42.67 42.67h64c23.56 0 42.66-19.1 42.66-42.67v-64zm170.67 0c0-23.56-19.1-42.66-42.67-42.66h-64c-23.56 0-42.66 19.1-42.66 42.66v64c0 23.57 19.1 42.67 42.66 42.67h64c23.57 0 42.67-19.1 42.67-42.67v-64zm170.67 0c0-23.56-19.1-42.66-42.67-42.66h-64c-23.57 0-42.67 19.1-42.67 42.66v64c0 23.57 19.1 42.67 42.67 42.67h64c23.56 0 42.66-19.1 42.66-42.67v-64z'/%3E%3C/svg%3E");
}

/* Icons set by a block class (core blocks cannot keep empty <i> tags): rsp-ico puts the icon
   before the text, rsp-ico-end after it, and rsp-ico-NAME picks the shape from the map above.
   On a button or image block the icon goes on its link or caption. */
.rsp-ico:not(.wp-block-button):not(.wp-block-image)::before,
.wp-block-button.rsp-ico > .wp-block-button__link::before,
.rsp-ico-end:not(.wp-block-button):not(.wp-block-image)::after,
.wp-block-button.rsp-ico-end > .wp-block-button__link::after,
.wp-block-image.rsp-ico-end figcaption::after {
  content: "";
  display: inline-block;
  width: 1.2em;
  height: 1.2em;
  background-color: currentColor;
  -webkit-mask: var(--rsp-ico) center / contain no-repeat;
  mask: var(--rsp-ico) center / contain no-repeat;
  vertical-align: middle;
  position: relative;
  top: -0.1em;
  margin-right: 0.3em;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.rsp-ico-end:not(.wp-block-button):not(.wp-block-image)::after,
.wp-block-image.rsp-ico-end figcaption::after { margin-left: 0.5em; margin-right: 0; }
.wp-block-button.rsp-ico > .wp-block-button__link::before,
.wp-block-button.rsp-ico-end > .wp-block-button__link::after {
  top: 0; align-self: center; transform: translateY(-1px); margin: 0 8px 0 0;
}
.wp-block-button.rsp-ico-end > .wp-block-button__link::after { margin: 0 0 0 8px; }
@media (hover: hover) and (pointer: fine) {
  a.rsp-ico-end.rsp-ico-arrow-right:hover::after,
  .wp-block-button.rsp-ico-end.rsp-ico-arrow-right > a:hover::after,
  .wp-block-image.rsp-ico-end.rsp-ico-arrow-right:hover figcaption::after { transform: translateX(5px); }
  a.rsp-ico-end.rsp-ico-arrow-down:hover::after,
  .wp-block-button.rsp-ico-end.rsp-ico-arrow-down > a:hover::after { animation: arrow-v-bounce 0.8s infinite ease-in-out; }
}

/* ==========================================================================
   Free GeneratePress replacements (2026-10-12)
   What GP Premium and GenerateBlocks used to style, for the core blocks and
   child-theme code in inc/free-gp.php. Breakpoints match GenerateBlocks:
   tablet <= 1024px, mobile <= 767px; the menu collapses at 865px.
   ========================================================================== */

:root { --gb-container-width: 1500px; }

/* Navigation as header: logo inside the menu bar */
.navigation-branding { display: flex; align-items: center; order: 0; margin-right: 10px; }
.navigation-branding img { position: relative; padding: 10px 0; display: block; transition: height .3s ease; height: 70px; width: auto; }
.main-navigation .menu-toggle { flex-grow: 1; width: auto; }
.main-navigation.has-branding .menu-toggle { flex-grow: 0; padding-right: 20px; order: 2; }
.nav-align-right .navigation-branding { margin-right: auto; }
.main-navigation.has-branding .inside-navigation.grid-container { padding: 0 20px; }
.main-navigation.has-branding:not(.grid-container) .inside-navigation:not(.grid-container) .navigation-branding { margin-left: 10px; }

/* Auto-hiding sticky menu (Headroom.js adds the rsp-* classes) */
#site-navigation { position: sticky; top: 0; }
.admin-bar #site-navigation { top: 32px; }
/* Selectors start with #site-navigation so Perfmatters' used-CSS safelist keeps them. */
#site-navigation.rsp-headroom { transition: transform .3s ease; will-change: transform; }
#site-navigation.rsp-unpinned { transform: translateY(-100%); }
.admin-bar #site-navigation.rsp-unpinned { transform: translateY(calc(-100% - 32px)); }
/* Scrolled: the bar shrinks to 60px like GP Premium's sticky menu; the margin keeps the page from shifting. */
@media (min-width: 866px) {
  #site-navigation.rsp-not-top { margin-bottom: 10px; }
  #site-navigation.rsp-not-top .main-nav ul li a,
  #site-navigation.rsp-not-top .menu-bar-item > a { line-height: 60px; }
  #site-navigation.rsp-not-top .navigation-branding img { height: 60px; }
}
@media (max-width: 782px) {
  .admin-bar #site-navigation { top: 46px; }
  .admin-bar #site-navigation.rsp-unpinned { transform: translateY(calc(-100% - 46px)); }
}
@media (max-width: 865px) {
  .main-navigation .main-nav ul li a,
  .main-navigation .menu-toggle,
  .main-navigation .mobile-bar-items a,
  .main-navigation .menu-bar-item > a { line-height: 60px; }
  .navigation-branding { margin-right: auto; margin-left: 10px; }
  .main-navigation.has-branding .inside-navigation.grid-container { padding: 0; }
  .navigation-branding img { height: 60px; }
  /* A long open menu scrolls inside the bar instead of running off screen. */
  #site-navigation.toggled .main-nav > ul { max-height: calc(100vh - 80px); overflow-y: auto; }
}

/* Blog: featured image above the title, centred */
.post-image-above-header .inside-article .post-image,
.post-image-above-header .inside-article .featured-image { margin-top: 0; margin-bottom: 2em; }
.post-image-aligned-center .post-image,
.post-image-aligned-center .featured-image { text-align: center; }

/* Converted GenerateBlocks containers: no theme padding, only their own */
body .rsp-plain.wp-block-group > .wp-block-group__inner-container { padding: 0; }
/* GenerateBlocks grids and images had no outer margins of their own */
.wp-block-columns.rsp-grid { margin-bottom: 0; }
.wp-block-columns.rsp-grid > .wp-block-column { word-break: normal; }
.wp-block-query.rsp-grid { padding-top: 0; padding-bottom: 0; }
.wp-block-image.rsp-fill { margin: 0; }
/* GenerateBlocks text divs became paragraphs; keep the inherited line height */
p.rsp-lh { line-height: inherit; }
.is-layout-grid { display: grid; }
.is-layout-flex { display: flex; }
.rsp-justify-center { justify-content: center; }
.rsp-items-center { align-items: center; }

/* Responsive columns: rsp-cols-t{n} from 1024px down, rsp-cols-m{n} from 767px down */
@media (max-width: 1024px) {
  body .wp-block-columns.rsp-cols-t1, body .wp-block-columns.rsp-cols-t2 { flex-wrap: wrap !important; }
  body .wp-block-columns.rsp-cols-t1 > .wp-block-column { flex-basis: 100% !important; flex-grow: 0; }
  body .wp-block-columns.rsp-cols-t2 > .wp-block-column { flex-basis: calc((100% - var(--rsp-gap-x, 2em)) / 2) !important; flex-grow: 0; }
  .is-layout-grid.rsp-cols-t1 { grid-template-columns: minmax(0, 1fr) !important; }
  .is-layout-grid.rsp-cols-t2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .is-layout-grid.rsp-cols-t1 > *, .is-layout-grid.rsp-cols-t2 > * { grid-column: auto !important; }
  .rsp-order-t1 { order: 1; } .rsp-order-t2 { order: 2; } .rsp-order-t3 { order: 3; }
  .rsp-divider-r { border-right-width: 0 !important; border-bottom: 1px solid rgba(128, 128, 128, .2); }
  .rsp-divider-r:last-child { border-bottom: 0; }
}
@media (max-width: 767px) {
  /* Stacked columns stack on phones whatever order the core and theme stylesheets load in. */
  body .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; }
  body .wp-block-columns.rsp-cols-m1, body .wp-block-columns.rsp-cols-m2, body .wp-block-columns.rsp-cols-m3 { flex-wrap: wrap !important; }
  body .wp-block-columns.rsp-cols-m1 > .wp-block-column { flex-basis: 100% !important; flex-grow: 0; }
  body .wp-block-columns.rsp-cols-m2 > .wp-block-column { flex-basis: calc((100% - var(--rsp-gap-x, 2em)) / 2) !important; flex-grow: 0; }
  body .wp-block-columns.rsp-cols-m3 > .wp-block-column { flex-basis: calc((100% - 2 * var(--rsp-gap-x, 2em)) / 3) !important; flex-grow: 0; }
  .is-layout-grid.rsp-cols-m1 { grid-template-columns: minmax(0, 1fr) !important; }
  .is-layout-grid.rsp-cols-m2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .is-layout-grid.rsp-cols-m1 > * { grid-column: auto !important; }
  .rsp-order-m1 { order: 1; } .rsp-order-m2 { order: 2; } .rsp-order-m3 { order: 3; }
}

/* Buttons and sections from GenerateBlocks Pro's global styles */
/* GB text links had none of the theme's button sizing, so the ports override its !important rules. */
.rsp-btn-blue .wp-block-button__link { background-color: #215bc2; color: #fff; display: inline-flex; align-items: center; padding: 1rem 2rem !important; font-size: inherit !important; border-radius: 0; }
.rsp-btn-blue .wp-block-button__link:hover { background-color: #1a4a9b; color: #fff; }
.gbp-button--primary .wp-block-button__link {
  background-color: #000; border: 1px solid; color: #fff; display: inline-flex;
  font-size: 1rem !important; padding: .75rem 1.5rem !important; text-decoration: none; border-radius: 0;
}
.gbp-button--secondary .wp-block-button__link {
  background: transparent; border: 1px solid #000; color: currentColor; display: inline-flex;
  font-size: 1rem !important; padding: .75rem 1.5rem !important; text-decoration: none; border-radius: 0;
}
.gbp-section { padding: 7rem 40px; }
.gbp-section__inner { margin-left: auto; margin-right: auto; max-width: var(--gb-container-width); position: relative; z-index: 1; }
.gbp-section__headline { margin-bottom: 1.5rem; }
.gbp-section__text { font-size: 1.125rem; }
.gbp-section__tagline { font-size: 1rem; font-weight: 600; margin-bottom: .75rem; }
.gbp-card { padding: 1.5rem; }
.gbp-card__title { font-size: 1.25rem; margin-bottom: .5rem; }
@media (max-width: 1024px) { .gbp-section { padding: 6rem 30px; } }
@media (max-width: 767px) {
  .gbp-section { padding: 4rem 20px; }
  .gbp-section__headline { margin-bottom: 1.25rem; }
  .gbp-card { padding: 1.25rem; }
}

/* rsp-responsive:start (generated by the GenerateBlocks converter from GB tablet/mobile styles) */
body .rsp-rowpad-d20 > * { padding-bottom: 20px !important; }
body .rsp-rowpad-d5 > * { padding-bottom: 5px !important; }
@media (max-width:1024px) {
  body .rsp-rowpad-t30 > * { padding-bottom: 30px !important; }
  body .rsp-rowpad-t60 > * { padding-bottom: 60px !important; }
  body .rsp-t-align-items-flex-start { align-items: flex-start !important; }
  body .rsp-t-flex-basis-100 { flex-basis: 100% !important; }
  body .rsp-t-flex-direction-column { flex-direction: column !important; }
  body .rsp-t-font-size-3em { font-size: 3em !important; }
  body .rsp-t-margin-bottom-4rem { margin-bottom: 4rem !important; }
}
@media (max-width:767px) {
  body .rsp-m-font-size-1-125rem { font-size: 1.125rem !important; }
  body .rsp-m-font-size-2-5em { font-size: 2.5em !important; }
  body .rsp-m-margin-bottom-1-5rem { margin-bottom: 1.5rem !important; }
  body .rsp-m-margin-bottom-5px { margin-bottom: 5px !important; }
  body .rsp-m-margin-left-5px { margin-left: 5px !important; }
  body .rsp-m-margin-right-5px { margin-right: 5px !important; }
  body .rsp-m-margin-top-5px { margin-top: 5px !important; }
  body .rsp-m-padding-left-10px { padding-left: 10px !important; }
  body .rsp-m-padding-right-10px { padding-right: 10px !important; }
  body .rsp-rowpad-m20 > * { padding-bottom: 20px !important; }
}
@media (min-width:1025px) {
  body .rsp-nopad-D { padding-bottom: 0 !important; }
}
@media (max-width:1024px) and (min-width:768px) {
  body .rsp-nopad-T { padding-bottom: 0 !important; }
}
@media (max-width:767px) {
  body .rsp-nopad-M { padding-bottom: 0 !important; }
}
/* rsp-responsive:end */
