/*
Theme Name:   Twenty24 Lakeshore Child
Theme URI:    https://wordpress.org/themes/twentytwentyfour/
Description:  Twenty Twenty-Four child theme
Author:       WordPress.org
Author URI:   https://wordpress.org/
Template:     twentytwentyfour
Version:      1.0.33
Text Domain:  twenty24-lakeshore-child
*/

/* Note: Colour Palette needs tightening? */
:root {
    --parallax-scale: 0.1;
    --parallax-min-height: 44rem;
    --container-offset-adjustment: 5rem;
    --scroll-factor : .5;

    --defaultBgColour: rgb(249, 249, 249);

    --defaultWhite: #fff;
    --defaultBlack: #111;
    --defaultGrey: #888;
    --altBlack: #212121; /* only 1 */
    --defaultBlue: #024678;
    --altDarkBlue: #012e4e;
    --altPaleBlue: #bce8f1;
    --altPaleBlue01: #0095a3;
    --altPaleBlue02: #8cd0dd; /* only 1 */
    --accordionBlue: #d9edf7; /* only 1 */
    --borderBlue: hsl(205, 97%, 24%, 0.75);
    --borderBlueAlt: hsl(205, 97%, 24%, 0.5);

    --uplandGreen: #023d32;
    --riparianOlive: #758d48;
}

/* Override Parent theme.json and Wpress theme.json defaults */
:where(body .is-layout-constrained) > p {
	margin-block-start: 0 !important;
	margin-block-end: 1.2rem !important;
}
:where(body .is-layout-constrained) > ul {
	margin-block-start: 1.2rem;
	margin-block-end: 1.2rem;
}

:where(.wp-site-blocks *:focus){outline-width:2px;outline-style:solid}


/* Elemental ****************************************************/
html { scroll-behavior: smooth; }

body, button, h1, h2, h3, h4, h5, h6, input, select, textarea {
	font-family: 'Lato', 'helvetica neue', helvetica, arial, verdana !important;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
    /* font-size: 18px; parent theme/wpress default? */
}

h1, h2, h3, h4, h5, h6 {
    font-weight: bold !important;
    font-style: normal;
    /* line-height: 1.55;  theme/wpress default */
}
h1 { 
    font-size: 4rem; /* was 5.5, contradicts #titleFeatureBox > .page-title */
    font-weight: 900 !important;
}
h2 { 
    font-size: 2.25rem;
    font-weight: 900 !important;
    margin-bottom: 1rem !important; /* note: line-height adds to effect */
}
h3 { 
    font-size: 1.5rem;
}

a {
    color: var(--altDarkBlue);
    text-decoration: underline;
}
a:hover {
    background-color: var(--altDarkBlue);
    color: var(--defaultWhite);
    text-decoration: none;
}

cite { font-style: normal; }

dt { font-weight: bold; }
dl { margin-bottom: 1.2rem !important; }

article { margin-bottom: 2.4rem; }


/* Typography **************************************/
.intro-lg {
	font-size: 1.5rem;
	line-height: 1.2;
	font-weight: bold;
}
.intro-md {
	font-size: 1.25rem; /* was 2 */
	line-height: 1.2;
	font-weight: bold;
}

h2.has-subhead {
    font-size: 2.25rem;
    text-align: center;
}
    .overline,
    .has-subhead > span {
        display: block;
        font-size: 1.5rem;
        padding-top: 0.5rem;
    }
/* smaller text preceding heading text proper */
.overline {
    font-variant: small-caps;
}

.h2-sm {
    font-size: 1.8rem;
}
.h2-body-txt {
    font-weight: normal !important;
    font-size: inherit;
    margin-bottom: 0;
}

.next-item-intro {
    margin-bottom: 0 !important;
}
    .has-intro,
    .next-item-intro + .has-intro {
        margin-top: 0.5rem !important;
		margin-bottom: 1.2rem;
		padding-left: 1.2rem;
    }

.txt-white {
    color: var(--defaultWhite);
}


/** Lists **/
ul.disc {
    list-style-type: disc;
}
ul.col-constraint {
	padding-left: 1.1rem;
}
ul.checkmarks > li {
	position: relative;
	margin: 0 0 6px 0;
	padding: 4px 4px 8px 10px;
	list-style: none;
}
    ul.checkmarks > li::before {
        font-family: 'dashicons';
        content: "\f147";
        position: absolute;
        top: -10px;
        left: -1.25em;
        -moz-box-sizing: border-box;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        width: 2em;
        margin-right: 8px;
        padding: 4px;
        color: var(--defaultWhite);
        font-weight: bold;
        font-size: 1.7em;
        text-align: center;
    }
ul.indent-list,
ol.indent-list {
    margin-left: 1.2rem !important;
}


