/* =============================================================================
   NSTU Photography Portfolio — Main CSS Design System
   Version: 2.0 — Professional Grade
   ============================================================================= */
:root {
  --color-bg: #FAFAF8; --color-bg-soft: #F5F4F1; --color-bg-muted: #EDECEA;
  --color-text: #0F0F0F; --color-text-secondary: #5A5A5A; --color-text-tertiary: #9A9A9A;
  --color-accent: #C9A84C; --color-accent-dark: #A8892E; --color-accent-light: rgba(201,168,76,0.10);
  --color-border: #E0DFDC; --color-border-light: #ECEAE6;
  --color-white: #FFFFFF; --color-black: #000000; --color-dark-bg: #111111; --color-dark-surface: #1A1A1A;
  --font-heading: 'Playfair Display','Georgia',serif;
  --font-body: 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --text-xs: 0.6875rem; --text-sm: 0.8125rem; --text-base: 1rem; --text-md: 1.125rem;
  --text-lg: 1.25rem; --text-xl: 1.5rem; --text-2xl: 2rem; --text-3xl: 2.5rem;
  --text-4xl: 3.5rem; --text-5xl: 5rem; --text-hero: clamp(2.4rem,7vw,5.5rem);
  --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem;
  --space-5: 1.25rem; --space-6: 1.5rem; --space-8: 2rem; --space-10: 2.5rem;
  --space-12: 3rem; --space-16: 4rem; --space-20: 5rem; --space-24: 6rem; --space-32: 8rem;
  --ease-out: cubic-bezier(0.0,0.0,0.2,1); --ease-expo: cubic-bezier(0.16,1,0.3,1);
  --duration-fast: 120ms; --duration-base: 260ms; --duration-slow: 520ms; --duration-slower: 800ms;
  --container-max: 1300px; --container-narrow: 780px; --nav-height: 68px;
}
/* RESET & BASE */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{font-family:var(--font-body);font-size:var(--text-base);line-height:1.7;color:var(--color-text);background-color:var(--color-bg);min-height:100vh;overflow-x:hidden}
img,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}
ul,ol{list-style:none}
input,textarea,select{font-family:inherit;font-size:inherit}

/* TYPOGRAPHY */
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:1.15;letter-spacing:-0.01em;color:var(--color-text)}
h1{font-size:clamp(2rem,5vw,var(--text-4xl))}
h2{font-size:clamp(1.5rem,3.5vw,var(--text-3xl))}
h3{font-size:clamp(1.25rem,2.5vw,var(--text-2xl))}
h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-md)}
p{color:var(--color-text-secondary);line-height:1.8}
.eyebrow{font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--color-accent)}
.lead{font-size:var(--text-md);line-height:1.75;color:var(--color-text-secondary)}

