/* =====================================================
   Inside The Shot – Stylesheet
   ===================================================== */

:root {
    --its-bg:       #f6f8fb;
    --its-surface:  #ffffff;
    --its-border:   #d9e0ea;
    --its-accent:   #b8cc00;
    --its-text:     #1f2937;
    --its-muted:    #667085;
    --its-radius:   12px;
    --its-font:     -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --its-max:      1400px;
    --its-pad:      clamp(1rem, 5vw, 4rem);
    --accent:       var(--its-accent);
    --contrast:     var(--its-text);
    --contrast-2:   #475467;
    --base-2:       #eef2f7;
    --its-contrast: #1f2937;
}

/* ── Reset ── */
.its-archive-wrap *, .its-single *, .its-form-wrap * { box-sizing: border-box; }
.shadow-xl {
	box-shadow: 0 20px 25px -10px rgba(25, 24, 34, 0.1), 0px 10px 10px 0px rgba(25, 24, 34, 0.04) !important;
}

/* ══════════════════════════════════════
   ARCHIVE
══════════════════════════════════════ */
.its-archive-wrap {
    max-width: var(--its-max);
    margin: 0 auto;
    padding: 3rem var(--its-pad);
    font-family: var(--its-font);
}

.its-archive-header {
    text-align: center;
    margin-bottom: 3rem;
}
.its-page-title {
    text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, .1), 0 0 5px rgba(0, 0, 0, .1), 0 1px 3px rgba(0, 0, 0, .3), 0 3px 5px rgba(0, 0, 0, .2), 0 5px 10px rgba(0, 0, 0, .25), 0 10px 10px rgba(0, 0, 0, .2), 0 20px 20px rgba(0, 0, 0, .15);
}
.its-archive-title {
    font-size: clamp(1rem, 3vw, 2rem);
    font-weight: 800;
    letter-spacing: -.02em;
    margin: 0 0 .5rem;
    line-height: 1;
}
.its-archive-subtitle {
    color: var(--its-muted);
    font-size: 1.1rem;
    margin: 0;
}
.its-intro-text {  
    max-width: 700px;
    margin: 1.5rem auto 0;
    line-height: 1.65;
    font-size: 1.05rem;

}

/* Grid */
.its-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1.5rem;
}

/* Card */
.its-card {
    border-radius: var(--its-radius);
    overflow: hidden;
    background: var(--its-surface);
    border: 1px solid var(--its-border);
    transition: transform .25s ease, box-shadow .25s ease;
}
.its-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(15,23,42,.12); }
.its-card__link { display: block; text-decoration: none; color: inherit; }

.its-card__img-wrap {
    position: relative;
    aspect-ratio: 3/2;
    overflow: hidden;
    background: #e9edf3;
}
.its-card__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.its-card:hover .its-card__img { transform: scale(1.04); }

.its-card__overlay {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(15,23,42,.22);
    opacity: 0; transition: opacity .25s;
}
.its-card:hover .its-card__overlay { opacity: 1; }
.its-card__view-btn {
    padding: .6rem 1.4rem;
    background: var(--accent);
    color: #fff;
    font-weight: 700;
    border-radius: 999px;
    font-size: .9rem;
    letter-spacing: .02em;
}

.its-card__meta {
    display: flex; gap: .75rem; align-items: center;
    padding: .9rem 1rem .25rem;
    font-size: .78rem;
    color: var(--its-muted);
}
.its-card__location, .its-card__date {
    display: flex; align-items: center; gap: .25rem;
}
.its-card__title {
    font-size: 1rem; font-weight: 700;
    margin: 0; padding: 0 1rem .4rem;
    line-height: 1.3;
}
.its-card__photographer {
    font-size: .8rem; color: var(--its-muted);
    margin: 0; padding: 0 1rem 1rem;
}

