/*
Theme Name: Little Bouillon
Theme URI: https://littlebouillon.com
Author: Virginie Robichon
Description: Portfolio photographe/styliste culinaire — scroll horizontal, parallax, architecture SEO.
Version: 5.2.0
Text Domain: littlebouillon
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* ==========================================================================
   0. Reset & Variables
   ========================================================================== */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;color-scheme:light only}

:root {
    color-scheme: light only;
    --bg: #f8f6f3;
    --fg: #0A4D35;
    --accent: #8b6f47;
    --muted: #9a9490;
    --light: #c8c2ba;
    --serif: 'Cormorant Garamond', Georgia, serif;
    --sans: 'Outfit', system-ui, sans-serif;
    --ease: cubic-bezier(.25,.46,.45,.94);
}

html {
    color-scheme: light only;
    background: #f8f6f3 !important;
}

body {
    background: #f8f6f3 !important;
    color: var(--fg);
    font-family: var(--sans);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    line-height: 1.6;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

/* ==========================================================================
   1. Grain overlay
   ========================================================================== */

.grain {
    position: fixed;
    inset: 0;
    z-index: 9998;
    pointer-events: none;
    opacity: .012;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    background-repeat: repeat;
    background-size: 256px;
}

/* ==========================================================================
   2. Progress bar
   ========================================================================== */

.pbar {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 101;
    height: 2px;
    background: var(--accent);
    width: 0%;
    transition: width .1s linear;
}

/* ==========================================================================
   3. Navigation
   ========================================================================== */

.nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    padding: 1.6rem 3rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: rgba(248,246,243,.92);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    border-bottom: 1px solid rgba(0,0,0,.03);
}

.nav-logo {
    font-family: var(--serif);
    font-size: 1.3rem;
    font-weight: 300;
    letter-spacing: .15em;
    text-transform: lowercase;
    color: var(--fg);
}

.nl {
    display: flex;
    gap: 2.5rem;
    list-style: none;
    align-items: center;
}

.nl > li {
    position: relative;
}

.nl a {
    font-size: .72rem;
    font-weight: 300;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--fg);
    cursor: pointer;
    transition: color .3s;
    padding-bottom: 4px;
}

.nl a:hover {
    color: var(--accent);
}

/* Dropdown trigger */
.dd-t {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.dd-t svg {
    width: 10px;
    height: 10px;
    stroke: var(--fg);
    stroke-width: 2;
    fill: none;
    transition: transform .3s;
}

.nl > li:hover .dd-t svg {
    transform: rotate(180deg);
    stroke: var(--accent);
}

/* Dropdown panel */
.dd {
    position: absolute;
    top: calc(100% + 1rem);
    left: -1rem;
    min-width: 280px;
    background: rgba(248,246,243,.97);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(0,0,0,.06);
    border-radius: 4px;
    padding: .8rem 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: all .3s;
    box-shadow: 0 8px 30px rgba(0,0,0,.06);
}

.nl > li:hover .dd {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.dd a {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: .6rem 1.3rem;
    font-size: .68rem;
    color: var(--muted);
    transition: all .2s;
    white-space: nowrap;
}

.dd a:hover {
    color: var(--accent);
    background: rgba(139,111,71,.04);
    padding-left: 1.5rem;
}

.dd-n {
    font-size: .58rem;
    color: var(--light);
    min-width: 1.2rem;
}

.dd-sep {
    height: 1px;
    background: rgba(0,0,0,.06);
    margin: .4rem 1.3rem;
}

.dd-all {
    color: var(--accent) !important;
}

/* Burger */
.burger {
    display: none;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
    padding: 8px;
    z-index: 101;
    background: none;
    border: none;
}

.burger span {
    width: 22px;
    height: 1px;
    background: var(--fg);
    transition: all .3s;
    display: block;
}

.burger.open span:nth-child(1) {
    transform: rotate(45deg) translate(4px, 4px);
}

.burger.open span:nth-child(2) {
    opacity: 0;
}

.burger.open span:nth-child(3) {
    transform: rotate(-45deg) translate(4px, -4px);
}

/* Mobile menu overlay */
.mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 99;
    background: #f8f6f3 !important;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    gap: 1rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity .4s, visibility .4s;
    padding: 5rem 2rem 2rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.mobile-menu.open {
    opacity: 1;
    visibility: visible;
}

.mobile-menu .mm-univers a {
    display: block;
    font-family: var(--serif);
    font-size: clamp(1.3rem, 4vw, 1.8rem);
    font-weight: 300;
    color: var(--fg);
    text-align: center;
    padding: .2rem 0;
    transition: color .3s;
}

.mobile-menu .mm-univers a em {
    font-style: italic;
    color: var(--accent);
}

.mobile-menu .mm-sep {
    width: 40px;
    height: 1px;
    background: var(--light);
    margin: .5rem auto;
}

.mobile-menu .mm-pages a {
    display: block;
    font-family: var(--sans);
    font-size: .8rem;
    font-weight: 300;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--muted);
    text-align: center;
    padding: .5rem 0;
    transition: color .3s;
}

.mobile-menu .mm-pages a:hover,
.mobile-menu .mm-univers a:hover {
    color: var(--accent);
}

/* ==========================================================================
   4. Scroll indicator
   ========================================================================== */

.scroll-i {
    position: fixed;
    bottom: 4rem;
    left: 3rem;
    z-index: 90;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.scroll-i span {
    font-size: .63rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 300;
}

.s-line {
    width: 50px;
    height: 1px;
    background: var(--light);
    position: relative;
    overflow: hidden;
}

.s-line::after {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--accent);
    animation: sp 2s ease-in-out infinite;
}

@keyframes sp {
    0%   { transform: translateX(-100%); }
    50%  { transform: translateX(0); }
    100% { transform: translateX(100%); }
}

/* ==========================================================================
   5. Hero (Homepage)
   ========================================================================== */

.hero {
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    position: relative;
    overflow: hidden;
    background-color: var(--bg) !important;
    margin-bottom: 8rem;
}

/* When carousel is active, bg must not block images */
.hero--has-bg {
    background-color: #000 !important;
}

/* Hero carousel — layer 0 */
.hero-carousel {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.hero-slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 1.2s ease;
}

.hero-slide.active {
    opacity: 1;
}

/* Hero overlay — layer 1 */
.hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

/* Hero content — layer 2, with text box */
.hero-content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* Text box (only when carousel is active) */
.hero--has-bg .hero-content {
    background: var(--hero-box-bg, rgba(248,246,243,.35));
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 2.5rem 4rem;
    border-radius: 6px;
    max-width: 700px;
}

.hero-bg {
    position: absolute;
    font-family: var(--serif);
    font-size: clamp(6rem, 18vw, 16rem);
    font-weight: 300;
    color: rgba(0,0,0,.03);
    white-space: nowrap;
    user-select: none;
}

.hero h1 {
    font-family: var(--serif);
    font-size: clamp(2.2rem, 5.5vw, 5rem);
    font-weight: 300;
    line-height: 1.1;
    text-align: center;
    color: var(--fg);
}

.hero h1 em {
    font-style: italic;
    color: var(--accent);
}

.hero-sub {
    margin-top: 2rem;
    font-size: .7rem;
    font-weight: 200;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--fg);
    text-align: center;
    max-width: 650px;
    line-height: 2;
}

.hero-line {
    width: 1px;
    height: 80px;
    background: var(--light);
    margin-top: 2rem;
}

.hero--has-bg .hero-line {
    display: none;
    transform: scaleY(0);
    transform-origin: top;
}

/* ==========================================================================
   6. Homepage — vertical stack of horizontal scroll sections
   ========================================================================== */

.hp-univers {
    position: relative;
    margin-bottom: 3rem;
}

.hp-univers.hp-univers-desktop:first-of-type {
    /* handled by .hero margin-bottom */
}