/* LAYOUT */
.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--space-6)}
.container--narrow{max-width:var(--container-narrow)}
.section{padding-block:var(--space-12)}
.section--large{padding-block:var(--space-20)}
.section--sm{padding-block:var(--space-6)}
@media(max-width:768px){.container{padding-inline:var(--space-4)}.section{padding-block:var(--space-8)}.section--large{padding-block:var(--space-10)}.section--sm{padding-block:var(--space-4)}}
@media(max-width:480px){.section{padding-block:var(--space-6)}}
.grid{display:grid;gap:var(--space-8)}
.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(3,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}
.flex{display:flex;gap:var(--space-4)}
.flex--center{align-items:center;justify-content:center}
.flex--between{align-items:center;justify-content:space-between}
.flex--wrap{flex-wrap:wrap}
/* ============ NAVIGATION ============ */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--nav-height);display:flex;align-items:center;transition:background var(--duration-slow) var(--ease-out),box-shadow var(--duration-slow) var(--ease-out)}
.site-nav.nav--scrolled{background:rgba(250,250,248,0.97);backdrop-filter:blur(24px) saturate(1.8);-webkit-backdrop-filter:blur(24px) saturate(1.8);box-shadow:0 1px 0 var(--color-border)}
.site-nav.nav--transparent{background:transparent}
.site-nav.nav--transparent .nav-logo-text,.site-nav.nav--transparent .nav-link{color:rgba(255,255,255,0.95)}
.site-nav.nav--transparent .nav-logo-img{filter:brightness(0) invert(1)}
.site-nav.nav--transparent .nav-link::after{background:rgba(255,255,255,0.7)}
.site-nav.nav--transparent .nav-toggle{color:#fff}
.nav-inner{width:100%;display:flex;align-items:center;justify-content:space-between}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;transition:opacity var(--duration-base) var(--ease-out);flex-shrink:0}
.nav-logo:hover{opacity:0.75}
.nav-logo-img{height:30px;width:30px;object-fit:contain;display:block;border-radius:4px;flex-shrink:0;transition:filter var(--duration-base) var(--ease-out)}
.nav-logo-text{font-family:var(--font-heading);font-size:1.1rem;font-weight:700;letter-spacing:-0.02em;color:var(--color-text);white-space:nowrap;transition:color var(--duration-base) var(--ease-out);line-height:1}
.nav-logo-text em{font-style:normal;color:var(--color-accent)}
.nav-links{display:flex;align-items:center;gap:var(--space-8)}
.nav-link{font-size:var(--text-sm);font-weight:500;letter-spacing:0.03em;color:var(--color-text);position:relative;transition:color var(--duration-base) var(--ease-out);padding-block:var(--space-2);white-space:nowrap}
.nav-link::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--color-accent);transition:width var(--duration-base) var(--ease-expo)}
.nav-link:hover::after,.nav-link.active::after{width:100%}
.nav-link.active{color:var(--color-accent)}
.nav-toggle{display:none;flex-direction:column;gap:5px;padding:var(--space-2);cursor:pointer;z-index:1001;color:var(--color-text);transition:color var(--duration-base);border-radius:4px}
.nav-toggle span{display:block;width:22px;height:1.5px;background:currentColor;transition:transform var(--duration-base) var(--ease-expo),opacity var(--duration-base) var(--ease-out);transform-origin:center}
.nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.nav-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.nav-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:999;backdrop-filter:blur(2px);opacity:0;transition:opacity var(--duration-slow) var(--ease-out);pointer-events:none}
.nav-overlay.active,.nav-overlay.visible{opacity:1;pointer-events:auto}
@media(max-width:900px){
  .nav-toggle{display:flex}
  .nav-overlay{display:block}
  .nav-links{position:fixed;top:0;right:-100%;width:min(300px,80vw);height:100dvh;flex-direction:column;align-items:flex-start;gap:0;background:var(--color-dark-bg);padding:calc(var(--nav-height) + var(--space-6)) var(--space-6) var(--space-8);transition:right var(--duration-slow) var(--ease-expo);overflow-y:auto;z-index:1000;border-left:1px solid rgba(255,255,255,0.06)}
  .nav-links.open{right:0;box-shadow:-24px 0 80px rgba(0,0,0,0.3)}
  .nav-link{width:100%;padding-block:var(--space-4);font-size:var(--text-base);font-weight:400;border-bottom:1px solid rgba(255,255,255,0.06);color:rgba(255,255,255,0.70) !important;letter-spacing:0.02em}
  .nav-link:hover{color:#fff !important}
  .nav-link.active{color:var(--color-accent) !important;font-weight:600}
  .nav-link::after{display:none}
}
/* ============ HERO ============ */
.hero{position:relative;height:100dvh;min-height:560px;display:flex;align-items:flex-end;overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.06);transition:transform 8s var(--ease-out);will-change:transform}
.hero__img.loaded{transform:scale(1)}
.hero__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(6,6,6,0.92) 0%,rgba(6,6,6,0.38) 45%,rgba(6,6,6,0.04) 100%);z-index:1}
.hero__content{position:relative;z-index:2;width:100%;padding:0 0 var(--space-16)}
.hero__eyebrow{font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;letter-spacing:0.22em;text-transform:uppercase;color:var(--color-accent);display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);opacity:0;transform:translateY(20px)}
.hero__eyebrow::before{content:'';display:block;width:28px;height:1px;background:var(--color-accent);flex-shrink:0}
.hero__title{font-family:var(--font-heading);font-size:var(--text-hero);font-weight:700;color:#fff;line-height:1.04;letter-spacing:-0.03em;max-width:760px;margin-bottom:var(--space-5);opacity:0;transform:translateY(30px)}
.hero__subtitle{font-size:clamp(var(--text-sm),1.4vw,var(--text-md));color:rgba(255,255,255,0.60);max-width:480px;line-height:1.75;margin-bottom:var(--space-8);opacity:0;transform:translateY(20px)}
.hero__actions{display:flex;gap:var(--space-3);flex-wrap:wrap;opacity:0;transform:translateY(20px)}
.hero__scroll-hint{position:absolute;bottom:var(--space-8);right:var(--space-8);z-index:2;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);opacity:0.45}
.hero__scroll-hint span{font-size:0.6rem;letter-spacing:0.18em;text-transform:uppercase;color:rgba(255,255,255,0.7);writing-mode:vertical-rl;transform:rotate(180deg)}
.hero__scroll-line{width:1px;height:50px;background:linear-gradient(to bottom,rgba(255,255,255,0.6),transparent);animation:scrollLine 2.4s ease-in-out infinite}
@keyframes scrollLine{0%,100%{opacity:0.6}50%{opacity:0.1}}
@media(max-width:600px){.hero{min-height:500px}.hero__content{padding:0 0 var(--space-10)}.hero__scroll-hint{display:none}}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;letter-spacing:0.05em;padding:0.75em 1.6em;border-radius:2px;cursor:pointer;transition:background var(--duration-base) var(--ease-out),color var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out),transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-base) var(--ease-out);position:relative;overflow:hidden;white-space:nowrap;border:1px solid transparent;text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--color-accent);color:#0F0F0F;border-color:var(--color-accent);font-weight:600}
.btn--primary:hover{background:var(--color-accent-dark);border-color:var(--color-accent-dark);box-shadow:0 6px 24px rgba(201,168,76,0.4)}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,0.4)}
.btn--ghost:hover{background:rgba(255,255,255,0.10);border-color:rgba(255,255,255,0.75)}
.btn--ghost-dark{background:transparent;color:var(--color-text);border-color:var(--color-border)}
.btn--ghost-dark:hover{border-color:var(--color-text);background:var(--color-text);color:var(--color-white)}
.btn--icon{padding:0.6em;border-radius:50%;width:40px;height:40px;justify-content:center}

