/*
Theme Name: Quicklaunch Child
Theme URI:
Template: quicklaunch-parent-theme
Author: Quicklaunch
Author URI: https://www.quicklaunch.co.uk/
Description: Child theme.
Version: 1.0
*/

/* Project styles; shared brand foundations follow below. */

.no-gutter .col-sm-12 {
    padding-left: 0px;
    padding-right: 0px;
}


h1,
h2,
h3,
h4,
h5,
h6 {}

h1 {}
h2 {}
h3 {}
h4 {}
h5 {}
h6 {}

p {}

.white-text {color: #fff;}
.darkbg {background-color: #252626;}

.small {
    font-size: 85%;
	line-height: 150%;
}

.site-band {padding: 30px 0;}
.site-band.top {padding: 30px 0 0 0;}
.site-band.bottom {padding: 0 0 30px 0;}

@media (min-width: 992px) {
    .site-band {padding: 70px 0;}
    .site-band.top {padding: 70px 0 0 0;}
    .site-band.bottom {padding: 0 0 70px 0;}
}

.content ul li,
.content ol li,
.site-band ul li,
.site-band ol li,
.role ol li,
.role ul li {}

a {}
a:hover {}

.brand {
	width: 104px;
    margin: 20px;
	padding: 0px !important;
}

.brand img {
	width: 100%;
	height: auto;
}

/* Navigation */

header {}

.navbar-toggler {
    color: #fff;
    padding: 20px;
    font-size: 1rem;
    line-height: 1;
    background-color: var(--ppg-olive);
    border: 1px solid transparent;
    border-radius: 0.25rem;
    transition: box-shadow .15s ease-in-out;
}

#navbar-header button i a {
	color: var(--ppg-olive) !important;
}

#menu-wrap .navbar-nav > .menu-item > .nav-link {
    font-family: var(--ppg-font-body);
    font-size: 14px;
    font-weight: 400;
    text-decoration: none;
    padding: 15px;
}

#menu-wrap .navbar-nav > .current-menu-item > .nav-link,
#menu-wrap .navbar-nav > .current-menu-ancestor > .nav-link,
#menu-wrap .navbar-nav > .menu-item.active > .nav-link {
	color: var(--ppg-olive);
}

.dropdown-menu {
    position: absolute;
    top: 173%;
    z-index: 1000;
    display: none;
    min-width: 10rem;
    padding: 0;
    margin: 0;
    color: #fff;
    text-align: left;
    list-style: none;
    background-color: var(--ppg-ivory);
    background-clip: padding-box;
    border: none;
    border-radius: 0;
}

.active {
    color: var(--ppg-olive) !important;
    font-weight: 900 !important;
}

.dropdown-item:focus, .dropdown-item:hover {
    color: var(--ppg-olive) !important;
    background-color: var(--ppg-blush);
}

.dropdown-item.active, .dropdown-item:active {
    color: var(--ppg-olive);
    font-weight: 900;
    background-color: var(--ppg-blush);
}



/* Nav END */


@media (min-width: 992px) {}

/* Form */

/* Polly's Paper Garden: shared colour and responsive type foundations.
 * Gelasio provides the display serif; Inter keeps body copy clear and readable.
 * Keep this block in sync with library/sass/_foundation.scss.
 */
:root {
    --ppg-ivory: #fcf9f3;
    --ppg-olive: #626b4d;
    --ppg-olive-dark: #485039;
    --ppg-sage: #929980;
    --ppg-rose: #c48685;
    --ppg-rose-dark: #965858;
    --ppg-blush: #f4ebe2;
    --ppg-border: #dfd0bc;
    --ppg-ink: #39372f;
    --ppg-font-body: "Inter", Arial, sans-serif;
    --ppg-font-heading: "Gelasio", Georgia, serif;
    --ppg-text-small: 0.875rem;
    --ppg-text-body: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
    --ppg-text-lead: clamp(1.125rem, 1rem + 0.625vw, 1.4375rem);
    --ppg-h1: clamp(2.25rem, 1.5rem + 3.75vw, 4.5rem);
    --ppg-h2: clamp(1.875rem, 1.375rem + 2.5vw, 3.375rem);
    --ppg-h3: clamp(1.5rem, 1.25rem + 1.25vw, 2.25rem);
    --ppg-h4: clamp(1.25rem, 1.125rem + 0.625vw, 1.625rem);
    --ppg-h5: clamp(1.125rem, 1.0625rem + 0.3125vw, 1.3125rem);
    --ppg-h6: clamp(1rem, 0.9375rem + 0.3125vw, 1.1875rem);
    --bs-body-bg: var(--ppg-ivory);
    --bs-body-color: var(--ppg-ink);
    --bs-body-font-family: var(--ppg-font-body);
}