/* UTILITIES *********************************************/
.smscreen-pad {
    /* split out preserves top/bottom values */
    padding-left: 0.33rem !important;
    padding-right: 0.33rem !important;
}
.smscreen-centre {
    text-align: center !important;
}
.width-400 {
    max-width: 400px !important;
}
.float-l { 
    float: left;
}
.nowrap {
    text-wrap: nowrap;
}
.d-none {
    display: none;
}
.mt-0 {
    margin-top: 0 !important;
}
.mb-mt-0 {
    margin-bottom: 0 !important;
    margin-top: 0;
}
.mt-half {
	margin-top: 0.6rem !important;
}
.mb-base {
    margin-bottom: 1.2rem;
}



/***** Components: Accordions, Modal Pop-ups & their Buttons *****/
/* Accordions */
.accordion {
    background-color: var(--accordionBlue);
    color: var(--defaultBlack);
    margin-top: 0;
    max-height: 0;
    overflow: hidden;
    padding: 0 1rem;  /* No Top/Bott Pad because takes vertical space */
    position: relative;
    
    will-change: max-height;
    transition: all 0.25s ease-out;
    opacity: 0; 
}
    .accordion-open {
        padding: 1rem 1rem 40px 1rem; /* Now add Top/Bott Pad */
        opacity: 1;
    }
		.accordion-open > p:first-child {
			margin-top: 0 !important;
		}
/* Spacing tween Accordion Content & its trigger 
   Note: ~0.2rem in body, ~0.67rem for head */
h2 + .accordion-open {
    margin-top: -1rem;
}
p + .accordion-open {
    margin-top: -1rem;
}
.lakeshore-zone > .lede + .accordion-open {
    margin-top: -0.8rem !important;
}
ul + .accordion-open,
li > .accordion-open {
    margin-top: 0.2rem;
}
div + .accordion-open {
    margin-top: -1.5rem; 
}


/** Modal Popups (Dialog tag) **/
html:has(dialog.popup-dialog[open]) {
    overflow: hidden; /* No scrolling under the popup */
}

dialog.popup-dialog {
    border: solid 4px var(--borderBlue);
    border-radius: 1rem;
    box-sizing: border-box;
    outline-width: 0;
    outline-style: none;
    width: 90%;
    z-index: 10;
}
figure.modal-img > img {
    width: 100%;
}

    dialog.popup-dialog::backdrop {
        background-color: var(--borderBlueAlt);
    }

    dialog.popup-dialog[open] {
        animation: slidedown 1s ease-in forwards;
    }  
    @keyframes fadein{
        0% {
            opacity:0;
        }
        100% {
            opacity:1;
        }
    }
    @keyframes slidedown {
        from {
          margin-top: -100%;
        }
        to {
          margin-top: 0%;
        }
    }

.modal-title {
    border-bottom: solid 1px var(--borderBlue);
    font-size: 1.75rem;
    margin-top: 0;
}


/** Buttons (Accordions & Modals) **/
/* Currently, Icons only used in context of buttons */
.dashicons {
    z-index: 1; /* prevents bleed thru */
}

button.accordion-toggle, 
button.modal-open,
button.modal-close {
	border: none;
	background-color: inherit;
	color: var(--defaultBlue) !important;
	cursor: pointer;
	margin-left: 0.25rem;
    vertical-align: middle;
}
button.modal-close {
	border: solid 1px var(--defaultBlue) !important;
    border-radius: 0.25rem;
}

button.accordion-toggle:hover,
button.modal-open:hover {
    background-color: var(--altPaleBlue);
    border-radius: 0.25rem;
}
button.accordion-toggle:active,
button.accordion-toggle:focus {
    background-color: var(--altPaleBlue);
    border-radius: 0.25rem;
}
button.accordion-close {
    background-color: inherit;
    border: solid 1px var(--defaultBlue);
    border-radius: 0.25rem;
    color: var(--defaultBlue) !important;
    cursor: pointer;
}
    .has-close-button {
        display: inline-block;
        margin-bottom: 0 !important;
        margin-top: 0;
        position: absolute;
            bottom: 0.25rem;
            right: 1rem;
    }
.accordion-toggle[aria-expanded="true"] > span {
    transform: rotate(180deg);
}

/* Modal specific (NOTE: stop rehashing accordion-toggle declarations) */
.modal-open,
.modal-close {
    margin-left: 2px;
}
.modal-close {
    float: right;
}
.modal-open:hover,
.modal-close:hover {
    background-color: var(--altPaleBlue);
    border-radius: 0.25rem;
}
.modal-open:active,
.modal-open:focus,
.modal-close:active,
.modal-close:focus {
    background-color: var(--altPaleBlue);
    border-radius: 0.25rem;
}


/* Parallax 
   Source: https://www.wpbeginner.com/wp-themes/how-to-add-a-parallax-effect-to-any-wordpress-theme/ */
