@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700;900&family=Merriweather:ital,opsz,wght@0,18..144,300..900;1,18..144,300..900&display=swap');
/* If you use @import for your fonts, it needs to go 
at the top of the CSS file before any other styles. 
Replace the above @import with your own or use <link> elements in the HTML*/

/* 
==========================
CSS Variables
==========================
 Set up variables for colors, fonts, and commonly used measurements (spacing).
 then you  use these variables instead of hard-coded values throughout your CSS.
 That way if you want to change something, you can change it here and it will change everywhere.
 */

:root {
    /* ------------------------------- Colors -----------------------------*/
    /* Base semantic palette */
     
    --primary-color: #324A5F; /* Primary text color (Soft Navy) */
    --primary-bg: #F7F1E5;   /* Primary background color (Cream) */
    --secondary-color: #5A3825; /* Secondary/alternative text color (Chocolate Brown) */
    --secondary-bg: #F1F1F1;   /* Secondary/alternative background color (Light Gray) */
    --accent-color: #E1A700;   /* Accent or brand color (Mustard Yellow) */
    --accent-color2: #6BBF59;  /* Secondary accent color (Fresh Green) */

    /* Link + Button specific tokens */
    --link-color: #D1495B; /* Primary link/action color (Tomato Red) */
    --link-hover-color: #E05A6A; /* Hover/focus */
    --link-visited-color: #A73742; /* Visited state */
    --button-bg: var(--link-color); /* Primary button color (matches link) */
    --button-hover-bg: var(--link-hover-color); /* Hover button color (matches link hover) */
    --button-text-color: #ffffff; /* Accessible contrast on button bg */
    
    /* Secondary link colors for use with secondary-bg color */
    --secondary-link-color: #7E8D4C;        /* Olive Green */
    --secondary-link-hover-color: #9AAA63;  /* Lighter olive */
    --secondary-link-visited-color: #6B7A3E;/* Darker olive */

    /* Header and Footer colors
        If you want these to be different than the rest of the page. 
        you can reuse previous variables or define new ones here */
    --headerFooter-color: #F7F1E5; /* Cream text */
    --headerFooter-bg: #5A3825;    /* Chocolate Brown background */

    /* ------------------------------- Typography -----------------------------*/
    --font-primary: 'Lato', sans-serif;
    --font-heading: 'Merriweather', serif;

    /* Font sizes ----------- */
    /* base font size. This is what rem units are calculated from */
    --font-size-base: 18px;

    /* Text sizes -----------
  these are from the following page. You can go there, change the scale used and then copy and paste the CSS variables to replace these
  https://baseline.is/tools/type-scale-generator/
  Scale used below: 1.3333 - Perfect Fourth
   */
    --text-size-xs: 0.56rem;
    --text-size-sm: 0.75rem;
    --text-size-md: 1rem;
    --text-size-lg: 1.33rem;
    --text-size-xl: 1.78rem;
    --text-size-2xl: 2.37rem;
    --text-size-3xl: 3.16rem;
    --text-size-4xl: 4.21rem;
    --text-size-5xl: 5.61rem;


    /* ------------------------------- Spacing -----------------------------*/
    /* this is calculated as multiples of the base font size */
    --spacing-sm: calc(var(--font-size-base) * 0.5);
    --spacing-md: calc(var(--font-size-base) * 1);
    --spacing-lg: calc(var(--font-size-base) * 2);
    --spacing-xl: calc(var(--font-size-base) * 3);
    --spacing-2xl: calc(var(--font-size-base) * 4);
}

/* ------------ ennd of CSS Variables ------------- */

/* ================================
   Minimal Normalize
   Focus: layout consistency, box sizing, and responsive media.
   ================================ */

/* 1. Use border-box for everything
   ----------------------------------
   Makes sizing predictable: padding and border are included in the width and height.
*/
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* 2. Remove default body margin
   ----------------------------------
   Browsers add margin around <body>.
   Clearing it gives clean layout control.
   Remember to add it back to your design if it needs it!
*/
body {
    margin: 0;
}

/* 3. Inherit fonts for SVG text
   ----------------------------------
   Helpful when using <svg> icons with text, without forcing a browser default font.
*/
svg {
    font: inherit;
}

/* 4. Remove Gap below media
   ----------------------------------
   Remove the gap between audio, canvas, iframes,
   images, videos and the bottom of their containers:
   https://github.com/h5bp/html5-boilerplate/issues/440
 */

audio,
canvas,
iframe,
img,
svg,
video {
    vertical-align: middle;
}

/* 
==========================
General Styles
==========================
These are the styles that you write that will apply to the page. A couple of generally useful styles for responsive design have been added.
*/

html {
    font-size: var(--font-size-base);
}

