/* reset script as recommended online */
* {  
	vertical-align: baseline;  
	font-family: inherit;  
	font-style: inherit;  
	font-size: 100%;  
	border: none;  
	padding: 0;  
	margin: 0;  

	/* use border-box model for sizing rather than content-box so padding doesn't add to the size of elements */
	-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
	-moz-box-sizing: border-box;    /* Firefox, other Gecko */
	box-sizing: border-box;         /* Opera/IE 8+ */
}  

body
{
/* Full-screen desktop background, visible around the centered white page. */
background-image: url("images/bg3-bright.webp");
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;
min-height: 100%;

padding:0;
margin:0px auto auto auto;

/* default font details for the site */
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:12px;
color:#514c48; 
}
a{
text-decoration:underline;
color:#D86200; /* default link colour */
}
p, li {
    font-family: Arial, Helvetica, sans-serif;
	font-family: Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif;
    font-size: 18px;      /* Crisp, accessible reading size */
    line-height: 1.6;     /* Adds spacious vertical whitespace between lines */
    margin-bottom: 20px;  /* Pushes paragraphs apart naturally */
}
span{
color:#FF9900;
}
img.left_img{
float:left;
padding:5px 12px 0 0;
}
img {
    max-width: 100%;
    height: auto;
}

/* Image layout helpers: combine one alignment class with an optional numeric width attribute. */
.image-left {
    float: left;
    margin: 0 1rem .5rem 0;
}
.image-right {
    float: right;
    margin: .5rem 0 .5rem 1rem;
}
.image-center {
    display: block;
    float: none;
    margin: 1rem auto;
}
.image-half {
    width: 50%;
}
.image-full {
    display: block;
    width: 100%;
    float: none;
}
h1 { /* for top page header */
    font-family: 'Trebuchet MS', Verdana, sans-serif; /* Dropped Comic Sans for a cleaner look */
    font-size: 46px;      /* Increased from 36px */
    font-weight: bold;
    padding: 17px 0 2px 0;
    margin-bottom: 5px;
	float: left;                   /* ADDED: Keeps the text box contained next to the logo */
    width: calc(100% - 190px);     /* ADDED: Stops the text from expanding over the right white edge */
    color: #d49b00;                /* e6ac00 original, or d49b00 or cc9600 suggests AI to avoid loctrst low contrast issues */
}
.header-contact {
    float: left;
    margin: 0px 0 20px 0; /* No left margin needed; floats natively inline with H1 */
	font-family:Arial, "Helvetica Neue", Helvetica, sans-serif;
    font-size: 17px;
    font-weight: bold;
    color: #e6ac00;
	letter-spacing: 0.5px;
}

h2 { /* for heading below menu */
	clear: both;           /* ADDED: Breaks free from floated header elements above it */
    font-family: 'Trebuchet MS', Verdana, sans-serif;
    font-size: 32px;      /* Increased from 29px */
    font-weight: bold;
    color: #e65c00;       /* Your main title orange color */
	margin: 0 auto 10px auto; 
    text-align: center;
    padding: 25px 20px 10px 20px;
}

h3 { /* headings in description text */
    font-family: Arial, Helvetica, sans-serif;
    font-size: 22px;      /* Increased from 17px to make them true section hooks */
    font-weight: bold;
    padding: 20px 0 5px 0;
    margin: 0;
    color: #514c48;
}

#main_container { /* white page where all content goes */
    width: 95%;            /* Dynamically scales to use 85% of the browser width */
    max-width: 1200px;     /* The hard limit: stops layout expanding on massive screens */
    min-width: 320px;      /* Safety net so it never crushes flat on small mobile screens */
    height: auto;
    margin: 0 auto;        /* Perfectly centers the container horizontally on the screen */
    padding: 20px 40px;    /* Internal space keeping your text safe from the orange edges */
    position: relative;
    box-sizing: border-box; /* Ensures internal padding doesn't widen the container */
}
#main_content {
    width: 100%;           /* Explicitly forces the white area to match the main page container */
    clear: both;           /* Crucial: Forces the white page to drop completely below the floated menu bar */
    display: block;        /* Returns the white container to a standard structural block */
    height: auto;
    background-color: white; 
    overflow: hidden;      /* Safety feature: Ensures all internal columns stay safely inside the white card */
    /* Padding removed from here so header/menu can stretch edge-to-edge */
}