.parallax-box {
    height: 100vh; /* 100% means very short */
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    margin-left:-410px;
    margin-right:-410px;
}      
    .parallax-content { 
        width:50%;
        margin:0 auto;
        color:var(--defaultWhite);
        padding-top:50px; /* causes very short height ???? */
    }
    .parallax-lake-vista {
        background-image: url('./media/okanagan-lake-vista-2500w.webp');
    }
    .parallax-shoreline-vista {
        background-image: url('./media/okanagan-lake-housing-beside-shoreline-2500w.webp');
    }
    .parallax-lakeshore-panorama {
        background-image: url('./media/okanagan-lakeshore-panorama-2500w.webp');
    }
/* possible to hide with z-index and provide accessibility???? */
.parallax-content > img { 
    display: none;
}


/* Scroll-Triggered Animations ****************/
/* Inspiration Source: https://css-tricks.com/scroll-triggered-animation-vanilla-javascript/
    Note: .anim-offset0, .anim-offset1, .anim-offset2 used for JS Observer "threshold/rootMargin" values
    Note: overflow:hidden can block CSS animations (spare container fix)
    NOTE: some transitions for small screens bit early, others bit late */ 
.move-medium {
    transition: transform 0.5s, opacity 0.5s;
}
.move-slow {
    transition: transform 0.75s, opacity 0.75s;
}
.move-fast {
    transition: transform 0.33s, opacity 0.33s;
}
    .move-medium.zoom-out,
    .move-slow.zoom-out,
    .move-fast.zoom-out {
        transform: scale(0.01);
        opacity: 0;
    }
    .move-medium.move-left,
    .move-slow.move-left,
    .move-fast.move-left {
        transform: translateX(-200px);
        opacity: 0;
    }
    .move-medium.move-right,
    .move-slow.move-right,
    .move-fast.move-right {
        transform: translateX(200px);
        opacity: 0;
    }  
    .move-medium.move-down,
    .move-slow.move-down,
    .move-fast.move-down {
        transform: translateY(-200px) scale(0.01);
        opacity: 0;
    }
    .move-medium.move-up,
    .move-slow.move-up,
    .move-fast.move-up {
        transform: translateY(200px) scaleX(0.1);
        opacity: 0;
    }
    .move-medium.do-anim,
    .move-slow.do-anim,
    .move-fast.do-anim {
        transform: translateX(0);
        opacity: 1;
    }


/**** PAGE COMPONENTS **********************/

/* Site Headers *****************************/
.site-header {
    padding-bottom: 20px;
    padding-top: 20px;
}

/* Version with Table of Contents *********/
nav.page-nav {
    position: fixed;
        left: calc(100% - 44px); /* toggle button width */
    z-index: 900;
}
    input.menu-toggle,
    i.menu-icon {
        background-color: var(--altDarkBlue);
        color: var(--defaultWhite);
        font-size: 40px;
        cursor: pointer;
        display: block;
        position: fixed;
            /* right: -58px; -1px makes inviso for SM Screens */
            top: 2rem;
        height: 44px;
        width: 44px;
        z-index: 800;
    }
    input.menu-toggle {
        opacity: 0;
        z-index: 900;
    }
        input.menu-toggle:checked ~ .dashicons-menu::before {
            content: "\f335"; /* "X" */
        } 
        input.menu-toggle:checked ~ ol.toc {
            opacity: 1;
            transform: translateX(0);
        }

ol.toc {
    background-color: var(--altPaleBlue01);
    box-shadow: 0 0 10px 5px var(--defaultBlue);
    color: var(--defaultWhite);
    padding: 0.5rem 0.5rem 2rem 2rem;
    position: fixed;
        top: 4rem; /* brittle? */
        right: 0.25rem;
    opacity: 0;
    transform: translateX(320px); /* must move full width, else invisible links present */
    transition: transform 0.5s, opacity 0.5s;
    width: 320px;  /* flaky magic number? */
    z-index: 900;
}
    .toc > li {
        margin-bottom: 0.5rem;
    }
    .toc > li > a {
        color: var(--defaultWhite);
        display: block;
        padding: 0 0.25rem;
        text-decoration: none;
    }
    .toc > li > a:hover {
        background-color: var(--defaultBlue);
        text-decoration: none;
    }

.site-head-content {
    color: var(--defaultWhite);
    margin-bottom: -118px; /* grid overlays? */
    position: relative;
    z-index: 20;
}
.home-base {
    padding-bottom: 1.6rem;
}
    a.siteheader-title {
        color: var(--defaultWhite) !important;
        display: inline-block;
        font-weight: bold;
        text-decoration: none;	
		pointer-events: none; /* Disable cuz 1 Page Site */
    }