/* Decorative large scrolling text behind images */
.hp-univers-deco {
    position: absolute;
    top: 50%;
    left: 10%;
    transform: translateY(-50%);
    font-family: var(--deco-font, var(--serif));
    font-size: var(--deco-size, clamp(5rem, 12vw, 10rem));
    font-weight: 300;
    color: var(--deco-color, rgba(0,0,0,.03));
    opacity: var(--deco-opacity, 1);
    white-space: nowrap;
    pointer-events: none;
    z-index: 0;
    will-change: transform;
    -webkit-transform: translateY(-50%) translateZ(0);
    transform: translateY(-50%) translateZ(0);
}

.hp-univers-header {
    display: inline-block;
    margin-left: 5vw;
    margin-bottom: 1rem;
    padding: .8rem 1.5rem .6rem;
    background: rgba(248,246,243,.75);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-radius: 4px;
}

.hp-univers-header .up-title {
    transition: color .3s;
}

.hp-univers-header .up-title:hover {
    color: #1a7a56;
}

.hp-univers-header .up-label {
    transition: text-decoration .3s;
    text-decoration: none;
}

.hp-univers-header .up-label:hover {
    text-decoration: underline;
    text-underline-offset: .3em;
}

.hp-univers-track {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0 5vw 1rem;
    align-items: center;
    gap: 1.5rem;
    cursor: ew-resize;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.hp-univers-track::-webkit-scrollbar { display: none; }

/* Scroll progress indicator */
.hp-scroll-bar {
    width: 300px;
    height: 2px;
    background: var(--light);
    border-radius: 2px;
    margin: .8rem auto 0;
    position: relative;
    opacity: .6;
}

.hp-scroll-thumb {
    width: 60px;
    height: 2px;
    background: var(--accent);
    border-radius: 2px;
    transition: transform .15s ease-out;
}

/* Vertical position — all on same line */
.pc.pc-v-top,
.pc.pc-v-center,
.pc.pc-v-bottom { align-self: center; margin: 0; }

/* Mobile: hide desktop scroll, show hero card */
.hp-univers-mobile { display: none; }

@media (max-width: 900px) {
    .hp-univers-desktop { display: none !important; }
    .hp-univers-mobile {
        display: block;
        color: inherit;
        text-decoration: none;
        margin-bottom: 1.5rem;
    }
    .hp-univers-mobile-img {
        width: 100%;
        overflow: hidden;
        border-radius: 3px;
        box-shadow: 0 4px 25px rgba(0,0,0,.06);
    }
    .hp-univers-mobile-img img {
        width: 100%;
        height: auto;
        display: block;
        transition: transform .6s var(--ease);
    }
    .hp-univers-mobile:hover .hp-univers-mobile-img img {
        transform: scale(1.02);
    }
    .hp-univers-mobile-text {
        padding: 1.2rem 1.5rem 2rem;
    }
}

/* ==========================================================================
   6b. Homepage horizontal scroll (legacy)
   ========================================================================== */

.hw {
    overflow: hidden;
    background: #f8f6f3 !important;
}

.ht {
    display: flex;
    width: max-content;
    padding: 0 8vw;
    align-items: center;
    min-height: 100vh;
}

/* Panel separator */
.ps {
    flex-shrink: 0;
    width: 15vw;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.psl {
    width: 1px;
    height: 22vh;
    background: linear-gradient(to bottom, transparent, var(--light), transparent);
}

/* Universe panel */
.up {
    flex-shrink: 0;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 0 4vw;
    cursor: pointer;
}

.up:hover .up-label {
    letter-spacing: .35em;
}

/* Panel grid */
.up-grid {
    display: grid;
    gap: 2rem;
    height: 72vh;
}

.up-grid > div {
    overflow: hidden;
    border-radius: 3px;
}

.up-grid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    box-shadow: 0 6px 35px rgba(0,0,0,.08);
    transition: transform .8s var(--ease);
    border-radius: 3px;
}

.up:hover .up-grid img {
    transform: scale(1.02);
}

/* Grid layouts by image count */
.up[data-count="2"] .up-grid { grid-template-columns: .55fr .45fr; width: 60vw; }
.up[data-count="3"] .up-grid { grid-template-columns: 1fr .6fr .6fr; width: 78vw; }
.up[data-count="4"] .up-grid { grid-template-columns: 1fr .7fr .7fr; grid-template-rows: 1fr 1fr; width: 82vw; }
.up[data-count="4"] .up-grid > *:first-child { grid-row: 1/3; }
.up[data-count="5"] .up-grid { grid-template-columns: .8fr .6fr .6fr .5fr; grid-template-rows: 1fr 1fr; width: 88vw; }
.up[data-count="5"] .up-grid > *:first-child { grid-row: 1/3; }
.up[data-count="5"] .up-grid > *:nth-child(4) { grid-row: 1/3; }
.up[data-count="6"] .up-grid { grid-template-columns: .8fr .5fr .5fr .7fr; grid-template-rows: 1fr 1fr; width: 92vw; }
.up[data-count="6"] .up-grid > *:first-child { grid-row: 1/3; }
.up[data-count="6"] .up-grid > *:last-child { grid-row: 1/3; }

/* Panel overlay text — with background for readability */
.up-ov {
    position: absolute;
    bottom: 8vh;
    left: 4vw;
    z-index: 10;
    pointer-events: none;
    background: var(--up-ov-bg, rgba(248,246,243,0.85));
    padding: 1.5rem 2rem 1.2rem;
    border-radius: 4px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.up-num {
    font-size: .68rem;
    font-weight: 300;
    letter-spacing: .25em;
    color: var(--accent);
    margin-bottom: .7rem;
    display: block;
}

.up-title {
    font-family: var(--serif);
    font-size: clamp(2rem, 4vw, 3.5rem);
    font-weight: 300;
    line-height: 1.08;
    color: var(--fg);
    margin-bottom: .5rem;
    text-decoration: none;
    display: block;
}

.up-title em {
    font-style: italic;
    color: var(--accent);
}

.up-desc {
    font-size: .78rem;
    font-weight: 200;
    color: var(--muted);
    line-height: 1.5;
    margin-bottom: .6rem;
    max-width: 300px;
}

.up-label {
    font-size: .65rem;
    font-weight: 300;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--muted);
    text-decoration: none;
    display: inline-block;
    transition: letter-spacing .6s;
}

/* Parallax floating elements */
.pf {
    position: absolute;
    pointer-events: none;
}

.pf.ci {
    width: 160px;
    height: 160px;
    border: 1px solid rgba(139,111,71,.06);
    border-radius: 50%;
}

.pf.tf {
    font-family: var(--serif);
    font-size: clamp(3.5rem, 7vw, 6rem);
    font-weight: 300;
    color: rgba(0,0,0,.018);
    white-space: nowrap;
}

/* Video play button */
.vp {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3;
}

.vp-btn {
    width: 65px;
    height: 65px;
    border: 2px solid rgba(255,255,255,.65);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .4s;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    background: rgba(0,0,0,.12);
}

.vp-btn svg {
    width: 20px;
    height: 20px;
    fill: #fff;
    margin-left: 3px;
}

.up:hover .vp-btn {
    border-color: #fff;
    transform: scale(1.08);
    background: rgba(0,0,0,.25);
}

/* ==========================================================================
   7. Mobile universe cards (homepage)
   ========================================================================== */

.mu {
    display: none;
    padding: 0 1.5rem;
}

.mc {
    width: 100%;
    cursor: pointer;
    display: block;
    color: inherit;
}

.mc-img {
    width: 100%;
    overflow: hidden;
    border-radius: 3px;
    box-shadow: 0 4px 25px rgba(0,0,0,.06);
}

.mc-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mc-text {
    padding: 1.5rem 1.5rem 2.5rem;
}

.mc-num {
    font-size: .55rem;
    letter-spacing: .2em;
    color: var(--accent);
    display: block;
    margin-bottom: .4rem;
}

.mc-title {
    font-family: var(--serif);
    font-size: 1.5rem;
    font-weight: 300;
    line-height: 1.2;
    color: var(--fg);
    margin-bottom: .3rem;
}

.mc-title em {
    font-style: italic;
    color: var(--accent);
}

.mc-desc {
    font-size: .75rem;
    font-weight: 200;
    color: var(--muted);
    line-height: 1.6;
    margin-bottom: .6rem;
}

.mc-cta {
    font-size: .6rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--accent);
}