/* Pagination */
.its-pagination {
    margin-top: 3rem;
    text-align: center;
    display: flex; gap: .5rem; justify-content: center; flex-wrap: wrap;
}
.its-pagination .page-numbers {
    padding: .5rem 1rem;
    border-radius: 8px;
    background: var(--its-surface);
    border: 1px solid var(--its-border);
    color: var(--contrast);
    text-decoration: none;
    font-weight: 600;
    transition: background .2s;
}
.its-pagination .page-numbers.current,
.its-pagination .page-numbers:hover { background: var(--accent); color: #000; border-color: transparent; }

.its-empty { text-align: center; color: var(--its-muted); font-size: 1.1rem; padding: 4rem 0; }

/* ══════════════════════════════════════
   SINGLE – HERO
══════════════════════════════════════ */
.its-single { margin: 0 auto; font-family: var(--its-font); background: var(--its-bg); min-height: 100vh; color: var(--contrast); }

.its-hero {
    position: relative;
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.its-hero__stage {
    position: relative; z-index: 1;
    width: 100%;
    max-width: 1400px;
    padding: 5rem var(--its-pad) 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.its-hero__figure {
    position: relative;
    margin: 0;
    width: fit-content;
    max-width: 100%;
    max-height: 80svh;
    display: inline-flex;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 30px 80px rgba(15,23,42,.2);
}
.its-hero__img {
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 80svh;
    object-fit: contain;
    display: block;
    cursor: zoom-in;
}

/* Caption */
.its-hero__caption {
    position: relative; z-index: 2;
    width: 100%;
    max-width: 1400px;
    padding: 1.5rem var(--its-pad) 3rem;
}
.its-hero__title {
    font-size: clamp(1.5rem, 3vw, 2.5rem);
    font-weight: 800;
    letter-spacing: -.02em;
    margin: 0 0 .75rem;
}
.its-hero__chips { display: flex; flex-wrap: wrap; gap: .5rem; }

.its-chip {
    display: inline-flex; align-items: center; gap: .4rem;
    padding: .35rem .85rem;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
    font-size: .83rem;
    backdrop-filter: blur(8px);
}
.its-chip--photo { background: rgba(232,255,0,.12); border-color: rgba(232,255,0,.25); color: var(--accent); }

/* Fullscreen button */
.its-hero__fullscreen {
    position: absolute; top: .75rem; right: .75rem; z-index: 10;
    width: 44px; height: 44px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.3);
    background: rgba(17,24,39,.72);
    backdrop-filter: blur(8px);
    color: #fff !important;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    padding: 0;
    box-shadow: 0 10px 24px rgba(0,0,0,.25);
    transition: background .2s, transform .2s;
}
.its-hero__fullscreen:hover { background: var(--accent); color: #000; transform: scale(1.05); }
.its-hero__fullscreen svg {
    display: block;
    width: 20px;
    height: 20px;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2.2;
    pointer-events: none;
}

/* Fullscreen overlay */
.its-hero__img.its--fullscreen-active {
    position: fixed; inset: 0; z-index: 2147483646;
    max-height: 100vh; max-width: 100vw;
    width: 100vw; height: 100vh;
    object-fit: contain;
    background: #000;
    border-radius: 0;
    cursor: zoom-out;
    margin: 0;
}
.its--fullscreen-open .its-hero__caption,
.its--fullscreen-open .its-hero__fullscreen {
    display: none !important;
}
.its--fullscreen-open .main-navigation {
    display: none !important;
}

/* ── Details section ── */
.its-details {
    max-width: 900px;
    margin: 0 auto;
    padding: 3rem var(--its-pad) 6rem;
}

.its-section { margin-bottom: 3rem; }
.its-section__heading {
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--accent);
    margin: 0 0 1.25rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--its-border);
}

.its-story {
    font-size: 1.15rem;
    line-height: 1.75;
    color: #334155;
}

/* Facts */
.its-facts { display: grid; gap: 1rem; list-style: none; margin: 0; padding: 0; }
.its-facts__row { display: flex; gap: 1rem; align-items: baseline; }
.its-facts__row dt {
    display: flex; align-items: center; gap: .4rem;
    min-width: 140px;
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--its-muted);
    flex-shrink: 0;
}
.its-facts__row dd { margin: 0; font-size: 1rem; font-weight: 600; }