#titleFeatureBox {
    margin-top: 0;
    position: relative;
}
    #titleFeatureBox > .banner-img > img {
        border-radius: 0;
    }
    #titleFeatureBox > .page-title {
        color: var(--defaultWhite);
        font-size: 2rem;
        position: absolute;
        top: 6rem;
        left: 2rem;
    }

.button-box {
    display: none; /* hide for Sm (no room & dupe in footer) */
}
.link-bttn-blue:link {
    background-color: var(--altPaleBlue01);
    border: solid 2px var(--altDarkBlue);
    border-radius: 4px;
    display: block;
    padding: 1.2rem;
    text-align: center;
    text-decoration: none;
}
    .link-bttn-blue:hover {
        background-color: var(--altDarkBlue);
        border: solid 2px var(--altPaleBlue01);
        color: var(--defaultWhite);
    }
span.pdf-note {
    display: block;
}
/* Epilogue version customizations */
.occp-logo {
	background: url(https://lakeshore-living.okcp.ca/wp-content/uploads/2023/07/occp-logo-2020-sm.webp) 0 center no-repeat;
}
.end-button-box {
    margin-top: 3rem !important;
    max-width: 314px !important;
}
.link-bttn-blue > small {
    font-size: 56%;
}
/* Minimalist Version (No TOC; NOTE: Obsolete?) *********/
.minimal-header > .site-header {
    background-color: var(--defaultBlue) !important;
}


/* Site Footer *****************************/
footer.wp-block-template-part {
    position: relative;
}
    .footer-content::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 30px;
        background-size: 40px;
        background-image: radial-gradient(circle at 20px -10px , rgb(249, 249, 249) 24px, transparent 26px);
    }
    .footer-content {
        background-color: var(--defaultBlue);
        border: none;
        color: var(--defaultWhite);
        padding-bottom: 2rem;
        padding-top: 4rem;
    }


/**** MAIN CONTENT STRUCTURES **********************/
main.wp-block-group {
    margin-top: 0;
}
    
/* Know Your Lakeshore Section(s) *********/
#ch1KnowYourLakeshore {
    margin-top: 2.4rem;
}
.know-your-lakeshore > section {
    display: inline-block;
    padding-left: 110px;
    width: 100%;
}
.natural-shoreline {
    background: url('./media/lakeshore-sprite.webp') no-repeat left top;
    height: 125px;
    margin-top: 0;
}
.shoreline-290km {
    background: url('./media/lakeshore-sprite.webp') no-repeat left -130px;
    height: 46px;
}
.shoreline-development {
    background: url('./media/lakeshore-sprite.webp') no-repeat left -175px;
    height: 98px;
}
.biologically-unique {
    background: url('./media/lakeshore-sprite.webp') no-repeat left -275px;
    height: 88px;
}
.kokanee-salmon {
    background: url('./media/lakeshore-sprite.webp') no-repeat left -364px;
    height: 68px;
}
.syilx-territory {
    background: url('./media/lakeshore-sprite.webp') no-repeat left -432px;    
    height: 86px;
}

/* Accordion Fix: otherwise width too small & positioning off */
.natural-shoreline > .accordion,
.shoreline-290km > .accordion,
.shoreline-development > .accordion,
.biologically-unique > .accordion,
.kokanee-salmon > .accordion {
    position: relative;
    left: -7rem;
    width: calc(100% + 7rem);
}
/* Safari */
.know-your-lakeshore > section > .accordion-open {
	display: inline-block;
}


/* Keeping the Lakeshore Natural Section(s) *********/

/* TO-DO: retool? */
/* More of a Utility/Structural-Option (extra container does not block animations) */
.wrap-spare,
.overflow-guard {
    overflow: hidden; 
}

#ch2KeepingLakeshoreNatural > .wrap-spare > .wp-block-media-text {
    grid-template-columns: 44% auto;
    margin-bottom: 2.4rem;
}

#ch2KeepingLakeshoreNatural > .wrap-spare > div > .wp-block-media-text__media,
#ch2KeepingLakeshoreNatural > .wrap-spare > div > .wp-block-media-text__content {
    align-self: start;
}

/* too general? */
.wp-block-media-text__media > img {
	border-radius: 50%;
	margin-bottom: 0;

    align-self: self-start;
}
#ch2KeepingLakeshoreNatural > .wrap-spare > div > .wp-block-media-text__content {
    padding-left: 0;
    padding-right: 0;
}

/* no like margin handling (and again, too general?) */
.wp-block-media-text__content > h3 {
    margin-bottom: 0;
    margin-top: 0;
}
    .wp-block-media-text__content > h3 + p {
        margin-top: 0.25rem; /* against the default */
    }


/* Lakeshore Zones Section *********/
.lakeshore-side-view,
.lakeshore-side-view > figure,
.lakeshore-side-view > figure > img {
    position: relative;
}
    .screech-owls {
        display: flex;
        flex-direction: column; /* row for larger screens */
    }
        .screech-owls > .round-frame + .media-text {
            margin-top: 0;
            margin-left: 0.25rem !important;
        }
        .screech-owls > .round-frame > img {
            border-radius: 50%; /* too fussy? generalize? */
        }