.mc-sep {
    width: 40px;
    height: 1px;
    margin: 1.5rem auto;
    background: linear-gradient(to right, transparent, var(--light), transparent);
}

/* ==========================================================================
   8. Universe page — intro + fixed filter bar
   ========================================================================== */

.u-intro {
    padding: 11.4rem 5vw 1.5rem;
    max-width: 900px;
}

.u-back {
    font-size: .68rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 2rem;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    cursor: pointer;
    transition: color .3s;
}

.u-back:hover {
    color: var(--accent);
}

.u-intro h1 {
    font-family: var(--serif);
    font-size: clamp(1.4rem, 3vw, 2rem);
    font-weight: 300;
    line-height: 1.2;
    margin-bottom: .6rem;
    color: var(--fg);
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0 .4em;
}

.u-intro h1 em {
    font-style: italic;
    color: var(--accent);
}

.u-desc {
    font-weight: 300;
    line-height: 1.7;
    color: var(--fg);
    font-size: .9rem;
    max-width: 650px;
    margin-bottom: .6rem;
}

.u-desc p { margin: 0 0 .4rem; }

.u-intro p {
    font-weight: 200;
    line-height: 1.9;
    color: var(--muted);
    font-size: .85rem;
    max-width: 600px;
}

.u-hero-img {
    width: 100%;
    max-height: 50vh;
    overflow: hidden;
    border-radius: 4px;
    margin: 2rem 0;
}

.u-hero-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Fixed filter bar */
.sf-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 90;
    background: rgba(248,246,243,.97);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    padding: 5.5rem 5vw 1.2rem;
    transform: translateY(-100%);
    opacity: 0;
    transition: transform .4s ease, opacity .4s ease;
    pointer-events: none;
}

.sf-bar.visible {
    transform: translateY(0);
    opacity: 1;
    pointer-events: all;
}

/* Back link inside filter bar */
.sf-back {
    display: inline-block;
    font-size: .63rem;
    font-weight: 300;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: .8rem;
    transition: color .3s;
}

.sf-back:hover {
    color: var(--accent);
}

.sf-top-row {
    display: flex;
    align-items: center;
    gap: 2rem;
    margin-bottom: .8rem;
    flex-wrap: nowrap;
}

.sf-top-row .sf-back {
    white-space: nowrap;
    flex-shrink: 0;
}

.sf-top-row .breadcrumb {
    margin-bottom: 0;
    white-space: nowrap;
    color: var(--fg);
    font-weight: 400;
}

.sf-top-row .breadcrumb a {
    color: var(--fg);
    opacity: .6;
}

.sf-top-row .breadcrumb a:hover {
    opacity: 1;
}

.sf-top-row .breadcrumb-sep {
    color: var(--fg);
    opacity: .3;
}

.sf-inner {
    display: flex;
    gap: .5rem;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.sf-inner::-webkit-scrollbar { display: none; }

.sf {
    font-family: var(--sans);
    font-size: .63rem;
    font-weight: 300;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted);
    padding: .45rem 1.1rem;
    border: 1px solid transparent;
    border-radius: 20px;
    transition: all .3s;
    cursor: pointer;
    background: transparent;
    white-space: nowrap;
    flex-shrink: 0;
}

.sf:hover {
    color: var(--accent);
    border-color: rgba(139,111,71,.2);
}

.sf.active {
    color: var(--accent);
    border-color: var(--accent);
    background: rgba(139,111,71,.04);
}

.sf-c {
    font-size: .5rem;
    color: var(--light);
    margin-left: .2rem;
}

/* ==========================================================================
   9. Universe page — horizontal project scroll
   ========================================================================== */

.p-hw {
    overflow: hidden;
    padding: 0;
    margin-top: 0;
}

.p-track {
    display: flex;
    width: max-content;
    padding: 10rem 8vw 3rem;
    align-items: center;
    gap: 5vw;
    min-height: 100vh;
    will-change: transform;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

/* Universe title overlay (fixed during horizontal scroll) */
.u-title-float {
    position: fixed;
    top: auto;
    bottom: 3rem;
    right: 3rem;
    z-index: 80;
    background: rgba(248,246,243,.88);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    padding: 1rem 1.8rem;
    border-radius: 4px;
    opacity: 0;
    visibility: hidden;
    transition: opacity .4s ease, visibility .4s ease;
    pointer-events: none;
}

.u-title-float.visible {
    opacity: 1;
    visibility: visible;
}

.u-title-float span {
    font-family: var(--serif);
    font-size: 1.1rem;
    font-weight: 400;
    color: var(--fg);
}

.u-title-float em {
    color: var(--accent);
    font-style: italic;
}

.pc {
    flex-shrink: 0;
    cursor: pointer;
    transition: opacity .4s, transform .4s;
    display: block;
    color: inherit;
    height: 500px;
}

/* Image wrapper with hover overlay */
.pc-img-wrap {
    position: relative;
    overflow: hidden;
    border-radius: 3px;
    height: 100%;
    box-shadow: 0 4px 25px rgba(0,0,0,.08);
    background: linear-gradient(90deg, #f0ece7 25%, #e8e3dc 50%, #f0ece7 75%);
    background-size: 200% 100%;
    animation: lb-shimmer 1.5s ease infinite;
}

@keyframes lb-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.pc-img-wrap img {
    height: 100%;
    width: auto;
    display: block;
    transition: transform .6s var(--ease), filter .4s ease, opacity .4s ease;
    border-radius: 3px;
    opacity: 0;
}

.pc-img-wrap img.is-loaded {
    opacity: 1;
}

.pc:hover .pc-img-wrap img {
    transform: scale(1.03);
    filter: brightness(0.45);
}

/* Hover: category name on image */
.pc-hover-name {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1rem;
    color: #fff;
    font-family: var(--serif);
    font-size: clamp(1rem, 2vw, 1.4rem);
    font-weight: 400;
    font-style: italic;
    letter-spacing: .02em;
    opacity: 0;
    transition: opacity .4s ease;
    z-index: 3;
    pointer-events: none;
}

.pc:hover .pc-hover-name {
    opacity: 1;
}

/* Hover overlay: title + subcategory (universe page) */
.pc-hover-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 2rem;
    opacity: 0;
    transition: opacity .4s ease;
    z-index: 2;
}

.pc:hover .pc-hover-overlay {
    opacity: 1;
}

.pc-hover-title {
    font-family: var(--serif);
    font-size: clamp(1.3rem, 2.5vw, 2rem);
    font-weight: 400;
    color: #fff;
    line-height: 1.15;
    margin-bottom: .5rem;
}

.pc-hover-cat {
    font-size: .6rem;
    font-weight: 300;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: rgba(255,255,255,.7);
}

/* Legacy img style (for cards without .pc-img-wrap) */
.pc > img {
    border-radius: 3px;
    object-fit: cover;
    transition: transform .6s var(--ease);
    box-shadow: 0 4px 25px rgba(0,0,0,.08);
}

.pc:hover > img {
    transform: scale(1.02);
}

.pc-info {
    padding: 1rem 0;
}

.pc-name {
    font-family: var(--serif);
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--fg);
    line-height: 1.2;
}

.pc-sub {
    font-size: .65rem;
    color: var(--muted);
    font-weight: 200;
}

.pc-tag {
    font-size: .5rem;
    font-weight: 400;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--accent);
    margin-top: .2rem;
    display: block;
}

/* Card sizes no longer needed — all cards auto-width from image proportions */

/* ==========================================================================
   9b. Universe page — Image grids + chevron navigation
   ========================================================================== */

.u-grids-wrap {
    position: relative;
    min-height: 50vh;
    margin-top: 2rem;
    padding: 0 5vw;
}

