/*
Theme Name: Defiant Films
Description: A custom film and photography portfolio with curated homepage highlights, dedicated galleries and a simple portfolio editor.
Version: 1.0.7
Requires at least: 6.5
Requires PHP: 8.0
Author: Defiant Films
Text Domain: defiant-films
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#111210;--fg:#f3f1e9;--muted:#aaa9a2;--line:#393a34;--accent:#f34b31;--font:'DM Sans',Arial,sans-serif;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}a,button,input,textarea{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:7px}img{display:block;width:100%;object-fit:cover}p,h1,h2,h3,figure{margin:0}::selection{background:var(--accent);color:var(--bg)}.skip-link{position:absolute;left:20px;top:-100px;background:var(--fg);color:var(--bg);padding:10px;z-index:9}.skip-link:focus{top:15px}.site-header{margin:0 4.5%;height:100px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font:800 24px/.85 var(--display);position:relative;letter-spacing:-.5px}.wordmark span{display:block;font-size:15px;letter-spacing:5px;margin-top:5px}.wordmark i{position:absolute;width:7px;height:7px;right:-13px;bottom:1px;background:var(--accent)}nav{display:flex;align-items:center;gap:35px;font-size:14px}nav a:hover,.text-link:hover{color:var(--accent)}.nav-contact{margin-left:32px}.nav-contact span{margin-left:22px;color:var(--accent)}.hero{padding:38px 4.5% 0}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:1.6px;font-weight:600}.hero-top{display:flex;justify-content:space-between;color:var(--muted)}h1{font-family:var(--display);font-weight:800;font-size:clamp(100px,21.8vw,390px);letter-spacing:-.035em;line-height:.76;margin:52px 0 24px;display:flex;justify-content:space-between;align-items:flex-end}h1>span{font-size:.64em;color:var(--accent);letter-spacing:-.025em}.title-dot{color:var(--fg)}.hero-bottom{display:flex;justify-content:space-between;align-items:center;margin:38px 0 40px}.hero-bottom p{font-size:20px;line-height:1.35}.round-link{display:flex;align-items:center;gap:22px;font-size:14px}.round-link b{width:48px;height:48px;border:1px solid #66665e;border-radius:50%;display:grid;place-items:center;font-size:24px;font-weight:400;transition:background .2s}.round-link:hover b{background:var(--accent);border-color:var(--accent)}.hero-image{height:clamp(320px,46vw,710px);position:relative;overflow:hidden}.hero-image img{height:100%;object-position:center 54%}.image-caption{position:absolute;bottom:0;left:0;right:0;padding:40px 24px 20px;display:flex;justify-content:space-between;font-size:12px;text-transform:uppercase;letter-spacing:1px;background:linear-gradient(transparent,#000b);color:#fff}.section{padding:105px 4.5%;border-bottom:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:40px}.section-number{color:var(--muted);display:block;margin-bottom:16px}h2{font:700 clamp(62px,7vw,112px)/.95 var(--display);letter-spacing:-.02em}.section-heading>p{color:var(--muted);font-size:16px;line-height:1.5;max-width:250px;padding-bottom:4px}.film-image{position:relative;height:clamp(260px,42vw,640px);overflow:hidden}.film-image img{height:100%;object-position:center 64%}.sample-tag{position:absolute;left:25px;bottom:22px;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;background:#111b;color:#fff;padding:5px 10px}.frame-mark{position:absolute;width:24px;height:24px;border-color:#ffffff80}.top-left{top:22px;left:22px;border-top:1px solid;border-left:1px solid}.bottom-right{bottom:22px;right:22px;border-bottom:1px solid;border-right:1px solid}.project-caption{display:flex;justify-content:space-between;align-items:center;margin-top:19px;gap:20px}.project-caption h3{font-size:20px;font-weight:500}.project-caption>span{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.selection-note{font-size:14px;color:var(--muted);margin-top:7px}.selection-note a{text-decoration:underline;text-underline-offset:4px}.photo-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:10%;align-items:center}.photo-layout img{height:680px;max-height:65vw;object-position:center}.photo-layout figcaption{display:flex;justify-content:space-between;font-size:12px;text-transform:uppercase;letter-spacing:1px;margin-top:14px;color:var(--muted)}.photo-aside .asterisk{font-size:80px;line-height:1;color:var(--accent);display:block;margin-bottom:35px}.photo-aside h3{font:600 clamp(42px,5vw,76px)/1.04 var(--display);letter-spacing:-.015em}.photo-aside p{color:var(--muted);margin:25px 0 45px;max-width:250px}.photo-aside .eyebrow{font-size:12px}.about-section{background:var(--fg);color:var(--bg)}.about-section .section-number{color:#64645c}.about-content{display:grid;grid-template-columns:1.35fr 1fr;gap:8%;align-items:center}.about-content h2{font-size:clamp(58px,6.3vw,96px)}.about-content em{font-style:normal;color:#ce341d}.about-copy p{margin-bottom:20px;max-width:460px;color:#46473f}.text-link{display:inline-block;border-bottom:1px solid #77796e;padding:8px 0;font-size:14px}.text-link span{margin-left:24px}.contact-section{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding-top:110px;padding-bottom:100px}.contact-intro h2{font-size:clamp(70px,7.5vw,112px)}.contact-intro h2 span{color:var(--accent)}.contact-intro>p{color:var(--muted);margin:25px 0}.email-link{font-size:clamp(16px,1.65vw,24px);display:inline-block;border-bottom:1px solid var(--line);padding-bottom:8px}.email-link span{color:var(--accent);margin-left:14px}form{padding-top:10px;min-width:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:25px}.field{margin-bottom:30px;min-width:0}label{font-size:14px;display:block;margin-bottom:10px}input,textarea{border:0;border-bottom:1px solid #626359;color:var(--fg);background:transparent;border-radius:0;padding:12px 0;width:100%;outline:none}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 1px 0 var(--accent)}input::placeholder,textarea::placeholder{color:#96978e}textarea{resize:vertical;min-height:140px}.form-note{font-size:12px;color:var(--muted);margin-bottom:25px}.send-button{background:var(--accent);color:#111;border:0;width:100%;padding:17px 22px;display:flex;justify-content:space-between;font-weight:600;cursor:pointer;transition:background .2s}.send-button:hover{background:#ff725c}.send-button:disabled{opacity:.65;cursor:wait}.send-button span{font-size:22px;line-height:1}.form-status{font-size:14px;margin-top:16px}.form-status.error{color:#ffad9e}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}footer{padding:45px 4.5% 28px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:25px}.footer-logo{font:700 32px/1 var(--display)}.footer-logo span{color:var(--accent)}footer>div{display:flex;gap:50px;align-items:center;font-size:12px;color:var(--muted)}.draft-note{width:100%;font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:22px;margin-top:15px}
@media(min-width:1800px){body{max-width:2000px;margin:auto}}@media(max-width:760px){html{scroll-padding-top:20px}.site-header{height:auto;min-height:95px;gap:20px;flex-wrap:wrap;padding:22px 0}nav{gap:20px;font-size:14px}.nav-contact{margin-left:0}.nav-contact span{margin-left:6px}.hero{padding-top:25px}.location{display:none}h1{font-size:23vw;display:block;margin-top:35px;line-height:.8}h1>span{font-size:.74em;display:block;text-align:right;margin-top:10px}.hero-bottom{margin:30px 0}.hero-bottom p{font-size:17px}.round-link{gap:12px}.round-link b{width:40px;height:40px}.hero-image{height:400px}.image-caption{padding:30px 14px 14px;font-size:12px;gap:20px}.image-caption span:last-child{max-width:145px;text-align:right}.section{padding:65px 4.5%}.section-heading{gap:22px;align-items:flex-start}.section-heading>p{max-width:165px;font-size:14px;padding-top:40px}h2{font-size:64px}.photo-section .section-heading{display:block}.photo-section .section-heading>p{padding-top:20px;max-width:none}.project-caption{display:block}.project-caption>span{display:block;margin-top:8px}.photo-layout{gap:8%;grid-template-columns:1.2fr 1fr}.photo-layout img{height:420px;max-height:none}.photo-aside .asterisk{font-size:55px;margin-bottom:20px}.photo-aside h3{font-size:36px}.photo-aside p{font-size:14px;margin:20px 0}.photo-aside .eyebrow{display:none}.photo-layout figcaption{gap:10px;font-size:12px}.about-content,.contact-section{grid-template-columns:1fr;gap:35px}.about-copy p{max-width:none}.contact-intro h2{font-size:80px}form{padding-top:15px}.footer-logo{font-size:28px}footer>div{gap:25px}}@media(max-width:420px){nav{gap:16px;flex-wrap:wrap}.site-header{align-items:flex-start}.wordmark{margin-right:30px}.photo-layout{display:block}.photo-layout img{height:440px}.photo-aside{margin-top:35px}.photo-aside h3 br{display:none}.photo-aside h3{font-size:42px}.photo-aside .asterisk{float:right;font-size:42px}.form-row{grid-template-columns:1fr;gap:0}.section-heading>p{max-width:130px}.round-link>span{max-width:75px;line-height:1.3}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.film-grid,.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 24px}.highlights{grid-template-columns:repeat(3,minmax(0,1fr))}.film-grid .film-image{height:auto;aspect-ratio:16/10}.film-grid .film-image img{height:100%}.film-grid .project-caption{display:block}.film-grid .project-caption h3{font-size:19px}.film-grid .project-caption>span{display:block;margin-top:4px}.film-grid .selection-note{font-size:13px}.photo-open{padding:0;border:0;background:none;cursor:zoom-in;width:100%;position:relative;overflow:hidden;display:block}.photo-open img{aspect-ratio:4/3;height:auto;transition:transform .35s;object-fit:cover}.photo-open:hover img{transform:scale(1.025)}.photo-open>span,.watch-film{position:absolute;right:15px;bottom:15px;border-radius:50%;height:38px;width:38px;display:grid;place-items:center;background:#111b;color:#fff;font-size:22px}.photo-grid figcaption{display:flex;justify-content:space-between;gap:10px;font-size:12px;letter-spacing:.6px;margin-top:12px;color:var(--muted)}.portfolio-link{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:35px;padding:20px 0 0;font-size:16px}.portfolio-link span{color:var(--accent);font-size:25px}.portfolio-link:hover{color:var(--accent)}.page-title{font:700 clamp(68px,10vw,150px)/.95 var(--display);display:block;color:var(--fg);margin:35px 0 0;letter-spacing:-.02em}.portfolio-page{padding-top:45px;min-height:70vh}.gallery-note{color:var(--muted);font-size:14px;margin-bottom:30px}.back-link{color:var(--muted)}.portfolio-page .section-heading{margin-bottom:35px}#photo-lightbox{border:0;padding:60px 18px 18px;background:#111;max-width:94vw;max-height:94vh;overflow:auto}#photo-lightbox::backdrop{background:#000e}#photo-lightbox img{max-width:85vw;max-height:78vh;width:auto;height:auto;object-fit:contain}#photo-lightbox>button{position:absolute;right:20px;top:12px;background:transparent;border:0;color:#fff;cursor:pointer;padding:8px;font-size:16px}.film-image>a{display:block;height:100%}.film-image>a:hover img{filter:brightness(1.1)}.watch-film{font-size:16px}.section-heading h2{font-size:clamp(54px,6.5vw,104px)}@media(max-width:850px){.highlights{grid-template-columns:repeat(2,minmax(0,1fr))}.highlights> :last-child:nth-child(3){grid-column:1/-1;width:calc(50% - 12px)}.section-heading h2{font-size:58px}}@media(max-width:560px){.film-grid{grid-template-columns:1fr;gap:32px}.film-grid.highlights> :last-child:nth-child(3){grid-column:auto;width:100%}.photo-grid,.photo-grid.highlights{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 12px}.photo-grid.highlights> :last-child:nth-child(3){grid-column:auto;width:100%}.photo-grid figcaption{display:block;font-size:12px}.photo-grid figcaption>span{display:block}.photo-grid figcaption>span+span{margin-top:3px}.photo-open>span{right:8px;bottom:8px;width:30px;height:30px;font-size:18px}.section-heading{display:block}.section-heading>p{padding-top:18px;max-width:none}.section-heading h2{font-size:58px}.page-title{font-size:clamp(54px,13vw,80px)}.film-grid .film-image{min-height:0}.photo-grid .photo-open img{aspect-ratio:1}.film-grid .project-caption{margin-top:12px}.hero-image{height:300px}}@media(prefers-reduced-motion:reduce){.photo-open img{transition:none}}

/* Photography preserves the photographer's full composition at every breakpoint. */
.photo-grid { align-items: start; }
.photo-grid .photo-open img { aspect-ratio: auto; width: 100%; height: auto; object-fit: contain; }
.photo-grid .photo-open:hover img { transform: none; }