/*--------------------------------------------------------------
  CLEANED HEADER, MENU, AND TWO-COLUMN GRID LAYOUT
--------------------------------------------------------------*/
#banner {
    width: 100%; 
    min-height: 125px;
    margin: 0;
    padding: 10px 0 0 0; 
    float: left;
}

#logo { 
    width: 140px;          
    height: 110px;         
    float: left;
    margin: 10px 25px 0 25px; /* Keeps the gold box perfectly framed */
    background: url("images/logo3-gold2-invert3.jpg") no-repeat center;
    background-size: contain; 
}

#tagline { /* qqq REVIEW: not used in couples-review.html; check other pages before removing. */
    width: calc(100% - 190px); 
    float: left;
    padding: 24px 0px 0 0px;   
    text-align: left;
    color: #e6ac00;        
}

#contact-details { /* qqq REVIEW: not used in couples-review.html; check other pages before removing. */
    width: 100%;           
    clear: both;           
    margin: 8px 0 15px 15px;   /* Tighter top margin to tuck it neatly underneath */
    font-family: Verdana, Arial, Helvetica, sans-serif; /* REVISED: Swapped font family to match homepage text precisely */
    font-size: 16px;          /* REVISED: Scaled to match homepage proportions */
    font-weight: bold;   
    color: #e6ac00;        
}

#page-title { /* qqq REVIEW: not used in couples-review.html; this page uses h2. Check other pages before removing. */
    width: 100%; 
    clear: both;
    height: auto;           
    margin: 0;
    padding: 35px 40px 15px 40px; /* Added 40px to left and right edges */
    text-align: center;
}

/* banner link colors, without format */
a.link-noformat:link, a.link-noformat:visited {
    text-decoration: none;
    color: inherit;
}
a.link-noformat:hover {
    text-decoration: none;
    color: inherit;
    background-color: #ffd966;
}

/*---------------- menu section (links on a bar) ----------------------*/
#menu-bar { 
    width: 100%;
    height: auto;			/* Allow the bar to size itself dynamically, so there's no overflow */
    margin: 0;
    padding: 0;            /* Edge-to-edge tracking across the full white page wrapper */
    background-color: #ff751a; 
    float: left;
    color: white; 
}

/* Navigation bar alignments */
.topnav {
    overflow: hidden;
    box-sizing: border-box;
	
    display: flex;
    justify-content: center;
    align-items: center;
}

.topnav a {
    display: block;
	padding: 15px 15px 10px 15px;  
    color: white;
    text-align: center;
    text-decoration: none;
	font-family:Arial, "Helvetica Neue", Helvetica, sans-serif;
    font-size: 19px;       /* AI suggested 18/19 rather than 17 */
    font-weight: bold;     /* REVISED: Re-applied bold to match the weight of your live links */
    border-right: 1px dashed #cc5200; 		/* Only apply the border to the right side of items */
/*border-left: 1px dashed #cc5200;  		/* ADDED, have line either side of every link */
	border-bottom: 5px solid transparent; 	/* Reserves structural space without showing a line */
}

/* KEEP THIS REMOVED/CLEANED UP: Ensure the navLast selectors are correct  */
.topnav a.navLast, .topnav a.navLastSelected { 
/*    border-right-style: dashed; /* Restored to match the uniform grid borders */
    border-right-style: none;  /* if last link has no separator after it */
}
.topnav a.navLastSelected,
.topnav a.navSelected:link,
.topnav a.navSelected:visited {
    background-color: #ffe7a3;
    color: #514c48;
    border-bottom-color: transparent;
}
.topnav a:hover,
.topnav a.navSelected:hover,
.topnav a.navLastSelected:hover {
    background-color: #ffbf00;
    color: #fff;
    border-bottom-color: #ffbf00;
}
.topnav a:active { 
    background-color: #ffbf00;
}
.topnav .icon { /* qqq REVIEW: legacy icon selector; no .icon element in couples-review.html. Check other pages. */
    display: none;
}