body {
    background-color: var(--ppg-ivory);
    color: var(--ppg-ink);
    font-family: var(--ppg-font-body);
    font-size: var(--ppg-text-body);
    font-weight: 400;
    line-height: 1.65;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    margin: 0 0 0.65em;
    color: var(--ppg-olive);
    font-family: var(--ppg-font-heading);
    font-weight: 400;
    line-height: 1.2;
    overflow-wrap: break-word;
    text-wrap: balance;
}

h1, .h1 { font-size: var(--ppg-h1); line-height: 1.08; }
h2, .h2 { font-size: var(--ppg-h2); line-height: 1.15; }
h3, .h3 { font-size: var(--ppg-h3); }
h4, .h4 { font-size: var(--ppg-h4); }
h5, .h5 { font-size: var(--ppg-h5); }
h6, .h6 { font-size: var(--ppg-h6); }

p { margin: 0 0 1.25em; }
p, li { overflow-wrap: break-word; }
.lead { font-size: var(--ppg-text-lead); font-weight: 400; line-height: 1.6; }
small, .small { font-size: var(--ppg-text-small); line-height: 1.5; }
.ppg-eyebrow {
    color: var(--ppg-olive);
    font-size: var(--ppg-text-small);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

button, input, select, textarea { font-family: inherit; }
input, select, textarea { font-size: 1rem; }
a { color: var(--ppg-olive); text-underline-offset: 0.2em; }
a:hover { color: var(--ppg-rose-dark); }
:focus-visible { outline: 2px solid var(--ppg-olive); outline-offset: 3px; }
::selection { background: var(--ppg-olive); color: var(--ppg-ivory); }
hr { border: 0; border-top: 1px solid var(--ppg-border); opacity: 1; }

.main-brand-colour1, .darkbg { background-color: var(--ppg-olive); color: var(--ppg-ivory); }
.main-brand-colour2 { background-color: var(--ppg-rose); color: var(--ppg-ink); }
.bg-colour1 { background-color: var(--ppg-ivory); }
.bg-colour2 { background-color: var(--ppg-blush); }
.text-colour1 { color: var(--ppg-olive); }
.text-colour2 { color: var(--ppg-rose-dark); }
.text-colour3 { color: var(--ppg-ink); }
.white-text { color: var(--ppg-ivory); }
.darkbg :is(h1, h2, h3, h4, h5, h6, a),
.white-text :is(h1, h2, h3, h4, h5, h6, p, a) { color: inherit; }
.darkbg :focus-visible { outline-color: var(--ppg-ivory); }

#menu-wrap .navbar-nav > .menu-item > .nav-link {
    font-family: var(--ppg-font-body);
    font-size: clamp(0.875rem, 0.825rem + 0.25vw, 1rem);
}

