/* HOME PAGE STYLES
Load with home.php. The shared navigation has its own navbar.css.
Reusable classes below handle repeated layouts, images and buttons.
*/
/* 1. Page defaults: colours, typography and keyboard focus outlines. */
.botanical-home {
    margin:0;
    background:#f6f4ed;
    color:#253c32;
    font-family:Arial,Helvetica,sans-serif;
    font-size:15px;
    line-height:1.6;
}
.botanical-home * {
    box-sizing:border-box;
}
.botanical-home a {
    color:inherit;
    text-decoration:none;
}
.botanical-home a:focus-visible {
    outline:2px solid currentColor;
    outline-offset:6px;
}
.botanical-home h1,.botanical-home h2,.botanical-home h3,.botanical-home p {
    margin:0;
}
.botanical-home h1,.botanical-home h2,.botanical-home h3 {
    font-family:Georgia,'Times New Roman',serif;
    font-weight:400;
}
/* 2. Reusable classes: add these to any matching home.php element. */
/* spread-row: put children side by side, with space between them.
Used by the collection heading, product name/price rows and footer. */
.spread-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
}

/* home-grid: a shared grid foundation for products and the story section.
Each section sets its own number of columns below. */
.home-grid {
    display: grid;
}

/* cover-image: fill the image container without stretching the photo.
Edges may be cropped. Used by hero, product and story images. */
.cover-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* button-link: shared size and alignment for links styled as buttons.
Add button-outline or button-pill to choose the appearance. */
.button-link {
    justify-content: center;
    text-align: center;
    border: 1px solid currentColor;
    padding: 16px 16px;
    min-width: 235px;
    display: inline-flex;
    align-items: center;
    gap: 36px;
    font-size: 14px;
    transition: background .2s, color .2s;
}

/* button-outline: transparent button, filled brand green on hover. */
.button-outline:hover {
    background: #173f35;
    color: #fffdf4;
}

/* button-pill: rounded white button with centered text and grey hover.
The page prefix lets this override the default link colour. */
.botanical-home .button-pill {
    justify-content: center;
    text-align: center;
    gap: 0;
    border-radius: 999px;
    background: #fff;
    border-color: #fff;
    color: #233f32;
}
.botanical-home .button-pill:hover {
    background: #d8eac2;
    border-color: #e8e8e8;
    transition:transform .2s;
    transform:scale(1.05);
}

/* eyebrow: small uppercase labels, reused above headings and on cards. */
.botanical-home .eyebrow {
    text-transform:uppercase;
    letter-spacing:2.3px;
    font-size:11px;
}

.skip-link {
    position:fixed;
    left:16px;
    top:-100px;
    z-index:100;
    padding:12px;
    background:#fff;
    color:#173f35!important;
}
.skip-link:focus {
    top:12px;
}

/* 3. Hero: one photo, a dark overlay and content placed above it. */
.home-hero {
    position:relative;
    min-height:760px;
    height:100svh;
    max-height:1100px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fffdf4;
    text-align:center;
    padding:240px 24px 100px;
}
.hero-image {
    position:absolute;
    inset:0;
}

/* Keep the enlarged photo inside the hero during its one-time entrance. */
.home-hero {
    overflow: hidden;
}

.hero-enter .hero-image {
    animation: hero-photo-enter 1.8s cubic-bezier(.2, .65, .3, 1) both;
}

.hero-enter .hero-content {
    animation: hero-copy-enter .9s ease-out .15s both;
}

@keyframes hero-photo-enter {
    from { transform: scale(1.08); }
    to { transform: scale(1); }
}

@keyframes hero-copy-enter {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Keep the hero immediately visible when motion is reduced. */
@media (prefers-reduced-motion: reduce) {
    .hero-enter .hero-image,
    .hero-enter .hero-content {
        animation: none;
    }
}
.home-hero:after {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(
        180deg,
        rgba(8,18,12,.94) 0%,
        rgba(11,22,16,.55) 25%,
        rgba(17,28,19,.28) 45%,
        rgba(15,25,18,.56) 100%
    );
}
.hero-content {
    position:relative;
    z-index:1;
}
.hero-content h1 {
    font-size:clamp(48px,5.4vw,82px);
    line-height:1.09;
    letter-spacing:-2px;
    margin:22px 0;
}

.hero-link {
    margin-top:30px;
}

.hero-explore {
    position:absolute;
    bottom:27px;
    z-index:1;
    font-size:16px;
}

.hero-explore:hover{
    position:absolute;
    bottom:27px;
    z-index:1;
    font-size:16px;
    transition:transform .2s;
    transform:scale(1.2);
}

/* 4. Collection: section heading and product-specific details. */
.collection-section {
    padding:50px 5% 95px;
}
.section-heading {
    align-items:end;
    margin-bottom:38px;
}
.section-heading h2 {
    font-size:clamp(30px,3vw,44px);
    line-height:1.2;
    margin-top:12px;
}
.text-link {
    font-size:12px;
    border-bottom:1px solid #253c32;
    padding-bottom:7px;
    white-space:nowrap;
}
.text-link span {
    margin-left:24px;
}

.product-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:28px;
}
.product-image {
    aspect-ratio:1/1.05;
    position:relative;
    overflow:hidden;
    border-radius:12px;
    background:#e9e5da;
}