/* Grid containers — only active one visible */
.u-grid-page {
    display: none;
    opacity: 0;
    transition: opacity .4s ease;
}

.u-grid-page.active {
    display: block;
    opacity: 1;
}

/* Common grid cell */
.u-grid-cell {
    overflow: hidden;
    border-radius: 4px;
    box-shadow: 0 4px 25px rgba(0,0,0,.06);
    background: linear-gradient(90deg, #f0ece7 25%, #e8e3dc 50%, #f0ece7 75%);
    background-size: 200% 100%;
    animation: lb-shimmer 1.5s ease infinite;
}

.u-grid-cell img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .6s var(--ease), opacity .4s ease;
    opacity: 0;
}

.u-grid-cell img.is-loaded {
    opacity: 1;
}

.u-grid-cell:hover img.is-loaded {
    transform: scale(1.03);
}

/* 10-image grid layout */
.u-grid-inner--10 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(4, 22vh);
    gap: .8rem;
    max-width: 1200px;
    margin: 0 auto;
}

.u-grid-inner--10 .u-grid-cell:nth-child(1) { grid-column: 1 / 3; grid-row: 1 / 3; }
.u-grid-inner--10 .u-grid-cell:nth-child(5) { grid-column: 4; grid-row: 2 / 4; }
.u-grid-inner--10 .u-grid-cell:nth-child(7) { grid-column: 2 / 4; grid-row: 3; }
.u-grid-inner--10 .u-grid-cell:nth-child(10) { grid-column: 3 / 5; grid-row: 4; }

/* 4-image grid layout */
.u-grid-inner--4 {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    grid-template-rows: 28vh 28vh 35vh;
    gap: .8rem;
    max-width: 1000px;
    margin: 0 auto;
}

.u-grid-inner--4 .u-grid-cell:nth-child(1) { grid-column: 1; grid-row: 1 / 3; }
.u-grid-inner--4 .u-grid-cell:nth-child(4) { grid-column: 1 / 3; grid-row: 3; }

/* 10-regular: 2 rows × 5 columns, all portrait */
.u-grid-inner--10r {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    grid-template-rows: repeat(2, 35vh);
    gap: .8rem;
    max-width: 1200px;
    margin: 0 auto;
}

/* 4-regular: 2 rows × 2 columns, all landscape */
.u-grid-inner--4r {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(2, 35vh);
    gap: .8rem;
    max-width: 1000px;
    margin: 0 auto;
}

/* Chevron buttons */
.u-chev {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    z-index: 50;
    width: 48px;
    height: 48px;
    border: 1px solid var(--light);
    border-radius: 50%;
    background: rgba(248,246,243,.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .3s;
    color: var(--fg);
}

.u-chev:hover {
    border-color: var(--accent);
    color: var(--accent);
}

.u-chev svg {
    width: 20px;
    height: 20px;
    stroke: currentColor;
    stroke-width: 2;
    fill: none;
}

.u-chev--left { left: 1.5rem; }
.u-chev--right { right: 1.5rem; }

.u-autoplay-toggle {
    position: fixed;
    top: 6.5rem;
    right: 1.5rem;
    z-index: 50;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--light);
    background: rgba(248,246,243,.85);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-radius: 50%;
    cursor: pointer;
    color: var(--fg);
    font-size: 12px;
    transition: border-color .3s;
}

.u-autoplay-toggle:hover {
    border-color: var(--accent);
}

.u-chev:disabled {
    opacity: .25;
    cursor: default;
    pointer-events: none;
}

/* Sub-universe title separator */
.u-sep {
    color: var(--light);
    margin: 0 .5rem;
    font-weight: 300;
}

@media (max-width: 900px) {
    .u-grid-inner--10 {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
    }
    .u-grid-inner--10 .u-grid-cell {
        grid-column: auto !important;
        grid-row: auto !important;
        aspect-ratio: 3/4;
    }
    .u-grid-inner--10 .u-grid-cell:nth-child(1) {
        grid-column: 1 / -1 !important;
        aspect-ratio: 16/10;
    }

    .u-grid-inner--4 {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }
    .u-grid-inner--4 .u-grid-cell {
        grid-column: auto !important;
        grid-row: auto !important;
        aspect-ratio: 4/3;
    }

    .u-grid-inner--10r {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto;
    }
    .u-grid-inner--10r .u-grid-cell { aspect-ratio: 3/4; }

    .u-grid-inner--4r {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }
    .u-grid-inner--4r .u-grid-cell { aspect-ratio: 4/3; }

    .u-chev { width: 38px; height: 38px; }
    .u-chev--left { left: .8rem; }
    .u-chev--right { right: .8rem; }
    .u-grids-wrap { padding: 0 1.5rem; }
}

/* Lightbox */
.lb-lightbox {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: rgba(0,0,0,.9);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    opacity: 0;
    transition: opacity .3s ease;
    cursor: pointer;
}

.lb-lightbox.active { opacity: 1; }

.lb-lightbox img {
    max-width: 90vw;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 4px;
    box-shadow: 0 8px 60px rgba(0,0,0,.4);
}

.lb-lightbox-close {
    position: absolute;
    top: 1.5rem;
    right: 2rem;
    width: 44px;
    height: 44px;
    background: none;
    border: 1px solid rgba(255,255,255,.3);
    border-radius: 50%;
    color: #fff;
    font-size: 24px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color .3s;
}

.lb-lightbox-close:hover { border-color: #fff; }

/* ==========================================================================
   10. Universe page — after scroll (SEO + other universes)
   ========================================================================== */

.u-after {
    max-width: 1200px;
    margin: 0 auto;
    padding: 4rem 5vw;
}

.u-breadcrumb-bottom {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem 5vw 0;
}

.u-seo {
    max-width: 750px;
    margin-bottom: 4rem;
}

.u-seo h2 {
    font-family: var(--serif);
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    font-weight: 300;
    margin-bottom: 1.2rem;
    color: var(--fg);
}

.u-seo h2 em { color: var(--accent); }

.u-seo p {
    font-weight: 200;
    line-height: 1.9;
    color: var(--muted);
    margin-bottom: 1rem;
    font-size: .9rem;
}

.u-seo strong {
    color: var(--fg);
    font-weight: 400;
}

/* Other universes grid */
.ou {
    border-top: 1px solid rgba(0,0,0,.06);
    padding-top: 4rem;
}

.ou h2 {
    font-family: var(--serif);
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    font-weight: 300;
    color: var(--fg);
    margin-bottom: 2.5rem;
}

.ou h2 em { color: var(--accent); }

.ou-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 1.5rem;
}

.ou-card {
    position: relative;
    overflow: hidden;
    border-radius: 4px;
    aspect-ratio: 4/3;
    cursor: pointer;
    box-shadow: 0 4px 20px rgba(0,0,0,.06);
    display: block;
    color: inherit;
}

.ou-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s var(--ease);
}

.ou-card:hover img {
    transform: scale(1.03);
}

.ou-txt {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 2rem 1.5rem 1.5rem;
    background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.5) 50%, transparent 100%);
    z-index: 2;
}

.ou-num {
    font-size: .5rem;
    letter-spacing: .2em;
    color: rgba(255,255,255,.6);
    display: block;
    margin-bottom: .2rem;
    font-weight: 500;
}

.ou-name {
    font-family: var(--serif);
    font-size: 1.2rem;
    font-weight: 600;
    color: #fff;
}

.ou-name em { font-style: italic; }

/* ==========================================================================
   11. Project detail
   ========================================================================== */

.proj {
    padding: 10rem 5vw 4rem;
    max-width: 1000px;
    margin: 0 auto;
}

.proj .u-back {
    margin-bottom: 3rem;
}

.proj-hero {
    width: 100%;
    max-height: 70vh;
    overflow: hidden;
    border-radius: 4px;
    margin-bottom: 3rem;
    box-shadow: 0 8px 40px rgba(0,0,0,.1);
}