/* Three-row garden header; mirrored in library/sass/_header.scss. */
.ppg-header { font-family: var(--ppg-font-heading); background: var(--ppg-ivory); border-bottom: 1px solid var(--ppg-border); }
.ppg-header .container-xxl { max-width: 1600px; padding-right: clamp(20px, 4vw, 64px); padding-left: clamp(20px, 4vw, 64px); }
.ppg-icon { flex: 0 0 auto; vertical-align: middle; }
.ppg-topbar { padding: 12px 0; background: var(--ppg-olive); color: var(--ppg-ivory); font-size: clamp(0.75rem, 0.65rem + 0.3vw, 1rem); line-height: 1.5; }
.ppg-topbar .row.align-items-center > div { display: flex; align-items: center; justify-content: center; gap: 10px; text-align: center; }
.ppg-topbar .ppg-icon { width: 17px; height: 17px; }
.ppg-topbar .ppg-icon--heart { fill: currentColor; stroke: none; }
.ppg-middle { padding-top: 22px; padding-bottom: 20px; }
.ppg-logo { display: inline-block; width: min(100%, 320px); }
.ppg-logo img { display: block; width: 100%; height: auto; }
.ppg-search { display: flex; align-items: center; max-width: 250px; min-height: 44px; border-bottom: 1px solid transparent; }
.ppg-search:focus-within { border-color: var(--ppg-border); }
.ppg-search button { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; min-height: 44px; padding: 0; border: 0; background: transparent; color: var(--ppg-ink); }
.ppg-search input { width: 100%; min-width: 0; padding: 8px 0; border: 0; border-radius: 0; background: transparent; color: var(--ppg-ink); font-family: inherit; }
.ppg-search input::placeholder { color: var(--ppg-ink); opacity: 1; }
.ppg-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: clamp(12px, 2vw, 32px); }
.ppg-header-actions > a, .ppg-header-actions .ppg-basket { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--ppg-ink); text-decoration: none; font-size: 1rem; white-space: nowrap; }
.ppg-header-actions > a:hover, .ppg-header-actions .ppg-basket:hover { color: var(--ppg-rose-dark); }
.ppg-basket { position: relative; padding: 0 17px 0 0; border: 0; background: transparent; font-family: inherit; }
.ppg-basket-count { position: absolute; top: -1px; right: -3px; display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 4px; border-radius: 50%; background: var(--ppg-rose-dark); color: var(--ppg-ivory); font-size: 0.75rem; line-height: 1; }
.ppg-categories { padding: 0; }
.ppg-categories .navbar-nav { gap: clamp(12px, 3vw, 54px); }
.ppg-categories .nav-link { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 0 14px; border: 0; background: transparent; color: var(--ppg-ink); font-family: var(--ppg-font-heading); font-size: clamp(0.875rem, 0.7rem + 0.35vw, 1.0625rem); font-weight: 400; line-height: 1.4; text-transform: uppercase; text-decoration: none; }
.ppg-categories .nav-link:hover, .ppg-categories .nav-link[aria-expanded="true"] { color: var(--ppg-rose-dark); }
.ppg-categories .ppg-current { color: var(--ppg-rose-dark); text-decoration: underline; text-decoration-color: var(--ppg-rose); text-decoration-thickness: 2px; text-underline-offset: 8px; }
.ppg-dropdown-toggle .ppg-icon { width: 15px; height: 15px; }
.ppg-categories .dropdown-menu { top: 100%; min-width: 230px; margin: 0; padding: 8px; border: 1px solid var(--ppg-border); border-radius: 3px; background: var(--ppg-ivory); color: var(--ppg-ink); box-shadow: 0 8px 20px rgb(57 55 47 / 8%); }
.ppg-categories .dropdown-item { padding: 10px 12px; color: var(--ppg-ink); font-size: 1rem; white-space: normal; }
.ppg-menu-toggle { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 10px; padding: 10px 0; min-height: 44px; border: 0; border-radius: 0; background: transparent; color: var(--ppg-olive); font-family: inherit; font-size: 1rem; }
.ppg-menu-toggle:focus { box-shadow: none; }
@media (max-width: 991.98px) {
    .ppg-logo { width: min(65vw, 260px); }
    .ppg-middle { padding-top: 18px; padding-bottom: 10px; }
    .ppg-categories .navbar-nav { gap: 0; padding-bottom: 14px; }
    .ppg-categories .nav-link { width: 100%; justify-content: space-between; padding: 12px 0; }
    .ppg-categories .dropdown-menu { margin-bottom: 10px; min-width: 0; box-shadow: none; }
}
@media (max-width: 575.98px) {
    .ppg-topbar { padding: 8px 0; }
    .ppg-topbar .row.align-items-center > div { gap: 8px; }
    .ppg-header-actions { gap: 12px; }
    .ppg-header-actions > a, .ppg-header-actions .ppg-basket { gap: 5px; font-size: 0.8125rem; }
    .ppg-header-actions .ppg-icon { width: 20px; height: 20px; }
    .ppg-search button { flex-basis: 30px; }
    .ppg-search .ppg-icon { width: 20px; height: 20px; }
}