/* ============ SECTION TITLES ============ */
.section-header{margin-bottom:var(--space-10)}
.section-header--center{text-align:center}
.section-title{font-family:var(--font-heading);font-size:clamp(var(--text-2xl),4vw,var(--text-3xl));font-weight:600;letter-spacing:-0.02em;color:var(--color-text);margin-bottom:var(--space-3);position:relative;display:inline-block}
.section-divider{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-3)}
.section-divider__line{flex:1;height:1px;background:var(--color-border)}
.section-divider__dot{width:4px;height:4px;border-radius:50%;background:var(--color-accent);flex-shrink:0}
/* ============ PHOTO CARDS ============ */
.photo-card{position:relative;overflow:hidden;background:var(--color-bg-muted);cursor:pointer}
.photo-card__img-wrap{overflow:hidden;position:relative}
.photo-card__img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow) var(--ease-expo);display:block}
.photo-card:hover .photo-card__img{transform:scale(1.05)}
.photo-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(6,6,6,0.88) 0%,rgba(6,6,6,0) 55%);opacity:0;transition:opacity var(--duration-slow) var(--ease-out);display:flex;flex-direction:column;justify-content:flex-end;padding:var(--space-5)}
.photo-card:hover .photo-card__overlay{opacity:1}
.photo-card__title{font-family:var(--font-heading);font-size:var(--text-md);font-weight:600;color:#fff;margin-bottom:var(--space-1);transform:translateY(6px);transition:transform var(--duration-base) var(--ease-out)}
.photo-card:hover .photo-card__title{transform:translateY(0)}
.photo-card__meta{font-size:var(--text-xs);color:rgba(255,255,255,0.60);letter-spacing:0.06em;transform:translateY(6px);transition:transform var(--duration-base) var(--ease-out) 40ms}
.photo-card:hover .photo-card__meta{transform:translateY(0)}
.photo-card--featured .photo-card__img-wrap{aspect-ratio:4/3}
.photo-card--grid .photo-card__img-wrap{aspect-ratio:3/2}

/* ============ STATS BANNER (dark editorial) ============ */
.stats-banner{background:var(--color-dark-bg);padding-block:var(--space-10);border-bottom:1px solid rgba(255,255,255,0.05);position:relative;overflow:hidden}
.stats-banner::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:600px;height:1px;background:linear-gradient(to right,transparent,var(--color-accent),transparent)}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;text-align:center}
.stats-item{display:flex;flex-direction:column;align-items:center;padding:var(--space-4) var(--space-6);position:relative}
.stats-item+.stats-item::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);height:40%;width:1px;background:rgba(255,255,255,0.10)}
.stats-number{font-family:var(--font-heading);font-size:clamp(var(--text-2xl),4vw,var(--text-3xl));font-weight:700;color:var(--color-accent);line-height:1.1;letter-spacing:-0.02em}
.stats-label{font-family:var(--font-body);font-size:var(--text-xs);color:rgba(255,255,255,0.38);text-transform:uppercase;letter-spacing:0.16em;margin-top:var(--space-2);font-weight:500}
@media(max-width:600px){.stats-banner{padding-block:var(--space-6)}.stats-item{padding:var(--space-3) var(--space-2)}.stats-number{font-size:var(--text-xl)}.stats-label{font-size:0.6rem;letter-spacing:0.1em}}