.proj-hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.proj-hero iframe {
    width: 100%;
    aspect-ratio: 16/9;
    border: 0;
}

.proj-meta {
    display: flex;
    gap: 2.5rem;
    flex-wrap: wrap;
    margin-bottom: 2.5rem;
    font-size: .68rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted);
}

.proj-meta strong {
    color: var(--accent);
    margin-right: .4rem;
}

.proj-body {
    max-width: 750px;
    margin-bottom: 4rem;
}

.proj-body h1 {
    font-family: var(--serif);
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 300;
    margin-bottom: 1.5rem;
    line-height: 1.1;
    color: var(--fg);
}

.proj-body h1 em {
    font-style: italic;
    color: var(--accent);
}

.proj-body p {
    font-weight: 200;
    line-height: 1.9;
    color: var(--muted);
    font-size: 1rem;
    margin-bottom: 1.2rem;
}

/* Project gallery */
.proj-gal {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 2rem;
    margin: 4rem 0;
}

.proj-gal .gi {
    overflow: hidden;
    border-radius: 3px;
    box-shadow: 0 4px 25px rgba(0,0,0,.06);
}

.proj-gal .gi img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s var(--ease);
}

.proj-gal .gi:hover img {
    transform: scale(1.03);
}

.gi.gp { grid-column: span 4; aspect-ratio: 3/4; }
.gi.gl { grid-column: span 6; aspect-ratio: 16/10; }
.gi.gs { grid-column: span 4; aspect-ratio: 1/1; }
.gi.gw { grid-column: span 8; aspect-ratio: 16/9; }
.gi.gt { grid-column: span 5; aspect-ratio: 2/3; }

/* Project navigation */
.proj-nav {
    display: flex;
    justify-content: space-between;
    padding: 3rem 0;
    border-top: 1px solid rgba(0,0,0,.06);
    margin-top: 2rem;
}

.proj-nav a {
    font-size: .68rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--muted);
    cursor: pointer;
    padding: .7rem 1.3rem;
    border: 1px solid rgba(0,0,0,.08);
    transition: all .3s;
    border-radius: 2px;
}

.proj-nav a:hover {
    border-color: var(--accent);
    color: var(--accent);
}

/* ==========================================================================
   12. Blog index
   ========================================================================== */

.blog-header {
    padding: 10rem 5vw 3rem;
    max-width: 900px;
}

.blog-header h1 {
    font-family: var(--serif);
    font-size: clamp(2.2rem, 5vw, 4rem);
    font-weight: 300;
    line-height: 1.1;
    color: var(--fg);
    margin-bottom: .8rem;
}

.blog-header p {
    font-weight: 200;
    color: var(--muted);
    font-size: .95rem;
}

/* Blog filters */
.blog-filters {
    padding: 0 5vw;
    margin-bottom: 3rem;
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}

.blog-filters a {
    font-size: .63rem;
    font-weight: 300;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted);
    padding: .45rem 1.1rem;
    border: 1px solid transparent;
    border-radius: 20px;
    transition: all .3s;
}

.blog-filters a:hover {
    color: var(--accent);
    border-color: rgba(139,111,71,.2);
}

.blog-filters a.active {
    color: var(--accent);
    border-color: var(--accent);
    background: rgba(139,111,71,.04);
}

/* Featured post */
.blog-featured {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    padding: 0 5vw;
    margin: 0 auto 4rem;
    max-width: 1200px;
}

.blog-featured .bf-img {
    aspect-ratio: 3/4;
    overflow: hidden;
    border-radius: 4px;
    box-shadow: 0 4px 25px rgba(0,0,0,.06);
}

.blog-featured .bf-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s var(--ease);
}

.blog-featured:hover .bf-img img {
    transform: scale(1.02);
}

.blog-featured .bf-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.bf-cat {
    font-size: .55rem;
    font-weight: 400;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: .8rem;
}

.bf-title {
    font-family: var(--serif);
    font-size: clamp(1.5rem, 3vw, 2.5rem);
    font-weight: 300;
    line-height: 1.15;
    color: var(--fg);
    margin-bottom: 1rem;
}

.bf-excerpt {
    font-weight: 200;
    color: var(--muted);
    line-height: 1.8;
    font-size: .9rem;
    margin-bottom: 1rem;
}

.bf-date {
    font-size: .6rem;
    color: var(--light);
    letter-spacing: .1em;
    text-transform: uppercase;
}

/* Blog grid */
.blog-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    padding: 0 5vw;
    max-width: 1200px;
    margin: 0 auto 4rem;
}

.blog-card {
    display: block;
    color: inherit;
}

.blog-card .bc-img {
    aspect-ratio: 4/3;
    overflow: hidden;
    border-radius: 4px;
    margin-bottom: 1rem;
    box-shadow: 0 4px 20px rgba(0,0,0,.05);
}

.blog-card .bc-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s var(--ease);
}

.blog-card:hover .bc-img img {
    transform: scale(1.02);
}

.bc-cat {
    font-size: .5rem;
    font-weight: 400;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: .4rem;
    display: block;
}

.bc-title {
    font-family: var(--serif);
    font-size: 1.2rem;
    font-weight: 300;
    color: var(--fg);
    line-height: 1.2;
    margin-bottom: .4rem;
}

.bc-excerpt {
    font-weight: 200;
    color: var(--muted);
    font-size: .8rem;
    line-height: 1.7;
    margin-bottom: .5rem;
}

.bc-date {
    font-size: .55rem;
    color: var(--light);
    letter-spacing: .1em;
    text-transform: uppercase;
}

/* ==========================================================================
   13. Single post (blog article)
   ========================================================================== */

.article-header {
    padding: 10rem 5vw 2rem;
    max-width: 800px;
    margin: 0 auto;
}

.article-header .bf-cat {
    margin-bottom: 1rem;
}

.article-title-row {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    margin-bottom: 1rem;
}

.article-thumb {
    flex-shrink: 0;
    width: 120px;
    height: 120px;
    border-radius: 4px;
    overflow: hidden;
}

.article-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.article-header h1 {
    font-family: var(--serif);
    font-size: clamp(2rem, 4.5vw, 3.5rem);
    font-weight: 300;
    line-height: 1.1;
    color: var(--fg);
    margin-bottom: 0;
}

.article-meta {
    font-size: .65rem;
    color: var(--muted);
    letter-spacing: .1em;
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin-bottom: 2rem;
}

.article-meta time {
    text-transform: uppercase;
}

.article-tags {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}

.article-tags a {
    font-size: .55rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted);
    padding: .3rem .8rem;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 20px;
    transition: all .3s;
}

.article-tags a:hover {
    border-color: var(--accent);
    color: var(--accent);
}

.article-hero {
    max-width: 900px;
    margin: 0 auto 3rem;
    padding: 0 5vw;
}

.article-hero img {
    width: 100%;
    height: auto; /* preserve original aspect ratio — no crop/distortion */
    border-radius: 4px;
    box-shadow: 0 8px 40px rgba(0,0,0,.08);
}

.article-hero figcaption {
    font-size: .65rem;
    color: var(--muted);
    margin-top: .5rem;
    text-align: center;
}

/* Article body (Gutenberg content) */
.article-body {
    max-width: 700px;
    margin: 0 auto 4rem;
    padding: 0 5vw;
}

.article-body h2 {
    font-family: var(--serif);
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    font-weight: 300;
    color: var(--fg);
    margin: 2.5rem 0 1rem;
}

.article-body h3 {
    font-family: var(--serif);
    font-size: 1.3rem;
    font-weight: 400;
    color: var(--fg);
    margin: 2rem 0 .8rem;
}

.article-body p {
    font-weight: 200;
    line-height: 1.9;
    color: var(--muted);
    margin-bottom: 1.2rem;
    font-size: .95rem;
}

.article-body a {
    color: var(--accent);
    transition: opacity .3s;
}

.article-body a:hover {
    opacity: .7;
}