body {
    font-family: var(--font-primary);
    font-weight: 400;
    line-height: 1.65;
    font-size: var(--text-size-md);
    color: var(--primary-color);
    background: var(--primary-bg);
}

.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: var(--primary-color);
    color: var(--primary-bg);
    padding: var(--spacing-sm);
    z-index: 100;
    text-decoration: none;
}

.skip-link:focus {
    top: 0;
}

p {
    margin-top: 0;
    margin-bottom: var(--spacing-md);
}

li {
    margin-bottom: var(--spacing-md);
    line-height: 1.4;
}

h1,
h2,
h3,
h4,
h5 {
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: var(--spacing-sm);
    margin-top: var(--spacing-xl);
    color: var(--secondary-color);
}

h1,
.text-size-h1 {
    font-weight: 700;
    margin-top: 0;
    font-size: var(--text-size-4xl);
}

h2,
.text-size-h2 {
    font-size: var(--text-size-3xl);
}

h3,
.text-size-h3 {
    font-size: var(--text-size-2xl);
}

h4,
.text-size-h4 {
    font-size: var(--text-size-xl);
}

h5,
.text-size-h5 {
    font-size: var(--text-size-lg);
}

.text-caption {
    font-size: var(--text-size-sm);
}

small,
.text-small {
    font-size: var(--text-size-xs);
}

/* Link states using semantic variables */
a {
    color: var(--link-color);
    text-decoration: underline;
}

a:visited {
    color: var(--link-visited-color);
}

a:hover,
a:focus {
    color: var(--link-hover-color);
}

/* Button styles (basic) */
button,
.btn {
    background: var(--button-bg);
    color: var(--button-text-color);
    padding: var(--spacing-sm) var(--spacing-md);
    border: none;
    border-radius: 4px;
    cursor: pointer;
    line-height: 1.3;
    font-size: var(--text-size-md);
    font-family: var(--font-primary);
    font-weight: 700;
}

button:hover,
.btn:hover,
button:focus,
.btn:focus {
    background: var(--button-hover-bg);
    outline: 2px solid var(--button-hover-bg);
    outline-offset: 2px;
}

/* ------------------- Responsive Media ---------------- 
These settings allow media elements (img, video) to change size as their containing element changes size (which is part of a fluid grid and you want to happen).
*/

/* Make media responsive by default
   ----------------------------------
   max-width: 100% prevents overflow.
   height: auto preserves aspect ratio.
*/
img,
picture,
svg,
video {
    max-width: 100%;
    height: auto;
}

/* Video Embed (youtube or vimeo etc)
   ----------------------------------
   This CSS creates a responsive video embed container that maintains 
   the aspect ratio of the video.
   Use by wrapping your <iframe> embed code in a div with the class "videoWrapper" 
   and an additional class indicating the aspect ratio, 
   e.g., "ratio-16-9" or "ratio-4-3".
   
*/
.videoWrapper {
    position: relative;
    padding-top: 25px;
    height: 0;
}

.videoWrapper.ratio-16-9 {
    padding-bottom: 56.25%;
    /* 16:9 */
}

.videoWrapper.ratio-4-3 {
    padding-bottom: 75%;
    /* 4:3 */
}

.videoWrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
/* =================================
   Heading color fix for dark sections
   ================================= */

/* When headings appear inside header or footer */
header h1,
header h2,
header h3,
header h4,
header h5,
footer h1,
footer h2,
footer h3,
footer h4,
footer h5 {
    color: var(--primary-bg); /* Cream */
}
/* ===============================
   Accordion (Interactive Element)
   =============================== */

.tips {
  padding: 0 var(--spacing-md) var(--spacing-2xl);
}

.tips-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.tips-lead {
  max-width: 720px;
  margin-top: 0;
  margin-bottom: var(--spacing-lg);
}

.accordion {
  max-width: 760px;
}

.accordion-item {
  border: 2px solid rgba(50, 74, 95, 0.12);
  border-radius: 12px;
  background: var(--secondary-bg);
  overflow: hidden;
}

.accordion-item + .accordion-item {
  margin-top: var(--spacing-sm);
}

/* IMPORTANT: higher specificity so it beats base button styles */
.accordion .accordion-trigger {
  width: 100%;
  display: block;
  text-align: left;

  background: transparent !important;
  border: 0;
  border-radius: 0;

  padding: var(--spacing-md);
  cursor: pointer;

  font-family: var(--font-primary);
  font-weight: 700;
  font-size: var(--text-size-md);
  color: var(--secondary-color);

  outline: none;
}

.accordion .accordion-trigger:hover,
.accordion .accordion-trigger:focus-visible {
  background: rgba(90, 56, 37, 0.08) !important;
}

.accordion-panel {
  padding: 0 var(--spacing-md) var(--spacing-md);
  color: var(--primary-color);
}
