/*====================
HERO SECTION WRAPPER
==================== */
.hero-section {
margin: 5px auto 5px;
display: block;
}

.hero-container {
max-width: 1000px;
width: 99%;             
margin: 0 auto;
margin-bottom: 5px;
display: flex;
justify-content: center;
gap: 9px;                
}

/* ====================
HERO MEDIA (image side)
==================== */
.hero-media--square {
  flex: 0 1 470px;       /* adjust to taste */
  min-width: 0;
  align-self: flex-start; /* stops it stretching to the text column's height */
}

.hero-media--square img {
  width: 100%;
  height: auto;           /* lets aspect-ratio control the height */
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}

/*====================
HERO TEXT STACK (right side)
==================== */
   
.hero-text-stack {
flex: 0 1 515px;         /* page-specific */
min-width: 0;
display: flex;
flex-direction: column;
gap: 5px;                /* page-specific */
}

.hero-text-stack .hero-caption {
flex: 0 0 auto;
}

.hero-text-stack .hero-caption img {
width: 100%;
height: auto;
display: block;
margin-bottom: -4px;
filter: drop-shadow(0 0 2px rgba(255, 255, 255, 0.9))
            drop-shadow(0 0 3px rgba(255, 255, 255, 0.6));
}

/* =======
TEXT BOXES
=========*/

.text-box {
flex: 1;
min-height: 0;
border-radius: 20px;
border-width: 3.5px;
border-style: solid;
padding: 5px 5px;        /* page-specific */
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
}

.text-box p {
margin: 0;
font-family: 'Sniglet', arial, sans-serif;
line-height: 1.2;
text-align: center;
}

.text-box-1 { background: #fdfce0; border-color: #2e6b4f; flex: .5; box-shadow: 0 0 4px 2px rgba(255, 245, 150, 0.84); padding: 7px 7px; }
.text-box-1 p { color: #2e6b4f; font-size: 2.6rem; line-height: 1.20; }

.text-box-2 { background: #fbeef5; border-color: #3a3a7c; flex: 1; box-shadow: 0 0 4px 2px rgba(255, 245, 150, 0.84); padding: 5px 5px; }
.text-box-2 p { color: #a85a96; font-size: 2.4rem; line-height: 1.20; }

.text-box-3 { background: #FCF8FF; border-color: #775CA1; flex: 1; box-shadow: 0 0 4px 2px rgba(255, 245, 150, 0.84); padding: 5px 5px; margin-bottom: 5px; }
.text-box-3 p { color: #775CA1; font-size: 2.5rem; line-height: 1.20; }

#fluidity {
--rounded-border-color: #583278;
}

/*===============
MOBILE RESPONSIVE
================*/

@media (max-width: 768px) {

.hero-container {
flex-direction: column;
align-items: center;
padding: 0 2px;
box-sizing: border-box;
}

.hero-media--square {
width: 99%;
max-width: none;
}

.hero-text-stack {
display: contents;
}

.text-box-1 { order: 1; }
.hero-media--square { order: 2; }
.hero-caption { order: 3; }
.text-box-2 { order: 4; }

.text-box-1,
.text-box-2 { 
flex: 0 0 auto; 
}

.text-box p { font-size: 1.6rem; }
.text-box-1 p { font-size: clamp(1.5rem, 4.8vw, 2.4rem); }
.text-box-2 p { font-size: clamp(1.4rem, 5.6vw, 3.6rem); }
}