.article-body blockquote {
    border-left: 3px solid var(--accent);
    padding: 1rem 1.5rem;
    margin: 2rem 0;
    font-family: var(--serif);
    font-size: 1.1rem;
    font-style: italic;
    color: var(--fg);
    line-height: 1.7;
}

.article-body ul,
.article-body ol {
    padding-left: 1.5rem;
    margin-bottom: 1.2rem;
    font-weight: 200;
    color: var(--muted);
    font-size: .95rem;
    line-height: 1.9;
}

.article-body img {
    border-radius: 4px;
    margin: 1.5rem 0;
}

.article-body figure {
    margin: 2rem 0;
}

.article-body figcaption {
    font-size: .65rem;
    color: var(--muted);
    text-align: center;
    margin-top: .5rem;
}

/* ---- Article footer (tags + share + author) ---- */
.article-footer {
    max-width: 700px;
    margin: 0 auto;
    padding: 0 5vw;
}

.article-footer-label {
    display: block;
    font-size: .55rem;
    font-weight: 400;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--light);
    margin-bottom: .6rem;
}

.article-footer-tags {
    padding-bottom: 2rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid rgba(0,0,0,.06);
}

/* Share buttons */
.article-share {
    padding-bottom: 2rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid rgba(0,0,0,.06);
}

.article-share-btns {
    display: flex;
    gap: .8rem;
    align-items: center;
}

.article-share-btns a,
.article-share-btns button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1px solid rgba(0,0,0,.08);
    color: var(--muted);
    background: transparent;
    cursor: pointer;
    transition: all .3s;
}

.article-share-btns a:hover,
.article-share-btns button:hover {
    color: var(--accent);
    border-color: var(--accent);
    background: rgba(139,111,71,.04);
}

/* Author box */
.article-author {
    display: flex;
    gap: 1.2rem;
    align-items: flex-start;
    padding: 2rem 0 2.5rem;
    border-bottom: 1px solid rgba(0,0,0,.06);
    margin-bottom: 2rem;
}

.article-author-avatar img {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
}

.article-author-name {
    font-family: var(--serif);
    font-size: 1.1rem;
    font-weight: 400;
    color: var(--fg);
    display: block;
    margin-bottom: .3rem;
    transition: color .3s;
}

.article-author-name:hover {
    color: var(--accent);
}

.article-author-bio {
    font-size: .8rem;
    font-weight: 200;
    color: var(--muted);
    line-height: 1.7;
}

/* Article meta — enhanced */
.article-meta-author a {
    color: var(--fg);
    font-weight: 400;
    transition: color .3s;
}

.article-meta-author a:hover {
    color: var(--accent);
}

.article-meta-reading {
    color: var(--light);
}

/* Article navigation prev/next */
.article-nav {
    max-width: 700px;
    margin: 0 auto 3rem;
    padding: 0 5vw;
    display: flex;
    justify-content: space-between;
    gap: 2rem;
}

.article-nav-link {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    padding: 1rem 1.5rem;
    border: 1px solid rgba(0,0,0,.06);
    border-radius: 4px;
    transition: all .3s;
    max-width: 45%;
}

.article-nav-link:hover {
    border-color: var(--accent);
}

.article-nav-next {
    text-align: right;
    margin-left: auto;
}

.article-nav-label {
    font-size: .58rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--accent);
}

.article-nav-title {
    font-family: var(--serif);
    font-size: .95rem;
    font-weight: 300;
    color: var(--fg);
    line-height: 1.3;
}

/* Related posts */
.related-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
}

/* Comments section */
.article-comments {
    max-width: 700px;
    margin: 0 auto 4rem;
    padding: 0 5vw;
}

.article-comments .comments-title {
    font-family: var(--serif);
    font-size: 1.4rem;
    font-weight: 300;
    color: var(--fg);
    margin-bottom: 2rem;
}

.article-comments .comment-list {
    list-style: none;
    padding: 0;
}

.article-comments .comment {
    padding: 1.5rem 0;
    border-bottom: 1px solid rgba(0,0,0,.06);
}

.article-comments .comment-author img {
    border-radius: 50%;
    margin-right: .5rem;
    vertical-align: middle;
}

.article-comments .comment-author .fn {
    font-weight: 400;
    color: var(--fg);
}

.article-comments .comment-meta {
    font-size: .65rem;
    color: var(--muted);
    margin-bottom: .5rem;
}

.article-comments .comment-body p {
    font-weight: 200;
    line-height: 1.8;
    color: var(--muted);
    font-size: .9rem;
}

.article-comments .comment-reply-link {
    font-size: .6rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--accent);
}

.article-comments .comment-respond {
    margin-top: 2rem;
}

.article-comments .comment-form label {
    display: block;
    font-size: .7rem;
    font-weight: 300;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: .3rem;
}

.article-comments .comment-form input[type="text"],
.article-comments .comment-form input[type="email"],
.article-comments .comment-form input[type="url"],
.article-comments .comment-form textarea {
    width: 100%;
    padding: .8rem 1rem;
    border: 1px solid var(--light);
    border-radius: 3px;
    font-family: var(--sans);
    font-size: .85rem;
    font-weight: 300;
    color: var(--fg);
    background: transparent;
    margin-bottom: 1rem;
    transition: border-color .3s;
}

.article-comments .comment-form input:focus,
.article-comments .comment-form textarea:focus {
    outline: none;
    border-color: var(--accent);
}

.article-comments .comment-form .submit {
    display: inline-block;
    padding: 1rem 2.5rem;
    background: var(--fg);
    color: #fff;
    font-family: var(--sans);
    font-size: .7rem;
    font-weight: 400;
    letter-spacing: .15em;
    text-transform: uppercase;
    border: none;
    border-radius: 3px;
    cursor: pointer;
    transition: background .3s;
}

.article-comments .comment-form .submit:hover {
    background: var(--accent);
}

/* Related posts */
.related-posts {
    max-width: 1000px;
    margin: 0 auto;
    padding: 3rem 5vw;
}

.related-posts h2 {
    font-family: var(--serif);
    font-size: clamp(1.3rem, 2.5vw, 1.8rem);
    font-weight: 300;
    color: var(--fg);
    margin-bottom: 2rem;
}

.related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

/* ==========================================================================
   14. References page
   ========================================================================== */

.ref-header {
    padding: 10rem 5vw 3rem;
    max-width: 900px;
}

.ref-header h1 {
    font-family: var(--serif);
    font-size: clamp(2.2rem, 5vw, 4rem);
    font-weight: 300;
    line-height: 1.1;
    color: var(--fg);
    margin-bottom: 1rem;
}

.ref-header p {
    font-weight: 200;
    color: var(--muted);
    line-height: 1.9;
    font-size: .95rem;
    max-width: 600px;
}

/* Section title */
.ref-section-title {
    padding: 3rem 5vw 1.5rem;
    max-width: 1200px;
    margin: 0 auto;
}

.ref-section-title h2 {
    font-family: var(--serif);
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    font-weight: 300;
    color: var(--fg);
}

.ref-section-title h2 em {
    color: var(--accent);
    font-style: italic;
}

/* Projects grid */
.ref-projects {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    padding: 0 5vw;
    max-width: 1200px;
    margin: 0 auto 4rem;
}

.ref-project-card {
    display: block;
    color: inherit;
    text-decoration: none;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .5s ease, transform .5s ease;
}

.ref-project-card.visible {
    opacity: 1;
    transform: translateY(0);
}

.ref-project-img {
    position: relative;
    overflow: hidden;
    border-radius: 4px;
    box-shadow: 0 4px 25px rgba(0,0,0,.06);
    aspect-ratio: 4/3;
}

.ref-project-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .6s var(--ease), filter .4s ease;
}

.ref-project-card:hover .ref-project-img img {
    transform: scale(1.03);
    filter: brightness(0.4);
}

.ref-project-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1.5rem;
    opacity: 0;
    transition: opacity .4s ease;
    z-index: 2;
}

.ref-project-card:hover .ref-project-overlay {
    opacity: 1;
}