/* ============ FEATURED / LATEST GRIDS ============ */
.featured-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:auto;gap:var(--space-3)}
.featured-grid__main{grid-column:span 8;grid-row:span 2}
.featured-grid__main .photo-card__img-wrap{aspect-ratio:4/3;height:100%}
.featured-grid__sub{grid-column:span 4}
.featured-grid__sub .photo-card__img-wrap{aspect-ratio:16/10}
@media(max-width:900px){.featured-grid__main{grid-column:span 12;grid-row:span 1}.featured-grid__sub{grid-column:span 6}}
@media(max-width:600px){.featured-grid__main,.featured-grid__sub{grid-column:span 12}}
.photos-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}
.photos-row .photo-card__img-wrap{aspect-ratio:3/4}
@media(max-width:1024px){.photos-row{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.photos-row{grid-template-columns:repeat(2,1fr)}}
.strip-section{overflow:hidden;padding-block:var(--space-12);background:var(--color-bg-soft)}
.strip-swiper{overflow:visible !important}
.strip-swiper .swiper-wrapper{align-items:center}
.strip-slide{width:280px}
.strip-slide .photo-card__img-wrap{aspect-ratio:3/4}

/* ============ STORY CARDS ============ */
.story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}
@media(max-width:900px){.story-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.story-grid{grid-template-columns:1fr;gap:var(--space-5)}}
.story-card{display:block;cursor:pointer;text-decoration:none}
.story-card__img-wrap{aspect-ratio:3/2;overflow:hidden;margin-bottom:var(--space-4)}
.story-card__img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow) var(--ease-expo)}
.story-card:hover .story-card__img{transform:scale(1.04)}
.story-card__eyebrow{font-size:var(--text-xs);font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-2)}
.story-card__title{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;letter-spacing:-0.01em;color:var(--color-text);margin-bottom:var(--space-2);transition:color var(--duration-base);line-height:1.2}
.story-card:hover .story-card__title{color:var(--color-accent-dark)}
.story-card__excerpt{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* ============ FOOTER — Dark Premium ============ */
.site-footer{background:var(--color-dark-bg);border-top:1px solid rgba(255,255,255,0.06);padding-block:var(--space-10) var(--space-6);margin-top:var(--space-16)}
.footer-inner{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-12);margin-bottom:var(--space-8)}
.footer-brand{flex:0 0 auto;max-width:280px}
.footer-brand .nav-logo-text{color:rgba(255,255,255,0.88);font-size:1rem}
.footer-brand .nav-logo-img{filter:brightness(0) invert(0.82)}
.footer-brand p{font-size:var(--text-sm);color:rgba(255,255,255,0.36);margin-top:var(--space-3);line-height:1.6;max-width:220px}
.footer-col{flex:0 0 auto}
.footer-col h5{font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:rgba(255,255,255,0.32);margin-bottom:var(--space-4)}
.footer-col ul li{margin-bottom:var(--space-2)}
.footer-col ul li a{font-size:var(--text-sm);color:rgba(255,255,255,0.50);transition:color var(--duration-base)}
.footer-col ul li a:hover{color:var(--color-accent)}
.footer-social{display:flex;gap:var(--space-3);margin-top:var(--space-5)}
.footer-social a{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,0.32);border:1px solid rgba(255,255,255,0.10);border-radius:50%;transition:all var(--duration-base)}
.footer-social a:hover{color:var(--color-accent);border-color:var(--color-accent)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-5);border-top:1px solid rgba(255,255,255,0.06);flex-wrap:wrap;gap:var(--space-3)}
.footer-bottom p{font-size:var(--text-xs);color:rgba(255,255,255,0.22);line-height:1.5}
.footer-bottom a{color:rgba(255,255,255,0.32);transition:color var(--duration-base);text-decoration:underline}
.footer-bottom a:hover{color:var(--color-accent)}
@media(max-width:700px){
  .site-footer{padding-block:var(--space-6) var(--space-4);margin-top:var(--space-10)}
  .footer-inner{flex-direction:column;gap:var(--space-5);margin-bottom:var(--space-5)}
  .footer-brand{max-width:100%}
  .footer-brand p{max-width:100%}
  .footer-col ul{display:flex;gap:var(--space-4);flex-wrap:wrap}
  .footer-col ul li{margin-bottom:0}
  .footer-bottom{flex-direction:column-reverse;gap:var(--space-2);padding-top:var(--space-4);align-items:flex-start}
}