/* Basket preview: static empty state until WooCommerce is connected. */
.ppg-cart { position: relative; }
.ppg-cart-preview.dropdown-menu {
    top: 100%; right: 0; left: auto; z-index: 1050;
    width: min(350px, calc(100vw - 40px)); min-width: 0;
    margin: 0; padding: 24px; border: 1px solid var(--ppg-border);
    border-radius: 5px; background: var(--ppg-ivory); color: var(--ppg-ink);
    box-shadow: 0 12px 32px rgb(57 55 47 / 12%);
    font-family: var(--ppg-font-body); white-space: normal;
}
.ppg-cart-title { margin: 0 0 16px; color: var(--ppg-olive); font-family: var(--ppg-font-heading); font-size: 1.5rem; }
.ppg-cart-empty { margin-bottom: 8px; font-size: 0.9375rem; }
.ppg-cart-note { margin-bottom: 20px; font-size: 0.8125rem; }
.ppg-cart-preview a { display: block; padding: 12px; text-align: center; font-size: 0.875rem; }
.ppg-cart-shop { border-radius: 3px; background: var(--ppg-olive); color: var(--ppg-ivory); text-decoration: none; }
.ppg-cart-shop:hover { background: var(--ppg-olive-dark); color: var(--ppg-ivory); }
.ppg-cart-link { margin-top: 8px; color: var(--ppg-olive); }

/* Editable Static Block top bar and WordPress menu states. */
.ppg-topbar-icon--heart { --ppg-icon-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20class%3D%22ppg-icon%20ppg-icon--heart%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20d%3D%22M20.8%204.6a5.5%205.5%200%200%200-7.8%200L12%205.7l-1.1-1.1a5.5%205.5%200%200%200-7.8%207.8L12%2021l8.8-8.6a5.5%205.5%200%200%200%200-7.8Z%22/%3E%3C/svg%3E"); }
.ppg-topbar-icon--delivery { --ppg-icon-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20class%3D%22ppg-icon%20ppg-icon--delivery%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20d%3D%22M2%205h12v12H2zM14%209h4l4%204v4h-8%22/%3E%3Ccircle%20cx%3D%226%22%20cy%3D%2218%22%20r%3D%222%22/%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%2218%22%20r%3D%222%22/%3E%3C/svg%3E"); }
.ppg-topbar-icon--gift { --ppg-icon-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20class%3D%22ppg-icon%20ppg-icon--gift%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20d%3D%22M3%208h18v4H3zM5%2012v9h14v-9M12%208v13%22/%3E%3Cpath%20d%3D%22M12%208H8a3%203%200%201%201%203-3Zm0%200h4a3%203%200%201%200-3-3Z%22/%3E%3C/svg%3E"); }
.ppg-topbar-icon { display: inline-block; width: 17px; height: 17px; flex: 0 0 17px; background: currentColor; -webkit-mask: var(--ppg-icon-mask) center / contain no-repeat; mask: var(--ppg-icon-mask) center / contain no-repeat; }
.ppg-topbar p { margin: 0; }
.ppg-topbar a { color: inherit; }
.ppg-topbar :focus-visible { outline-color: var(--ppg-ivory); }
.ppg-categories .nav-link.active { color: var(--ppg-rose-dark) !important; font-weight: 400 !important; text-decoration: underline; text-decoration-color: var(--ppg-rose); text-decoration-thickness: 2px; text-underline-offset: 8px; }
.ppg-categories .dropdown-toggle::after { width: 7px; height: 7px; margin-left: 4px; border: 0; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }

/* WPBakery wrappers must stay full width and must not add section spacing to the topbar. */
#topbar > div > :is(.container, .container-fluid) { max-width: none; width: 100%; padding-inline: 12px; }
#topbar .vc_column-inner,
#topbar .wpb_wrapper { width: 100%; }
#topbar .wpb_content_element { margin-bottom: 0; }
#topbar .vc_column-inner { padding-block: 0; }

/* The announcement list uses the container already supplied by WPBakery. */
#topbar .ppg-announcements { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-evenly; gap: 8px 24px; margin: 0; padding: 0; list-style: none; }
#topbar .ppg-announcements > li { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 0; text-align: center; }
@media (max-width: 767px) { #topbar .ppg-announcements > li { flex-basis: 100%; } }