.product-card:hover img {
    transition:transform .2s;
    transform:scale(1.05);
}

.product-arrow {
    position:absolute;
    right:16px;
    bottom:16px;
    border-radius:50%;
    background:#f6f4ed;
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    font-size:22px;
}
.product-label {
    margin-top:22px!important;
    color:#687165;
}
.product-title {
    align-items:baseline;
    gap:12px;
    margin-top:8px;
}
.product-title h3 {
    font-size:23px;
}
/* Product price displayed beside the product name. */
/* Bold sans-serif price matching the product page. */
.product-price {
    flex-shrink: 0;
    margin: 0;
    color: #173f35;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}
.product-description {
    font-size:12px;
    color:#697166;
    margin-top:10px!important;
}

/* 5. Story: two columns on desktop; stacked on phones. */
.story-section {
    grid-template-columns:1fr 1fr;
    background:#e8e9df;
}
.story-image {
    aspect-ratio:1/1.05;
    position:relative;
    overflow:hidden;
    min-height:590px;
}

.story-image:hover img {
    transition:transform .2s;
    transform:scale(1.05);
}

.story-content {
    padding:75px 15%;
    align-self:center;
}
.story-content h2 {
    font-size:clamp(34px,3.4vw,52px);
    line-height:1.14;
    margin:22px 0 28px;
    letter-spacing:-1px;
}

.story-content h3 {
    margin-bottom:16px;
    color: #384334;
    font-weight: bolder;
}

.story-content>p:not(.eyebrow) {
    font-size:14px;
    margin-bottom:16px;
    color: #384334;
}

/* 6. Brand values and footer. */
.values-strip {
    display:flex;
    justify-content:space-evenly;
    gap:20px;
    padding:30px 5%;
    background: #203c30;
    color: #f6f4ed;
    text-transform:uppercase;
    letter-spacing:2px;
    font-size:10px;
}
.home-footer {
    background:#203c30;
    color:#f6f4ed;
    padding:55px 5%;
    gap:30px;
}
.footer-brand {
    font-family:Georgia,serif;
    font-size:38px;
    line-height:1;
}
.footer-brand small {
    display:block;
    font:9px Arial,sans-serif;
    letter-spacing:4px;
    margin-top:12px;
}
.home-footer p,.home-footer>a {
    font-size:12px;
}

/* anchor-section: leave space for the fixed navbar when following #links. */
.anchor-section {
    scroll-margin-top:20px;
}
/* Responsive sizing: allow grid children to shrink instead of pushing
neighbouring text off-screen. Photos fill their own container only. */
.home-grid > *, .spread-row > * {
    min-width: 0;
}
.story-section {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.story-image {
    position: relative;
    overflow: hidden;
}
.story-image .cover-image {
    position: absolute;
    inset: 0;
}
.product-image .cover-image {
    position: absolute;
}
.story-content, .product-title h3 {
    overflow-wrap: anywhere;
}
.button-link {
    max-width: 100%;
    min-width: min(235px, 100%);
}
@media (max-width: 1000px) {
    /* Stack story earlier, before its text column becomes cramped. */
    .story-section {
        grid-template-columns: minmax(0, 1fr);
    }
    .story-image {
        min-height: 0;
        aspect-ratio: 1.4;
    }
    .story-content {
        padding: 40px 6%;
    }
    .product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 600px) {
    .product-grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .home-hero {
        padding-top: 160px;
        min-height: 650px;
    }
    .hero-content h1 {
        font-size: clamp(36px, 10vw, 49px);
    }
    .product-title {
        flex-wrap: wrap;
    }
    .anchor-section {
        scroll-margin-top: 125px;
    }
}