.natural-boundary {
    padding-top: 20px; /* !important cuz smscreen-pad */
    position: relative;
}
    .natural-boundary > .dashicons-arrow-right-alt {
        position: absolute;
        left: 35%;
        transform: rotate(90deg);
        bottom: -1rem;
    }

.zone-info {
    flex-basis: 25%;
    margin-bottom: 0.6rem !important;
}
.zone-info > h3 {
    color: var(--defaultWhite);
    font-size: 1.75rem;
    max-width: 100%;
    margin: 0 !important;
    padding: 1rem 0.5rem;
    text-align: left;
}
    .zone-info > h3 > span {
        display: block;
        font-size: 1.2rem;
        text-align: center;
    }
 
    .upland-zone > h3,
    .riparian-zone > h3,
    .lakeshore-zone > h3,
    .aquatic-zone > h3 {
        background-position: center bottom 0;
        background-repeat: no-repeat;
        padding-bottom: 560px; /* for BG IMGs */
    }
    /* Zone "Quarter" IMGs for Sm Screens */
    .upland-zone > h3 {
        background-color: var(--uplandGreen);
        background-image: url('./media/lakeshore-zone-upland-480w.png');
    }
    .riparian-zone > h3 {
        background-color: var(--riparianOlive);
        background-image: url('./media/lakeshore-zone-riparian-480w.png');
    }
    .lakeshore-zone > h3 {
        background-color: var(--altPaleBlue01);
        background-image: url('./media/lakeshore-zone-lakeshore-510w.png');
    }
    .aquatic-zone > h3 {
        background-image: url('./media/lakeshore-zone-aquatic-480w.png');
        background-color: var(--defaultBlue);
    }
    .zone-info > h3 + .lede {
        margin-top: 0.5rem; /* undone for larger screens */
    }

.zone-info > .lede,
.zone-info > div > .lede,
.zone-info > h4 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    padding-bottom: 1rem;
}
.zone-info > h4 {
    margin-top: 0 !important;
}

.zone-info > .zone-benefits {
    margin-left: 1rem;
    margin-top: 0;
	padding-right: 0.75rem; /* Keeps Accordion Content inside Col */
}
.zone-info > .checkmarks {
    margin: 0 1rem 1rem;
    padding-left: 1rem;
}

.zone-benefits,
.checkmarks {
    padding-left: 0.5rem;
}

.beneficial-practices {
    background-color: var(--riparianOlive);
    color: var(--defaultWhite);
    padding: 1.5rem 0.75rem;
    min-height: 520px; /* move to media query? */
}
.beneficial-practices > h4 {
    color: var(--defaultWhite);
    font-size: 1.5rem;
    padding: inherit 0.33rem;
}

.mussel-action {
    display: block;
    margin: 0 auto;
    padding-bottom: 0.33rem;
    text-align: center;
}
    .mussel-action:hover {
        background-color: var(--altPaleBlue01);
        border-radius: 0.5rem;
    }
.mussels-logo {
	background: var(--defaultWhite);
	border-radius: 50%;
    display: block;
    margin: 0 auto;
}

.takeaction-logo {
	background-color: var(--defaultWhite);
	border-radius: 50%;
	display: inline-block;
	margin-left: calc(50% - 102px);

    max-height: 101px;
    max-width: 102px;
}
    .takeaction-logo > img {
        margin: 0;
    }
/* Sm Screens: detached by thin line from preceding block */
.guide-disclaimer {
    background-color: var(--riparianOlive);
    border-radius: 0 0 1em 1em;
    color: var(--defaultWhite);
    margin-top: 0;
    padding: 1em;
    text-align: center;
}
#shorelineProcesses {
    margin-bottom: 0;
    margin-top: 0;
}


/* Riparian Area Planting Guide ******************/
#ch4PlantingGuide { 
    margin-top: 2.4rem;
    overflow: hidden; /* Somehow not an Animation Blocker */
}
.wp-block-gallery.has-nested-images.planting-guide-gallery > figure.wp-block-image > img {
    border-radius: 50%;
    max-width: 360px !important; /* hacky prevention of upscaling to 414px */
    margin-left: auto; /* keeps text centred after above hackiness */
    margin-right: auto;
}
.wp-block-gallery.planting-guide-gallery > figure.wp-block-image > figcaption {
    top: 80%;
	width: 100%;
	color: var(--altBlack);
	font-size: 1.25em;
	line-height: 1.2;
	text-align: center;
    background: rgba(249,249,249,.9); /* comes from WP preset */
    bottom: auto;
    padding: 0.5rem;
}
/* Override inline styling (note: only 1 gallery, therefore not too general?) */
.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) {
	width: calc(100% - var(--wp--style--unstable-gallery-gap, 16px)/2);
}