/* qqq REVIEW: divider is commented out in couples-review.html; check other pages before removing. */
.section-divider {
    width: 100%;
    height: 50px; /* Gives the wave layout dimension */
    clear: both;
    margin: 30px auto;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    /* Corrected raw vector wave shape: */
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://w3.org' viewBox='0 0 1200 120' preserveAspectRatio='none'><path d='M0,0 C300,90 900,10 1200,80 L1200,120 L0,120 Z' fill='%23ff751a'/></svg>");
}


/*---------------- UNIVERSAL CONTENT GRID ROW ----------------------*/
.grid-row {
    display: flex;
    flex-wrap: wrap;        
    gap: 60px;              	/* Expands center spacing break wide for layout comfort */
    margin-top: 10px;
    margin-bottom: 30px;
    clear: both;            
    padding: 0 45px;              /* Left and right margins, Keeps text columns aligned inside the white sheet */
}

#left_content {
    flex: 1 1 45%;          
    min-width: 300px;       
}

#right_content {
    flex: 1 1 45%;          
    min-width: 300px;
}

.bulletindent, .bulletindent2 {
    text-align: left;
    line-height: 1.6;
    padding: 8px 0 8px 24px;
    font-size: 16px;
}

/*---------------- footer -------------------*/
#footer {
    width: 100%;
    clear: both;
    padding: 30px 40px;           /* Aligns the footer text perfectly with the columns above */
    text-align: center;
    color: #999999;
    font-size: 12px;
    font-style: italic;
    border-top: 1px solid #eeeeee; /* Light divider line above copyright */
}

/* Compact desktop transition: keep the full navigation on one line at small laptop widths. */
@media screen and (min-width: 1025px) and (max-width: 1160px) {
    #main_container {
        width: 100%;
        padding-right: 20px;
        padding-left: 20px;
    }

    .topnav a {
        padding: 12px 8px 8px;
        font-size: 16px;
    }
}

/*---------------------------------------------------------------------------------------------------------*/
/* RESPONSIVE stuff - all the way to the bottom of the screen zzz */
/* At 1024px and below, use the responsive header and menu. */
/*---------------------------------------------------------------------------------------------------------*/