/* Post nav */
.its-post-nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin: 3rem 0 2rem;
}
.its-post-nav__link {
    display: flex; flex-direction: column; gap: .25rem;
    padding: 1.25rem;
    border-radius: var(--its-radius);
    background: var(--its-surface);
    border: 1px solid var(--its-border);
    text-decoration: none; color: inherit;
    transition: border-color .2s, background .2s;
}
.its-post-nav__link:hover { border-color: var(--accent); background: rgba(232,255,0,.04); }
.its-post-nav__link span { font-size: .78rem; color: var(--its-muted); }
.its-post-nav__link strong { font-size: .95rem; line-height: 1.3; }
.its-post-nav__link--next { text-align: right; }

/* Buttons */
.its-btn {
    display: inline-flex; align-items: center; gap: .5rem;
    padding: .75rem 1.75rem;
    font-weight: 700;
    font-size: .95rem;
    cursor: pointer;
    transition: background .2s, color .2s, transform .15s;
    text-decoration: none;
    border: none;
}
.its-btn--primary { background: var(--its-contrast); color: #fff; }
.its-btn--primary:hover { background: var(--accent); }
.its-btn--ghost {
    background: transparent;
    color: var(--contrast);
    border: 1px solid var(--its-border);
}
.its-btn--ghost:hover { border-color: var(--accent); color: var(--accent); }

.its-cta-back { margin-top: 1.5rem; }

/* ══════════════════════════════════════
   UPLOAD FORM
══════════════════════════════════════ */
.its-form-wrap {
    margin: 0 auto;
    font-family: var(--its-font);
    color: var(--contrast);
}

.its-form-header { margin-bottom: 2.5rem; }
.its-form-title { font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 800; margin: 0 0 .6rem; }
.its-form-intro { color: var(--contrast); line-height: 1.65; margin: 0; }

.its-form { display: flex; flex-direction: column; gap: 1.5rem; }

.its-form__field { display: flex; flex-direction: column; gap: .5rem; }
.its-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }

.its-form__label {
    font-size: .88rem;
    font-weight: 600;
    color: var(--contrast-2);
    letter-spacing: .02em;
}
.its-req { color: var(--accent); }

.its-form__input,
.its-form__textarea {
    appearance: none;
    -webkit-appearance: none;
    padding: .85rem 1.1rem;
    border: 1px solid var(--its-border);
    background: var(--base-2);
    color: var(--contrast);
    font-family: var(--its-font);
    font-size: 1rem;
    transition: border-color .2s, background .2s;
    width: 100%;
    box-shadow: none;
}
.its-form__input { height: 48px; }
.its-form__input:focus,
.its-form__textarea:focus {
    outline: none;
    border-color: var(--accent);
    background: rgba(184,204,0,.1);
    box-shadow: none;
}
.its-form__input::placeholder,
.its-form__textarea::placeholder { color: #555; }
.its-form__textarea { height: auto; resize: vertical; min-height: 130px; }

.its-form__input[type="date"] {
    padding-top: 0;
    padding-bottom: 0;
    padding-right: 2.25rem;
    line-height: 46px;
}

.its-form__input[type="date"]::-webkit-calendar-picker-indicator {
    cursor: pointer;
    margin: 0;
    opacity: .8;
}

/* Keep non-focused fields visually neutral even if global theme styles target :valid/:invalid */
#itsUploadForm .its-form__input:not(:focus):not(:focus-visible),
#itsUploadForm .its-form__textarea:not(:focus):not(:focus-visible),
#itsUploadForm .its-form__input:valid:not(:focus):not(:focus-visible),
#itsUploadForm .its-form__textarea:valid:not(:focus):not(:focus-visible),
#itsUploadForm .its-form__input:invalid:not(:focus):not(:focus-visible),
#itsUploadForm .its-form__textarea:invalid:not(:focus):not(:focus-visible) {
    border-color: var(--its-border) !important;
    background: var(--base-2) !important;
}

