
/* Fluid Typography Scale 
 * https://theadminbar.com/simple-responsive-font-size-calculator/
 * SCSS cannot deal with clamp functions
*/

h1, .fs-h1 {
	font-size: clamp(3rem, 2.7273rem + 1.0909vw, 3.6rem);
}

h2, .fs-h2 {
	font-size: clamp(2.25rem, 2.0455rem + 0.8182vw, 2.7rem);
}

h3, .fs-h3 {
	font-size: clamp(1.875rem, 1.7045rem + 0.6818vw, 2.25rem);
}

h4, .fs-h4 {
	font-size: clamp(1.5rem, 1.3636rem + 0.5455vw, 1.8rem);
}

h5, .fs-h5 {
	font-size: clamp(1.25rem, 1.1364rem + 0.4545vw, 1.5rem);
}

h6, .fs-h6 {
	font-size: clamp(1.125rem, 1.0227rem + 0.4091vw, 1.35rem);
}

p, .fs-p {
	font-size: clamp(0.8333rem, 0.7576rem + 0.303vw, 1rem);
}

/* Theme Tweaks */
.site-header {
  padding-inline: clamp(0.848rem, 0.848rem + 0.768vw, 1.5rem);
}

/* Text Balance / Pretty */

/* Apply balanced text wrapping to all heading levels and elements with .balance class
   - text-wrap: balance improves line breaks for better visual balance in headings */
:is(h1, h2, h3, h4, h5, h6), .balance {
	text-wrap: balance;
}

/* Apply pretty text wrapping to body text elements
   - text-wrap: pretty optimizes line breaks to avoid orphans and widows 
   - turn this off when you have a site with a ton of text for performance reasons */
p, blockquote, li {
	text-wrap: pretty;
}

/* Remove bottom margin from the last paragraph that is also the last of its type
   - Helps eliminate unnecessary spacing at the end of content blocks */
p:last-child:last-of-type {
	margin-bottom: 0px;
}

/* --- GP MENU ACCESSIBILITY TWEAK --- */

/* Main navigation menu wrapper with hamburger icon
   - Removes the default block display to allow inline positioning */
#site-navigation ul.sub-menu {
	display: block;
}

/* Hover state for menu icon SVG
   - Rotates the icon 180 degrees on hover for visual feedback
   - Creates a flip/spin animation effect */
#site-navigation li:hover .gp-icon svg {
	transform: rotate(180deg);
}

/* Hover state for submenu items
   - Shows submenus when parent item is hovered
   - Makes dropdown menus visible on hover */
#site-navigation li:hover .sub-menu {
	visibility: visible;
}