.photo-grid.highlights > :last-child:nth-child(3) { grid-column: auto; width: auto; }
/* Stack photos independently in columns, without row-height gaps. */
.photo-grid { display: block; column-count: 2; column-gap: 24px; }
.photo-grid.highlights { column-count: 3; }
.photo-grid > figure,
.photo-grid.highlights > figure:last-child:nth-child(3) {
  display: inline-block;
  vertical-align: top;
  width: 100%;
  margin: 0 0 32px;
  break-inside: avoid;
  page-break-inside: avoid;
}
@media (max-width: 850px) {
  .photo-grid.highlights { column-count: 2; }
}
@media (max-width: 560px) {
  .photo-grid, .photo-grid.highlights { column-count: 2; column-gap: 12px; }
  .photo-grid > figure,
  .photo-grid.highlights > figure:last-child:nth-child(3) { margin-bottom: 25px; }
}

/* Dedicated portfolios: three desktop columns, adapting to smaller screens. */
.portfolio-page .film-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.portfolio-page .photo-grid { column-count: 3; }
@media (max-width: 850px) {
  .portfolio-page .film-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portfolio-page .photo-grid { column-count: 2; }
}
@media (max-width: 560px) {
  .portfolio-page .film-grid { grid-template-columns: 1fr; }
}

/* Measured masonry keeps all desktop columns occupied, even with few photos. */
.photo-grid, .photo-grid.highlights, .portfolio-page .photo-grid {
  display: grid;
  column-count: auto;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 24px;
  align-items: start;
}
.photo-grid > figure, .photo-grid.highlights > figure:last-child:nth-child(3) {
  display: block;
  width: 100%;
  margin: 0;
  padding-bottom: 32px;
}
.photo-grid.masonry-ready { grid-auto-rows: 1px; }
@media (max-width: 850px) {
  .photo-grid, .photo-grid.highlights, .portfolio-page .photo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .photo-grid, .photo-grid.highlights, .portfolio-page .photo-grid { column-gap: 12px; }
  .photo-grid > figure, .photo-grid.highlights > figure:last-child:nth-child(3) { padding-bottom: 25px; }
}


