/*
====================================
 Theme Name:   Dental North Theme
 Theme URI:    https://dentalnorth.co.nz
 Description:  Dental North Theme
 Author:       Dane Mitchell
 Author URI:   https://onoff.co.nz
 Template:     generatepress
 Version:      0.1
====================================
*/


/* =========================
   TYPOGRAPHY
========================= */

/* Font Family Utilities */
.ff-body {
    font-family: var(--gp-font--brand-font);
}

.ff-heading {
    font-family: var(--gp-font--brand-font);
}

/* Heading and utility class font assignment */
h1, h2, h3, h4, h5, h6,
[class^="fs-"] {
    font-family: var(--gp-font--brand-font);
	line-height: 1.2em;
}

.fs-p {
    font-family: var(--gp-font--brand-font);
}

.offset-links a {
	text-decoration-thickness: 2px !important;
    text-underline-offset: 0.2em !important;
	text-decoration-color: var(--link-underline);
}

.offset-links_small a,
.sidebar_link a,
a {
	text-decoration-thickness: 1px !important;
    text-underline-offset: 0.2em !important;
	text-decoration-color: var(--link-underline);
}

.content_white * {
	color: var(--white);
}

.profile_institution {
	text-decoration: underline;
	text-decoration-color: var(--brand-green);
	text-underline-offset: -1.7em;
}


/* =========================
   FLUID TYPOGRAPHY SCALE
   Source: https://theadminbar.com/simple-responsive-font-size-calculator/
========================= */

h1,
.fs-h1 {
    font-size: clamp(2rem, 1.667rem + 1.333vi, 3rem);
}

h2,
.fs-h2 {
    font-size: clamp(1.25rem, 1.208rem + 0.167vi, 1.375rem);
}

h3,
.fs-h3 {
    font-size: clamp(1.125rem, 1.083rem + 0.167vi, 1.25rem);
}

h4,
.fs-h4 {
    font-size: clamp(1rem, 0.958rem + 0.167vi, 1.125rem);
}

h5,
.fs-h5 {
    font-size: clamp(1rem, 0.958rem + 0.167vi, 1.125rem);
}

h6,
.fs-h6 {
    font-size: clamp(1rem, 0.958rem + 0.167vi, 1.125rem);
}

p,
.fs-p {
    font-size: clamp(1rem, 0.8523rem + 0.3409vw, 1.125rem);
}

.sticky-enabled .main-navigation.is_stuck {
	background-color: var(--brand-sand) !important;
	box-shadow: none !important;
}

/* Shrink logo when sticky */

.header_logo {
    transition: min-height 0.3s ease, transform 0.3s ease;
}

.gb-is-sticky .header_logo {
    min-height: 40px !important;
    transform: scale(0.85);
	padding-top: 20px;
	padding-bottom: 20px;
}

.gb-is-sticky {
	padding: 0 !important;
	box-shadow: none !important;
}

/* Google Review Badge */
.google-trust-badge{
	display:inline-flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	width:130px;
	padding:14px 10px;
	background:#fff;
	border-radius:6px;
	border:2px solid rgba(0, 0, 0, 0.5);
	text-align:center;
	text-decoration:none;
	font-family:inherit;
	transition:transform .15s ease, box-shadow .15s ease;
}

.google-trust-badge:hover{
	transform:translateY(-2px);
	box-shadow:0 4px 10px rgba(0,0,0,0.08);
}

.google-badge-icon{
	margin-bottom:8px;
	display:flex;
	align-items:center;
	justify-content:center;
}

.google-stars{
	position:relative;
	font-size:18px;
	letter-spacing:2px;
	line-height:1;
	margin-bottom:8px;
}

.stars-bg{
	color:#e0e0e0;
}

.stars-fill{
	color:#fbbc04;
	position:absolute;
	top:0;
	left:0;
	white-space:nowrap;
	overflow:hidden;
}

.google-badge-text{
	font-size:12px;
	line-height:13px;
	color:#000;
}

.rating{
	color:black;
	font-weight:bold;
}

/* ── Colour the full-width wrapper, not the inner header ── */
.header_wrapper {
    background-color: #f2eee6 !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 99 !important;
    transition: height 0.5s ease !important;
}

.header_wrapper + * {
    margin-top: 186px !important;
}

@media (max-width: 939px) {
    .header_wrapper + * {
        margin-top: 102px !important;
    }
}

/* Smooth logo shrink */
.header_logo {
    object-fit: contain !important;
    width: auto !important;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    will-change: transform;
    transition: transform 0.5s ease,
                min-height 0.5s ease,
                padding 0.5s ease !important;
}