/* Utility Class? */
ul.plant-list {
    margin-top: 0.6rem !important;
    padding-left: 1.2rem !important;
}


/* Simple Protective Steps section ******/
.simple-protective-steps {
	display: flex;
	flex-direction: column;
    overflow: hidden;
}

ol.fancy-nums {
    counter-reset: li;
    margin-left: 0;
    margin-top: 0;
    padding-left: 2px;
}
    .fancy-nums.start-3 {
        counter-reset: li 3;
    }
    .fancy-nums > li {
        position: relative;
        margin: 0 0 6px 2em;
        padding: 4px 8px;
        list-style: none;
        min-height: 180px; /* Hacky! */
    }
    .fancy-nums > li::before {
        border-radius: 50%;
        content: counter(li);
        counter-increment: li;
        position: absolute;
        top: 6px;
        left: -2em;
        -moz-box-sizing: border-box;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        width: 2em;
        margin-right: 8px;
        padding: 4px;
        color: var(--defaultWhite);
        background: var(--defaultBlack);
        font-weight: bold;
        font-family: "Helvetica Neue", Arial, sans-serif;
        text-align: center;
    }
    .fancy-nums > li > h3 {
        margin: 0;
    }
    .fancy-nums > li > p {
        margin-top: 0.75rem;
    }


/* Planning to Develop Section **********/
.planning-to-develop {
    color: var(--defaultWhite);
    display: grid;
    grid-template-areas: "overlay";
    justify-content: center;
    margin-top: 3rem;
    overflow: hidden;
}
.planning-to-develop > .overlay-content > h2,
.planning-to-develop > .overlay-content > h3 {
    color: var(--defaultWhite);
}
    .planning-to-develop > .overlay-content {
        grid-area: overlay;
        margin-top: 3rem;
        z-index: 10;
    }
    /* Causing probs with default layout rules */
    .planning-to-develop > .overlay-content,
    .development-activities {
        margin-left: auto;
        margin-right: auto;
        max-width: 94% !important;
    }

    picture.dock-pic {
        display: block;
        width: 100vw;
    }

    .planning-to-develop > picture.dock-pic,
    .planning-to-develop > picture.dock-pic > img {
        grid-area: overlay !important;
    }
    .overlay-content > picture.dock-pic > img {
        z-index: 1;
    }

    picture.dock-pick,
    picture.dock-pick > img {
        grid-area: overlay !important;
    }


/* Epilogue **************************************************/
.epilogue {
    gap: 1.2rem;
}
    .epilogue > .wp-block-column {
        flex-basis:33.34%
    }
.occp-logo {
	background: url('https://lakeshore-living.okcp.ca/wp-content/uploads/2023/07/occp-logo-2020-sm.webp') 0 center no-repeat;
	color: var(--defaultBlack);
	display: inline-block;
	font-size: 20px;
	height: 124px;
	margin-bottom: 1.7em;
	padding: 0.1em 0.25em 0.1em 124px;
	width: 170px;
}
    a.occp-logo:link,
    a.occp-logo:hover,
    a.occp-logo:visited,
    a.occp-logo:active {
        color: var(--defaultBlack) !important;
        text-decoration: none !important;
    }
    a.occp-logo:hover {
        background-color: var(--altPaleBlue02); /* darker shows rough white edges */
        border-radius: 0 0.25em 0.25em 0;
        color: var(--defaultWhite) !important;
        text-decoration: none;
    }
.bcwf-rapp > a,
.bcwf-rapp > a > img {
    border-radius: 50%;
}
.bcwf-rapp > a {
    padding: 2px;
    border-radius: 50%;
}

.partners-attribution {
    background-color: var(--defaultWhite);
    border-radius: 0.5rem;
	display: flex;
        align-items: center;
        flex-direction: column;
}
    .partners-attribution > a:hover {
        background-color: var(--defaultWhite);
    }
.photo-credit {
	color: var(--defaultGrey);
}


/**** 404 Error Page ****************************************/
/* Sticky Footer for this page */
html, body.error404 {
    box-sizing: border-box;
    height: 100%;
    padding: 0;
    margin: 0;
}
.error404 > .wp-site-blocks {
    box-sizing: border-box;
    min-height: 100%;
    display: flex;
    flex-direction: column;
}
.error404 > .wp-site-blocks > header.wp-block-template-part, 
.error404 > .wp-site-blocks > footer.wp-block-template-part {
    flex-grow: 0;
    flex-shrink: 0;
}
.error404 > .wp-site-blocks > main {
    flex-grow: 1;
}


/* Note: needless sandboxing */
.lakeshore-search > .wp-block-search__inside-wrapper > .wp-block-search__button {
    background-color: var(--altPaleBlue01);
}
.lakeshore-search > .wp-block-search__inside-wrapper > .wp-block-search__button:hover {
    background-color: var(--altDarkBlue);
}