/* Responsive layout: one coherent mobile override block. */
@media screen and (max-width: 1024px) {
    body {
        background-image: none;
    }

    #main_container {
        position: relative;
        width: 100%;
        min-width: 0;
        padding: 0;
    }

    #main_content {
        clear: both;
        width: 100%;
        height: auto;
        overflow: hidden;
        background: #fff;
    }

    #banner {
        --mobile-logo-width: clamp(88px, 24vw, 150px);
        --header-side-space: calc(var(--mobile-logo-width) + 12px);

        position: relative;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        float: none;
        width: 100%;
        min-height: 200px;
        margin: 0;
        padding: 14px 12px 16px;
        background: url("images/bg3-mobile.webp") no-repeat center bottom;
        background-size: cover;
    }

    /* Give narrow laptop windows a taller crop and keep the sun between title and contact text. */
    @media screen and (min-width: 420px) {
        #banner {
            min-height: clamp(250px, 30vw, 330px);
            background-position: center 50%;
        }
    }

    /* At the widest responsive widths, the title and contact line need less vertical space. */
    @media screen and (min-width: 800px) {
        #banner {
            min-height: clamp(250px, calc(24vw + 30px), 260px);
            background-image: url("images/bg3-wide-mobile.webp");
            background-position: center center;
        }
    }

    #logo {
        position: absolute;
        z-index: 2;
        top: 12px;
        left: 12px;
        display: block;
        float: none;
        width: var(--mobile-logo-width);
        height: clamp(47px, 12.9vw, 80px);
        margin: 0;
        background: url("images/inner-knowing-logo-white.gif") no-repeat center;
        background-size: contain;
    }
    #tagline,
    #contact-details {
        display: none !important;
    }

    #banner h1 {
        float: none !important;
        width: calc(100% - var(--header-side-space) - var(--header-side-space)) !important;
        min-height: 0;
        margin: 0 auto;
        padding: 0;
        color: #fff;
        font-size: clamp(20px, 5vw, 28px);
        line-height: 1.12;
        text-align: center;
        text-shadow: 1px 1px 4px rgb(0 0 0 / 60%);
    }

    #banner .header-contact {
        flex: 0 0 auto;
        float: none !important;
        width: 100% !important;
        margin: auto 0 0;
        padding-top: 14px;
        color: #fff;
        font-size: 16px;
        line-height: 1.45;
        text-align: center;
        text-shadow: 1px 1px 4px rgb(0 0 0 / 60%);
    }

    #banner .header-contact a {
        display: inline !important;
        margin: 0;
        padding: 0;
        color: #fff;
        text-decoration: none;
    }

    #menu-bar {
        position: absolute;
        z-index: 10;
        top: 8px;
        right: 8px;
        width: auto;
        max-width: min(240px, calc(100vw - 16px));
        max-height: none;
        float: none;
        margin: 0;
        padding: 0;
        background: transparent;
    }

    .topnav {
        display: block;
        overflow: visible;
        background: transparent;
    }

    .topnav a {
        display: none;
        float: none;
        padding: 11px 14px;
        border: 0;
        color: #fff;
        font-size: 18px;
        font-weight: normal;
        line-height: 1.35;
        text-align: left;
    }

    .topnav a.navSelected:link,
    .topnav a.navSelected:visited,
    .topnav a.navLastSelected {
        background: #ffe7a3;
        color: #514c48;
    }

    .topnav a:hover,
    .topnav a.navSelected:hover,
    .topnav a.navLastSelected:hover {
        background: #ffbf00;
        color: #fff;
    }

    #icon-container {
        position: relative;
        z-index: 2;
        display: block !important;
        float: right;
        width: 44px;
        height: 44px;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 3px;
        background: transparent !important;
        cursor: pointer;
        appearance: none;
        -webkit-appearance: none;
    }

    #icon-container::before {
        position: absolute;
        top: 9px;
        left: 6px;
        width: 32px;
        height: 26px;
        background: linear-gradient(to bottom,
            #fff 0 5px, transparent 5px 10px,
            #fff 10px 15px, transparent 15px 20px,
            #fff 20px 25px, transparent 25px);
        content: "";
    }

    #icon-container:focus-visible {
        outline: 2px solid #fff;
        outline-offset: 2px;
    }

    .topnav.responsive {
        position: relative;
        display: block;
        width: min(240px, calc(100vw - 16px));
        padding-top: 48px;
        background: #ff751a !important;
        box-shadow: 0 2px 8px rgb(0 0 0 / 25%);
    }

    .topnav.responsive #icon-container {
        position: absolute;
        top: 0;
        right: 0;
    }

    .topnav.responsive #icon-container::before {
        top: 20px;
        left: 7px;
        width: 30px;
        height: 3px;
        background: #fff;
        box-shadow: none;
        transform: rotate(45deg);
    }

    .topnav.responsive #icon-container::after {
        position: absolute;
        top: 20px;
        left: 7px;
        width: 30px;
        height: 3px;
        background: #fff;
        content: "";
        transform: rotate(-45deg);
    }

    .topnav.responsive a {
        display: block;
        float: none;
        padding: 11px 14px;
        color: #fff;
        font-size: 18px;
        line-height: 1.35;
        text-align: left;
    }

    .topnav.responsive a.navSelected:link,
    .topnav.responsive a.navSelected:visited,
    .topnav.responsive a.navLastSelected {
        background: #ffe7a3;
        color: #514c48;
    }

    .topnav.responsive a:hover,
    .topnav.responsive a.navSelected:hover,
    .topnav.responsive a.navLastSelected:hover {
        background: #ffbf00;
        color: #fff;
    }

    .grid-row {
        display: block;
        gap: 0;
        margin: 10px 0 30px;
        padding: 0 15px;
    }

    #left_content,
    #right_content {
        float: none;
        width: 100%;
        min-width: 0;
        padding: 0 2%;
    }

    h2 {
        clear: both;
        margin: 0 auto 10px;
        padding: 25px 20px 10px;
        font-size: 24px;
    }

    h3 {
        font-size: 18px;
    }

    p,
    li {
        font-size: 16px;
    }

    #footer {
        padding: 24px 20px;
    }
}