#itsUploadForm .its-form__input:focus,
#itsUploadForm .its-form__textarea:focus,
#itsUploadForm .its-form__input:focus-visible,
#itsUploadForm .its-form__textarea:focus-visible {
    border-color: var(--accent) !important;
    background: rgba(184,204,0,.1) !important;
}

/* Drop zone */
.its-drop-zone {
    position: relative;
    border-radius: var(--its-radius);
    border: 2px dashed var(--contrast-2);
    transition: border-color .2s, background .2s;
    overflow: hidden;
}
.its-drop-zone.dragover { border-color: var(--accent); background: rgba(232,255,0,.05); }
.its-drop-zone__input {
    position: absolute; inset: 0;
    opacity: 0; cursor: pointer; width: 100%; height: 100%; z-index: 2;
}
.its-drop-zone__ui {
    padding: 2rem;
    display: flex; flex-direction: column; align-items: center; gap: .5rem;
    text-align: center; color: #888; pointer-events: none;
}
.its-drop-zone__ui svg { stroke: #666; }
.its-drop-zone__hint { font-size: .82rem; margin: 0; }

.its-drop-zone__preview {
    position: relative;
    max-height: 320px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #edf1f7;
}
.its-drop-zone__preview[hidden] { display: none !important; }
.its-drop-zone__preview:not([hidden]) { display: flex !important; }
.its-drop-zone__preview img {
    width: 100%;
    height: 320px;
    object-fit: contain;
    display: block;
}
.its-drop-zone__remove {
    position: absolute; top: .75rem; right: .75rem;
    width: 32px; height: 32px;
    min-width: 32px; min-height: 32px;
    max-width: 32px; max-height: 32px;
    aspect-ratio: 1 / 1;
    padding: 0;
    margin: 0;
    line-height: 1;
    border-radius: 50%;
    border: none;
    appearance: none;
    -webkit-appearance: none;
    background: rgba(0,0,0,.7);
    color: #fff;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    display: flex; align-items: center; justify-content: center;
    z-index: 5;
    transition: background .2s;
}
.its-drop-zone__remove:hover { background: #e00; }

/* Legal checkbox */
.its-form__field--legal {
    background: var(--base-2);
    border-radius: 10px;
    padding: 1.1rem 1.25rem;
}
.its-form__checkbox-label {
    display: flex; gap: .85rem; align-items: flex-start;
    font-size: .8em; line-height: 1.6; color: #555; cursor: pointer;
}
.its-form__checkbox {
    width: 18px; height: 18px; flex-shrink: 0; margin-top: .15rem;
    accent-color: var(--accent);
    cursor: pointer;
}

.its-form__required-note { font-size: .8rem; color: var(--its-muted); margin: 0; }
.its-form__field-note {
    margin: 0;
    font-size: .8em;
    line-height: 1.4;
    color: var(--its-muted);
}
.its-form__honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Submit row */
.its-form__submit { display: flex; align-items: center; gap: 1rem; }
.its-btn__spinner { display: flex; }
.its-btn__spinner[hidden] { display: none; }
@keyframes its-spin { to { transform: rotate(360deg); } }
.its-spin { animation: its-spin .8s linear infinite; }

/* Messages */
.its-form__msg {
    padding: 1.1rem 1.4rem;
    border-radius: var(--its-radius);
    font-weight: 600;
    font-size: .95rem;
    line-height: 1.5;
}
.its-form__msg--success { color: #219653; background-color: rgba(33, 150, 83, 0.1); }
.its-form__msg--error   { color: #d50100; background-color: rgba(213, 1, 0, 0.1); }

/* ── Responsive ── */
@media (max-width: 640px) {
    .its-form__row { grid-template-columns: 1fr; }
    .its-post-nav { grid-template-columns: 1fr; }
    .its-facts__row { flex-direction: column; gap: .25rem; }
    .its-facts__row dt { min-width: unset; }
}