/**** Media Queries *****************************************/
/* Breakpoints based on B-strap 5.3 
@media (min-width: 576px) { ... }
// Medium devices (tablets, >= 768px)
@media (min-width: 768px) { ... }
// Large devices (desktops, >= 992px)
@media (min-width: 992px) { ... }
// X-Large devices (large desktops, >= 1200px)
@media (min-width: 1200px) { ... }
// XX-Large devices (larger desktops, >= 1400px)
@media (min-width: 1400px) { ... } */

@media (max-width: 360px) { 
    dialog.popup-dialog[open] {
        max-width: calc(360px - 1rem);
    }
}

/* Basically sm-screen landscape */
@media (min-width: 667px) {
    .natural-shoreline > .accordion,
    .shoreline-290km > .accordion,
    .shoreline-development > .accordion,
    .biologically-unique > .accordion,
    .kokanee-salmon > .accordion {
        left: 0;
        width: auto;
    }

    /* too general? */
    .wp-block-media-text__media > img {
        height: 250px !important;
        width: 250px !important;
    }

    .natural-boundary > .dashicons-arrow-right-alt {
        left: 36.5%;
    }

    .beneficial-practices {
        min-height: 360px;
    }

    .wp-block-columns:not(.is-not-stacked-on-mobile).native-plants > .wp-block-column,
    .wp-block-columns:not(.is-not-stacked-on-mobile).invasive-plants > .wp-block-column {
        flex-basis: 48% !important;
    }
    .wp-block-gallery.has-nested-images.columns-3.planting-guide-gallery figure.wp-block-image:not(#individual-image) {
        width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px)*.5);
    }

    .planning-to-develop > .overlay-content,
    .development-activities {
        max-width: 660px !important;
    }
}


@media (min-width: 768px) {
    h2 { 
        font-size: 3rem;
    }
    .intro-md {
        font-size: 1.95rem;
    }

    #titleFeatureBox > .page-title {
        font-size: 3.25rem;
        top: 10rem;
        left: 1rem;
    }
    .button-box {
        display: block;
    }
    .intro-lg {
        font-size: 2.5rem;
    }

    .wp-block-media-text__media > img {
        height: auto !important;
        width: 275px !important;
    }

    .smscreen-pad {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .smscreen-centre {
        text-align: left !important;
    }

    .lakeshore-side-view {
        padding-top: 16rem; /* make room for positioned elements */
    }
    .land-disturbance {
        background-color: var(--defaultWhite);
        margin-top: 0;
        position: absolute;
            left: 0.5rem;
            top: 0;
        width: 46%;
        z-index: 10;
    }
    .natural-boundary {
        position: absolute;
            left: 7rem;
            top: 13.5rem;
        width: 60%;
        padding-top: 1rem;
        z-index: 10;
    }
        .natural-boundary > .dashicons-arrow-right-alt {
            display: none;
            left: 40%;
        }
    .screech-owls {
        background-color: var(--defaultWhite);
        flex-direction: row;
        margin-top: 0;
        position: absolute;
        top: 0rem;
        right: 0.5rem;
        width: 50%;
        z-index: 10;
    }

    .lakeshore-zones-info {
        margin-top: 0.33rem;
    }

    /* No more Zone Quarters */
    .upland-zone > h3,
    .riparian-zone > h3,
    .lakeshore-zone > h3,
    .aquatic-zone > h3 {
        background-image: none;
        padding-bottom: 1rem;
    }

    .zone-info > h3 {
        min-height: 5rem;
    }
    
    ul.checkmarks {
        max-width: 94%; /* plain width caused problems */
    }

    /* reinstate inline styling */
    .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) {
        width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px)/2);
    }

    .simple-protective-steps {
		flex-direction: row;
		justify-content: space-around;
	}
    ol.fancy-nums {
        padding-left: 0;
    }

    .occp-logo {
        width: 200px;
        margin-left: -2rem;
    }

    .partners-attribution {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: space-between;
        max-width: 100%;
    }
        .partners-attribution > .photo-credit {
            line-height: 1.2;
            padding-left: 1.25em;
            width: 120px;
        }
}