/* ============ PHOTOGRAPHER PAGE ============ */
.photographer-hero{padding-top:calc(var(--nav-height) + var(--space-10));padding-bottom:var(--space-10)}
.photographer-grid{display:grid;grid-template-columns:360px 1fr;gap:var(--space-16);align-items:start}
.photographer-portrait{position:sticky;top:calc(var(--nav-height) + var(--space-6))}
.photographer-portrait__img-wrap{aspect-ratio:4/5;overflow:hidden;margin-bottom:var(--space-5);background:var(--color-bg-muted)}
.photographer-portrait__img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform var(--duration-slower) var(--ease-expo)}
.photographer-portrait__img-wrap:hover .photographer-portrait__img{transform:scale(1.03)}
.photographer-portrait__name{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:700;letter-spacing:-0.02em;margin-bottom:var(--space-1);color:var(--color-text)}
.photographer-portrait__role{color:var(--color-text-tertiary);font-size:var(--text-sm);margin-bottom:var(--space-5);letter-spacing:0.02em}
.social-links{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-5)}
.social-link{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:500;letter-spacing:0.04em;padding:0.4em 0.85em;border:1px solid var(--color-border);color:var(--color-text-secondary);transition:all var(--duration-base);border-radius:2px;background:var(--color-bg-soft)}
.social-link:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-light)}
.contact-details{border-top:1px solid var(--color-border);padding-top:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}
.contact-detail-item{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary)}
.contact-detail-item svg{flex-shrink:0;color:var(--color-accent);opacity:0.8}
.contact-detail-item a{transition:color var(--duration-base)}
.contact-detail-item a:hover{color:var(--color-accent)}
.photographer-bio{padding-top:var(--space-4)}
.photographer-bio .section-title{font-size:var(--text-2xl)}
.bio-text{font-size:var(--text-md);color:var(--color-text-secondary);line-height:1.9;margin-bottom:var(--space-6)}
.equipment-list{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);margin-top:var(--space-5)}
.equipment-item{padding:var(--space-4);border:1px solid var(--color-border);background:var(--color-bg-soft)}
.equipment-item__label{font-size:var(--text-xs);font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-2)}
.equipment-item__value{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.6}
@media(max-width:900px){
  .photographer-hero{padding-top:calc(var(--nav-height) + var(--space-6));padding-bottom:var(--space-6)}
  .photographer-grid{grid-template-columns:1fr;gap:var(--space-8)}
  .photographer-portrait{position:static;max-width:280px}
  .photographer-portrait__img-wrap{aspect-ratio:3/4}
}
@media(max-width:600px){
  .photographer-portrait{max-width:100%}
  .photographer-portrait__img-wrap{aspect-ratio:4/5;max-height:360px;overflow:hidden}
  .equipment-list{grid-template-columns:1fr}
}
/* ============ LICENSE / HOW-TO-USE PAGE ============ */
.license-page{padding-top:calc(var(--nav-height) + var(--space-16))}
.license-hero-text{max-width:680px;margin:0 auto;text-align:center;margin-bottom:var(--space-16)}
.license-hero-text .section-title{font-size:clamp(var(--text-2xl),4vw,var(--text-4xl));margin-bottom:var(--space-5)}
.license-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);margin-bottom:var(--space-12)}
@media(max-width:700px){.license-grid{grid-template-columns:1fr}}
.license-card{padding:var(--space-6);border:1px solid var(--color-border);position:relative;background:var(--color-bg)}
.license-card--allowed{border-left:3px solid var(--color-accent)}
.license-card--prohibited{border-left:3px solid #E53E3E}
.license-card__icon{width:32px;height:32px;margin-bottom:var(--space-4);opacity:0.65}
.license-card__title{font-family:var(--font-heading);font-size:var(--text-lg);margin-bottom:var(--space-3)}
.license-card__list{list-style:none}
.license-card__list li{font-size:var(--text-sm);color:var(--color-text-secondary);padding-block:var(--space-2);border-bottom:1px solid var(--color-border-light);display:flex;gap:var(--space-3);align-items:flex-start;line-height:1.5}
.license-card__list li::before{content:'';flex-shrink:0;width:4px;height:4px;border-radius:50%;background:currentColor;margin-top:0.5em}
.license-credit-box{background:var(--color-bg-soft);border:1px solid var(--color-border);padding:var(--space-8);text-align:center;margin:var(--space-12) auto;max-width:600px}
.license-credit-box__label{font-size:var(--text-xs);letter-spacing:0.15em;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:var(--space-3)}
.license-credit-box__format{font-family:var(--font-heading);font-size:var(--text-2xl);color:var(--color-text)}

/* ============ CONTACT (legacy) ============ */
.contact-page{padding-top:calc(var(--nav-height) + var(--space-16));padding-bottom:var(--space-24)}
.contact-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:var(--space-16);align-items:start}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
.contact-info__title{font-family:var(--font-heading);font-size:var(--text-3xl);margin-bottom:var(--space-5)}
.contact-info__text{font-size:var(--text-base);color:var(--color-text-secondary);line-height:1.8;margin-bottom:var(--space-6)}
.contact-detail{display:flex;flex-direction:column;gap:var(--space-4);padding-top:var(--space-6);border-top:1px solid var(--color-border)}
.contact-detail__item{display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary)}
.contact-form{display:grid;gap:var(--space-5)}
.form-group{display:flex;flex-direction:column;gap:var(--space-2)}
.form-label{font-size:var(--text-xs);font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--color-text)}
.form-control{width:100%;padding:var(--space-4) var(--space-5);font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:0;outline:none;transition:border-color var(--duration-base) var(--ease-out);appearance:none}
.form-control:focus{border-color:var(--color-accent)}
.form-control:invalid:not(:placeholder-shown){border-color:#E53E3E}
textarea.form-control{resize:vertical;min-height:140px;line-height:1.7}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
@media(max-width:600px){.form-row{grid-template-columns:1fr}}
.flash{padding:var(--space-4) var(--space-5);font-size:var(--text-sm);margin-bottom:var(--space-4);border-left:3px solid currentColor}
.flash--success{color:#2D6A4F;background:#D8F3DC;border-color:#2D6A4F}
.flash--error{color:#9B2226;background:#FFE8E8;border-color:#9B2226}
.flash--info{color:#1E3A5F;background:#E8F4FD;border-color:#1E3A5F}

/* ============ PAGE HEADERS ============ */
.page-header{padding-top:calc(var(--nav-height) + var(--space-12));padding-bottom:var(--space-10);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-10)}
.page-header__eyebrow{font-size:var(--text-xs);font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-3);display:block}
.page-header__title{font-family:var(--font-heading);font-size:clamp(var(--text-2xl),5vw,var(--text-4xl));font-weight:700;letter-spacing:-0.03em;margin-bottom:var(--space-3)}
.page-header__subtitle{font-size:var(--text-md);color:var(--color-text-secondary);max-width:560px}
@media(max-width:600px){.page-header{padding-top:calc(var(--nav-height) + var(--space-8));padding-bottom:var(--space-6);margin-bottom:var(--space-6)}}

/* ============ 404 PAGE ============ */
.not-found-page{min-height:80vh;display:flex;align-items:center;padding-top:var(--nav-height)}
.not-found-inner{text-align:center;padding:var(--space-24) 0}
.not-found-code{font-family:var(--font-heading);font-size:clamp(6rem,15vw,10rem);font-weight:700;color:var(--color-border);line-height:1;display:block;margin-bottom:var(--space-6)}
.not-found-title{font-size:var(--text-2xl);margin-bottom:var(--space-4)}
.not-found-text{margin-bottom:var(--space-8);max-width:400px;margin-inline:auto}

/* ============ LAZY LOAD / REVEAL / UTILS ============ */
.lazyload,.lazyloading{opacity:0;transition:opacity var(--duration-slow) var(--ease-out)}
.lazyloaded{opacity:1}
.reveal{opacity:0;transform:translateY(24px);transition:opacity var(--duration-slow) var(--ease-expo),transform var(--duration-slow) var(--ease-expo)}
.reveal.revealed{opacity:1;transform:translateY(0)}
.reveal--delay-1{transition-delay:80ms}
.reveal--delay-2{transition-delay:160ms}
.reveal--delay-3{transition-delay:240ms}
.reveal--delay-4{transition-delay:320ms}
.text-center{text-align:center}.text-right{text-align:right}.text-accent{color:var(--color-accent)}
.text-muted{color:var(--color-text-secondary)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}
.mt-auto{margin-top:auto}.mb-0{margin-bottom:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.divider{border:none;border-top:1px solid var(--color-border);margin-block:var(--space-10)}
.spinner{width:28px;height:28px;border:1.5px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin 0.75s linear infinite;margin-inline:auto}
@keyframes spin{to{transform:rotate(360deg)}}
.filter-tag{display:inline-block;font-size:var(--text-xs);font-weight:500;letter-spacing:0.05em;padding:0.45em 1em;border:1px solid var(--color-border);color:var(--color-text-secondary);background:var(--color-bg);transition:all var(--duration-base);border-radius:2px}
.filter-tag:hover,.filter-tag.active{background:var(--color-text);color:var(--color-white);border-color:var(--color-text)}