.ref-project-title {
    font-family: var(--serif);
    font-size: clamp(1.1rem, 2vw, 1.5rem);
    font-weight: 400;
    color: #fff;
    line-height: 1.2;
    margin-bottom: .4rem;
}

.ref-project-client {
    font-size: .65rem;
    font-weight: 300;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.7);
}

.ref-project-info {
    padding: .8rem 0;
}

.ref-project-name {
    display: block;
    font-family: var(--serif);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--fg);
    line-height: 1.2;
}

.ref-project-cat {
    display: block;
    font-size: .55rem;
    font-weight: 400;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--accent);
    margin-top: .2rem;
}

@media (max-width: 900px) {
    .ref-projects {
        grid-template-columns: 1fr 1fr;
        gap: 1.5rem;
        padding: 0 1.5rem;
    }
}

/* Logo grid */
.ref-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    padding: 0 5vw;
    max-width: 1200px;
    margin: 0 auto 4rem;
}

.ref-cell {
    border: 1px solid rgba(0,0,0,.04);
    aspect-ratio: 4/3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem 1.5rem;
    cursor: default;
    position: relative;
    overflow: hidden;
    transition: background .3s;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .5s ease, transform .5s ease, background .3s;
}

.ref-cell.visible {
    opacity: 1;
    transform: translateY(0);
}

.ref-cell:hover {
    background: rgba(139,111,71,.03);
}

.ref-cell img {
    max-width: 120px;
    max-height: 50px;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: .6;
    transition: all .4s;
}

.ref-cell:hover img {
    filter: grayscale(0%);
    opacity: 1;
}

.ref-cell .ref-name {
    font-family: var(--serif);
    font-size: 1.3rem;
    font-weight: 300;
    color: var(--fg);
    opacity: .4;
    transition: all .3s;
    text-align: center;
}

.ref-cell:hover .ref-name {
    opacity: 1;
    transform: translateY(-5px);
}

.ref-cell .ref-desc {
    font-size: .65rem;
    color: var(--muted);
    text-align: center;
    opacity: 0;
    transform: translateY(8px);
    transition: all .3s;
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    right: 1rem;
}

.ref-cell:hover .ref-desc {
    opacity: 1;
    transform: translateY(0);
}

/* Marquee */
.marquee {
    overflow: hidden;
    padding: 2rem 0;
    border-top: 1px solid rgba(0,0,0,.04);
    border-bottom: 1px solid rgba(0,0,0,.04);
    margin-bottom: 4rem;
}

.marquee:hover .marquee-inner {
    animation-play-state: paused;
}

.marquee-inner {
    display: flex;
    gap: 3rem;
    white-space: nowrap;
    animation: marquee-scroll 30s linear infinite;
    width: max-content;
}

.marquee-inner span {
    font-family: var(--serif);
    font-size: clamp(1.2rem, 2.5vw, 1.8rem);
    font-weight: 300;
    color: var(--muted);
    opacity: .5;
}

.marquee-inner span::after {
    content: ' · ';
    color: var(--light);
}

@keyframes marquee-scroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* Testimonial */
.ref-quote {
    max-width: 700px;
    margin: 0 auto 4rem;
    padding: 0 5vw;
    text-align: center;
}

.ref-quote blockquote {
    font-family: var(--serif);
    font-size: clamp(1.2rem, 2.5vw, 1.6rem);
    font-style: italic;
    font-weight: 300;
    color: var(--fg);
    line-height: 1.7;
    margin-bottom: 1rem;
}

.ref-quote cite {
    font-family: var(--sans);
    font-size: .7rem;
    font-style: normal;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--accent);
}

/* ==========================================================================
   15. Shared: SEO section, CTA, Button, Breadcrumb
   ========================================================================== */

.seo-h {
    max-width: 800px;
    padding: 3rem 1.5rem;
    margin: 0 auto;
}

.seo-h h2 {
    font-family: var(--serif);
    font-size: clamp(1.3rem, 2.5vw, 1.8rem);
    font-weight: 300;
    margin-bottom: 1rem;
    color: var(--fg);
}

.seo-h h2 em { color: var(--accent); }

.seo-h p {
    font-weight: 200;
    line-height: 1.9;
    color: var(--muted);
    margin-bottom: 1rem;
    font-size: .88rem;
}

.seo-h strong {
    color: var(--fg);
    font-weight: 400;
}

.cta {
    min-height: 35vh;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 1.5rem;
    padding: 4rem 2rem;
    text-align: center;
}

.cta h2 {
    font-family: var(--serif);
    font-size: clamp(1.5rem, 3vw, 2.5rem);
    font-weight: 300;
    color: var(--fg);
}

.cta h2 em {
    font-style: italic;
    color: var(--accent);
}

.cta p {
    color: var(--muted);
    font-weight: 200;
    max-width: 400px;
    line-height: 1.7;
    font-size: .85rem;
}

/* CTA Button — unique class to avoid WordPress/plugin conflicts */
a.lb-btn,
button.lb-btn,
.lb-btn {
    display: inline-block !important;
    padding: 1.15rem 3.2rem !important;
    background-color: #0A4D35 !important;
    color: #ffffff !important;
    font-family: var(--sans) !important;
    font-size: .75rem !important;
    font-weight: 500 !important;
    letter-spacing: .18em !important;
    text-transform: uppercase !important;
    transition: all .35s ease !important;
    cursor: pointer !important;
    border: none !important;
    border-radius: 3px !important;
    box-shadow: 0 4px 20px rgba(10,77,53,.25) !important;
    text-decoration: none !important;
    line-height: 1.4 !important;
    text-align: center !important;
}

a.lb-btn:hover,
button.lb-btn:hover,
.lb-btn:hover {
    background-color: #8b6f47 !important;
    color: #ffffff !important;
    box-shadow: 0 8px 30px rgba(10,77,53,.35) !important;
    transform: translateY(-2px);
    text-decoration: none !important;
}

a.lb-btn:visited {
    color: #ffffff !important;
}

a.lb-btn:focus,
button.lb-btn:focus {
    outline: 2px solid #8b6f47 !important;
    outline-offset: 2px !important;
}

/* Breadcrumb */
.breadcrumb {
    font-size: .63rem;
    font-weight: 300;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 2rem;
}

.breadcrumb a {
    color: var(--muted);
    transition: color .3s;
}

.breadcrumb a:hover {
    color: var(--accent);
}

.breadcrumb-sep {
    margin: 0 .4rem;
    color: var(--light);
}

/* ==========================================================================
   16. Pagination
   ========================================================================== */

.pagination {
    display: flex;
    justify-content: center;
    gap: .5rem;
    padding: 2rem 5vw 4rem;
}

.pagination a,
.pagination span {
    font-size: .68rem;
    letter-spacing: .1em;
    color: var(--muted);
    padding: .5rem 1rem;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 2px;
    transition: all .3s;
}

.pagination a:hover {
    border-color: var(--accent);
    color: var(--accent);
}

.pagination .current {
    border-color: var(--accent);
    color: var(--accent);
    background: rgba(139,111,71,.04);
}

/* Image credits tooltip (right-click) */
.lb-credits {
    position: absolute;
    padding: .5rem 1rem;
    background: var(--fg);
    color: #fff;
    font-size: .7rem;
    font-weight: 400;
    letter-spacing: .05em;
    border-radius: 4px;
    pointer-events: none;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .3s, transform .3s;
    z-index: 99999;
    white-space: nowrap;
}

.lb-credits.visible {
    opacity: 1;
    transform: translateY(0);
}

/* ==========================================================================
   17. Footer
   ========================================================================== */

.ft {
    padding: 3rem 2rem 5rem;
    border-top: 1px solid rgba(0,0,0,.06);
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: .68rem;
    color: var(--muted);
    max-width: 1200px;
    margin: 0 auto;
}

/* ==========================================================================
   18. Page (static pages: about, contact)
   ========================================================================== */

.page-content {
    padding: 10rem 5vw 4rem;
    max-width: 800px;
    margin: 0 auto;
}