/* Weird breakpoint (WPress and various iPads & Mobile Landscapes) */
@media (min-width: 800px) {
    .zone-info {
        margin-bottom: 0 !important;
    }
    .zone-info > .lede {
        min-height: 4em;
    }
    .zone-info > h3 {
        min-height: 5rem;
    }
    .zone-info > .lede {
        min-height: 10rem;
    }
    .zone-info > h4 {
        min-height: 4rem;
    }
    .zone-info > .zone-benefits {
        min-height: 47.5rem;
    }
    .beneficial-practices {
        min-height: 70rem;
    }

    dialog.popup-dialog[open] {
        max-width: 620px; /* calc(90% - 1rem) */
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .lakeshore-zone > .lede + .accordion-open {
        margin-top: -2rem !important; /* restore to 0.8 for larger */
    }
}


/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) {
    .wp-block-media-text__media > img {
        height: auto !important;
        width: 320px !important;
    }

    .zone-info > .zone-benefits {
        min-height: 36rem;
    }

    .planning-to-develop > .overlay-content,
    .development-activities {
        max-width: 800px !important; /* restores parent-theme/wordpress default */
    }

    dialog.popup-dialog[open] {
        max-width: 660px;
    }

    button.accordion-toggle.in-text {
        margin-left: 0;
    }
}


@media only screen and (min-width: 1024px) {
    #titleFeatureBox > .page-title {
        font-size: 4rem;
        top: 12rem;
        left: 6.5rem;
    }

    .wp-block-media-text__media > img {
        width: 340px !important;
    }

    .lakeshore-side-view {
        padding-top: 4rem;
    }
    .land-disturbance {
        left: 11rem;
        width: 35%;
    }
    .natural-boundary {
        color: var(--defaultWhite);
        left: 1rem;
        top: 17.5rem;
        width: 32%;
    }
        .natural-boundary > .dashicons-arrow-right-alt {
            display: inline-block;
            font-size: 1.75em;
            position: absolute;
                left: 98%;
                top: 0.75rem !important;
            transform: none;
        }
    .screech-owls {
        width: 42%;
    }

    .zone-info > .lede {
        min-height: 7em;
    }
    .zone-benefits {
        min-height: 36rem;
    }
    .zone-info > div.accordion > .lede {
        height: 3em;
    }

    .beneficial-practices {
        min-height: 45rem;
    }
    .zone-info {
        margin-bottom: 0 !important;
    }
    .guide-disclaimer {
        margin-top: -1px;
    }

    .planning-to-develop > .overlay-content, .development-activities {
		max-width: 900px !important;
	}

    .occp-logo {
        margin-left: 0;
    }
}

@media only screen and (min-width: 1201px) {

    input.menu-toggle,
    i.menu-icon {
        right: -1px; /* -1px makes inviso for SM Screens */
    }

    .zone-benefits {
        min-height: 480px;
    }

    .lakeshore-side-view {
        padding-top: 4rem;
    }
    .land-disturbance {
        left: 11rem;
        width: 35%;
    }
    .natural-boundary {
        color: var(--defaultWhite);
        left: 7rem;
        top: 21rem;
        width: 26%;
    }
        .natural-boundary > .dashicons-arrow-right-alt {
            display: inline-block;
            right: 0;
            top: 1rem;
        }
    .screech-owls {
        width: 42%;
    }

    .zone-info > h3 {
        min-height: auto;
    }
    .zone-info > .lede {
        min-height: 6rem;
    }
    .zone-info > h4 {
        min-height: auto;
    }
    .zone-info > .zone-benefits {
        min-height: 27rem;
    }

    ul.checkmarks {
        max-width: 800px; /* restore default */
    }

    .wp-block-gallery.has-nested-images.columns-3.planting-guide-gallery figure.wp-block-image:not(#individual-image) {
        width: calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px)*.66667);
    }

    .fancy-nums > li {
        width: 510px; /* Hacky! */
    }

    dialog.popup-dialog[open] {
        max-width: 820px;
    }
	
	.development-activities {
		margin-top: 2.5rem;
	}
	
	div + .accordion-open {
        margin-top: -2.5rem;
    }
    .lakeshore-zone > .lede + .accordion-open {
        margin-top: -1.6rem !important;
    }
}

/* XX-Large devices (larger desktops, 1400px and up) */
@media (min-width: 1400px) {
    #titleFeatureBox > .page-title {
        top: 20rem;
        left: 32rem;
    }
    .natural-boundary {
        top: 36rem;
        left: 15rem;
    }
    .zone-info > .zone-benefits {
        min-height: 16rem;
    }
    .beneficial-practices {
        min-height: 36rem;
    }
}

/* Target iOS, Safari using, devices */
/* NOTE: V-Studio(?) doesn't accept comma separation */
@supports (hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none) {
	.page-nav { display: none; }
	.parallax-box {
		background-image: none !important;
		height: auto !important;
	}
	.parallax-content {
		width: auto !important;
	}
	.parallax-box > .parallax-content > img {
		display: block  !important;
	}
}
/* Dupe cuz V-Studio disagrees with comma separated Media Queries */
@supports (-webkit-touch-callout: none) {
	.page-nav { display: none; }
	.parallax-box {
		background-image: none !important;
		height: auto !important;
	}
	.parallax-content {
		width: auto !important;
	}
	.parallax-box > .parallax-content > img {
		display: block  !important;
	}
}