.page-content h1 {
    font-family: var(--serif);
    font-size: clamp(2rem, 4.5vw, 3.5rem);
    font-weight: 300;
    line-height: 1.1;
    color: var(--fg);
    margin-bottom: 2rem;
}

.page-content h2 {
    font-family: var(--serif);
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    font-weight: 300;
    color: var(--fg);
    margin: 2.5rem 0 1rem;
}

.page-content h3 {
    font-family: var(--serif);
    font-size: 1.3rem;
    font-weight: 400;
    color: var(--fg);
    margin: 2rem 0 .8rem;
}

.page-content p {
    font-weight: 200;
    line-height: 1.9;
    color: var(--muted);
    font-size: .95rem;
    margin-bottom: 1.2rem;
}

.page-content a {
    color: var(--accent);
}

/* Form fields inside pages (contact form plugins) */
.page-content input[type="text"],
.page-content input[type="email"],
.page-content input[type="tel"],
.page-content input[type="url"],
.page-content input[type="number"],
.page-content input[type="date"],
.page-content select,
.page-content textarea {
    width: 100%;
    padding: 1rem 1.2rem;
    border: 1px solid var(--light);
    border-radius: 3px;
    font-family: var(--sans);
    font-size: .9rem;
    font-weight: 300;
    color: var(--fg);
    background: transparent;
    margin-bottom: .8rem;
    transition: border-color .3s;
    box-sizing: border-box;
}

.page-content input:focus,
.page-content select:focus,
.page-content textarea:focus {
    outline: none;
    border-color: var(--accent);
}

.page-content textarea {
    min-height: 160px;
    resize: vertical;
}

.page-content input[type="submit"],
.page-content button[type="submit"],
.page-content .wpcf7-submit {
    display: inline-block;
    padding: 1rem 2.8rem;
    background: var(--fg);
    color: #fff;
    font-family: var(--sans);
    font-size: .72rem;
    font-weight: 400;
    letter-spacing: .18em;
    text-transform: uppercase;
    border: none;
    border-radius: 3px;
    cursor: pointer;
    transition: background .3s, transform .2s;
}

.page-content input[type="submit"]:hover,
.page-content button[type="submit"]:hover,
.page-content .wpcf7-submit:hover {
    background: var(--accent);
    transform: translateY(-1px);
}

.page-content label {
    display: block;
    font-size: .72rem;
    font-weight: 300;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: .3rem;
}

.page-content blockquote {
    border-left: 3px solid var(--accent);
    padding: 1rem 1.5rem;
    margin: 2rem 0;
    font-family: var(--serif);
    font-size: 1.1rem;
    font-style: italic;
    color: var(--fg);
    line-height: 1.7;
}

.page-content ul,
.page-content ol {
    padding-left: 1.5rem;
    margin-bottom: 1.2rem;
    font-weight: 200;
    color: var(--muted);
    font-size: .95rem;
    line-height: 1.9;
}

.page-content img {
    border-radius: 4px;
    margin: 1.5rem 0;
}

/* ==========================================================================
   19. 404
   ========================================================================== */

.page-404 {
    min-height: 80vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 2rem;
}

.page-404 h1 {
    font-family: var(--serif);
    font-size: clamp(3rem, 8vw, 6rem);
    font-weight: 300;
    color: var(--light);
    margin-bottom: 1rem;
}

.page-404 p {
    font-family: var(--serif);
    font-size: clamp(1.2rem, 2.5vw, 1.6rem);
    font-weight: 300;
    color: var(--muted);
    margin-bottom: 2rem;
}

/* ==========================================================================
   20. Search
   ========================================================================== */

.search-header {
    padding: 10rem 5vw 2rem;
    max-width: 900px;
}

.search-header h1 {
    font-family: var(--serif);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 300;
    color: var(--fg);
    margin-bottom: 1rem;
}

.search-form {
    display: flex;
    gap: .5rem;
    margin-bottom: 3rem;
    max-width: 500px;
}

.search-form input[type="search"] {
    flex: 1;
    padding: .8rem 1.2rem;
    border: 1px solid var(--light);
    border-radius: 2px;
    font-family: var(--sans);
    font-size: .8rem;
    font-weight: 300;
    color: var(--fg);
    background: transparent;
    outline: none;
    transition: border-color .3s;
}

.search-form input[type="search"]:focus {
    border-color: var(--accent);
}

.search-form button {
    padding: .8rem 1.5rem;
    border: 1px solid var(--light);
    background: transparent;
    font-family: var(--sans);
    font-size: .68rem;
    font-weight: 300;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--fg);
    cursor: pointer;
    border-radius: 2px;
    transition: all .3s;
}

.search-form button:hover {
    border-color: var(--accent);
    color: var(--accent);
}

/* ==========================================================================
   21. Responsive — max-width: 900px
   ========================================================================== */

@media (max-width: 900px) {
    /* Nav */
    .nav { padding: 1.2rem 1.5rem; }
    .nl { display: none; }
    .burger { display: flex; }

    /* Hero */
    .hero { height: 85vh; }
    .hero h1 { padding: 0 1.5rem; }

    /* Homepage horizontal — hide, show mobile cards */
    .hw, .scroll-i, .pf { display: none !important; }
    .mu { display: block; }

    /* Universe intro */
    .u-intro { padding: 9rem 1.5rem 1rem; }
    .sf-bar { padding: 4.5rem 1.5rem 1rem; top: 0; }

    /* Universe scroll → vertical */
    .p-hw { overflow: visible; margin-top: 3rem; }
    .p-track {
        flex-direction: column;
        width: 100%;
        min-height: auto;
        padding: 0 1.5rem;
        gap: 2rem;
    }
    .pc, .pc.portrait, .pc.square, .pc.landscape,
    .pc.portrait-lg, .pc.portrait-sm {
        width: 100%;
        align-self: auto;
    }
    .pc .pc-img-wrap,
    .pc.portrait .pc-img-wrap, .pc.square .pc-img-wrap,
    .pc.landscape .pc-img-wrap, .pc.portrait-lg .pc-img-wrap, .pc.portrait-sm .pc-img-wrap {
        width: 100%;
        height: auto;
    }
    .pc img, .pc.portrait img, .pc.square img,
    .pc.landscape img, .pc.portrait-lg img, .pc.portrait-sm img {
        width: 100%;
        height: 100%;
    }
    .pc.landscape img { aspect-ratio: 4/3; }

    /* After scroll */
    .u-after { padding: 3rem 1.5rem; }
    .ou-grid { grid-template-columns: 1fr 1fr; gap: 1rem; }

    /* Project detail */
    .proj { padding: 7rem 1.5rem 2rem; }
    .proj-gal { grid-template-columns: 1fr; }
    .gi.gp, .gi.gl, .gi.gs, .gi.gw, .gi.gt { grid-column: span 1; }
    .proj-meta { gap: 1.5rem; }
    .proj-nav { flex-direction: column; gap: 1rem; align-items: flex-start; }

    /* Blog */
    .blog-header { padding: 7rem 1.5rem 2rem; }
    .blog-featured { grid-template-columns: 1fr; gap: 1.5rem; }
    .blog-grid { grid-template-columns: 1fr; gap: 2rem; padding: 0 1.5rem; }

    /* Article */
    .article-header { padding: 7rem 1.5rem 2rem; }
    .related-grid { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
    .article-nav { flex-direction: column; gap: 1rem; }
    .article-nav-link { max-width: 100%; }
    .article-author { flex-direction: column; align-items: center; text-align: center; }

    /* References */
    .ref-header { padding: 7rem 1.5rem 2rem; }
    .ref-grid { grid-template-columns: 1fr 1fr; }

    /* Page */
    .page-content { padding: 7rem 1.5rem 2rem; }
    .search-header { padding: 7rem 1.5rem 2rem; }

    /* Footer */
    .ft { flex-direction: column; gap: .5rem; text-align: center; }
}

@media (min-width: 901px) {
    .mu, .burger, .mobile-menu { display: none !important; }
}
