/*
Theme Name: Gregory Mitchell Portfolio
Theme URI: https://example.local/
Author: OpenAI
Description: Theme sur mesure inspire de la version Lovable du portfolio Gregory Mitchell. Contenus cles administrables depuis WordPress.
Version: 4.11
Text Domain: gregory-mitchell
*/
:root{--bg:#f7f4ed;--fg:#22201e;--muted:#756f69;--rule:#d8d2c8;--ink:#1e1c1a;--white:#f8f5ef;--max:1536px;--display:Georgia,"Times New Roman",serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.shell{width:100%;max-width:var(--max);margin:auto;padding-left:20px;padding-right:20px}.site-header{background:var(--bg);position:relative;z-index:30}.header-inner{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand,.wordmark{font-family:var(--display);text-transform:uppercase;font-weight:400}.brand{font-size:20px}.nav{display:flex;align-items:center;gap:30px;margin-left:auto}.nav a,.lang,.eyebrow,.section-title,.link-edit{font-size:11px;text-transform:uppercase;letter-spacing:.2em}.nav a,.lang{color:var(--muted)}.nav a:hover,.lang a:hover{color:var(--fg)}.lang{display:flex;gap:8px;align-items:center}.menu-toggle{display:none;background:none;border:0;text-transform:uppercase;letter-spacing:.18em;font-size:11px}.hero{position:relative;min-height:88vh;display:flex;overflow:hidden}.hero-bg{position:absolute;inset:0}.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 25%}.hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(247,244,237,.58),rgba(247,244,237,.15),rgba(247,244,237,.9))}.hero-inner{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;padding-top:120px;padding-bottom:64px}.eyebrow,.section-title{color:var(--muted);font-weight:600}.hero h1{font-size:clamp(48px,9vw,112px);line-height:.84;letter-spacing:.005em;max-width:9ch;margin:14px 0 24px}.hero-location{color:var(--muted);font-size:16px;margin:0 0 28px}.link-edit{display:inline-flex;width:max-content;border-bottom:1px solid currentColor;padding-bottom:7px;font-weight:600}.link-edit:hover{opacity:.55}.hero-news{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.hero-news-inner{padding-top:20px;padding-bottom:20px;display:flex;align-items:baseline;gap:30px}.hero-news-main{display:flex;align-items:baseline;gap:24px;flex:1;min-width:0}.hero-news-title{font-family:var(--display);font-size:30px;line-height:1;margin:0}.hero-news-after{font-family:var(--display);font-style:italic;color:var(--muted);font-size:16px}.hero-news-meta{color:var(--muted);font-size:13px;margin-left:auto}.section{padding-top:56px;padding-bottom:56px;border-top:1px solid var(--rule)}.section:first-child{border-top:0}.grid-profile{display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:center}.media{overflow:hidden;background:#ebe7df}.media img{width:100%;height:100%;object-fit:cover}.profile-image{aspect-ratio:3/4}.lede{font-family:var(--display);font-size:clamp(24px,2.5vw,34px);line-height:1.2;margin:20px 0}.body-text{font-size:15px;line-height:1.75;color:var(--muted);max-width:760px}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);margin-top:32px}.fact{background:var(--bg);padding:18px;text-align:center}.fact strong{font-family:var(--display);font-weight:400;font-size:24px}.fact span{display:block;margin-top:5px;font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted)}.showreel-grid{display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:center}.showreel-poster{aspect-ratio:16/10;position:relative}.showreel-poster img{width:100%;height:100%;object-fit:cover}.showreel-play{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.16);color:#fff;font-size:13px;letter-spacing:.18em;text-transform:uppercase}.photos-head{display:flex;justify-content:space-between;align-items:end;gap:20px}.photo-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:30px}.photo-preview .media{aspect-ratio:3/4}.press-lead{font-family:var(--display);font-size:clamp(26px,3vw,40px);line-height:1.15;max-width:950px;margin:28px 0 0}.press-source{margin-top:16px}.press-others{display:grid;grid-template-columns:1fr 1fr;gap:48px;border-top:1px solid var(--rule);margin-top:32px;padding-top:28px;color:var(--muted)}.contact-cta{position:relative;overflow:hidden;color:var(--white);text-align:center}.contact-cta-bg{position:absolute;inset:0}.contact-cta-bg img{width:100%;height:100%;object-fit:cover}.contact-cta-bg:after{content:"";position:absolute;inset:0;background:rgba(30,28,26,.82)}.contact-inner{position:relative;z-index:2;padding-top:72px;padding-bottom:72px}.contact-inner .section-title{color:rgba(255,255,255,.7)}.contact-inner a{font-size:18px;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:4px}.page-title{font-family:var(--display);font-weight:400;font-size:clamp(42px,8vw,80px);line-height:.95;margin:0}.about-intro{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:center}.about-intro .media{aspect-ratio:3/4}.about-name{font-size:clamp(40px,7vw,72px);line-height:.9;margin:24px 0}.data-list{border-top:1px solid var(--rule);margin:28px 0 0}.data-row{display:grid;grid-template-columns:220px 1fr;gap:30px;padding:17px 0;border-bottom:1px solid var(--rule)}.data-label{font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted);font-weight:600}.credits h2{font-family:var(--display);font-weight:400;font-size:30px;margin:32px 0 18px}.credit{display:grid;grid-template-columns:80px 1fr;gap:30px;padding:20px 0;border-top:1px solid var(--rule)}.credit-year{font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted)}.credit h3{font-size:19px;font-weight:400;margin:0 0 6px}.credit p{font-size:14px;color:var(--muted);margin:3px 0}.gallery-title{margin-bottom:30px}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:40px 24px}.gallery-item{border:0;padding:0;background:none;cursor:zoom-in;width:100%}.gallery-item img{width:100%;height:100%;object-fit:cover}.gallery-item.portrait .gallery-frame{aspect-ratio:3/4}.gallery-item.landscape{grid-column:span 2}.gallery-item.landscape .gallery-frame{aspect-ratio:16/10}.lightbox{position:fixed;inset:0;background:rgba(20,18,16,.94);z-index:100;display:none;align-items:center;justify-content:center;padding:50px}.lightbox.open{display:flex}.lightbox img{max-height:88vh;max-width:88vw}.lightbox-close{position:absolute;right:25px;top:20px;color:#fff;background:none;border:0;font-size:28px;cursor:pointer}.site-footer{border-top:1px solid var(--rule);padding:26px 0}.footer-inner{display:flex;justify-content:space-between;gap:20px;align-items:center;color:var(--muted);font-size:12px}.footer-nav{display:flex;gap:20px;flex-wrap:wrap}.notice{padding:12px 16px;background:#fff6d9;border:1px solid #eadca9;margin-bottom:24px;font-size:13px}.gm-video{width:100%;aspect-ratio:16/9;background:#111}.wp-admin-note{font-size:13px;color:var(--muted)}
@media(min-width:768px){.shell{padding-left:48px;padding-right:48px}}
@media(min-width:1280px){.shell{padding-left:80px;padding-right:80px}}
@media(max-width:767px){.header-inner{min-height:62px}.nav{display:none}.menu-toggle{display:block}.lang{margin-left:auto}.mobile-nav{display:none;border-top:1px solid var(--rule);padding:18px 20px 22px}.mobile-nav.open{display:flex;flex-direction:column;gap:14px}.mobile-nav a{font-size:12px;text-transform:uppercase;letter-spacing:.18em}.hero{min-height:76vh}.hero-bg img{object-position:center}.hero-inner{padding-top:90px;padding-bottom:38px}.hero h1{font-size:clamp(48px,16vw,76px);max-width:8ch}.hero-location{font-size:14px}.hero-news-inner{align-items:flex-start;flex-direction:column;gap:12px}.hero-news-main{align-items:flex-start;flex-direction:column;gap:4px}.hero-news-title{font-size:28px}.hero-news-meta{margin-left:0}.section{padding-top:42px;padding-bottom:42px}.grid-profile,.showreel-grid,.about-intro{grid-template-columns:1fr;gap:30px}.photo-preview{grid-template-columns:1fr 1fr;gap:10px}.press-others{grid-template-columns:1fr;gap:24px}.data-row{grid-template-columns:1fr;gap:6px}.gallery{grid-template-columns:1fr;gap:18px}.gallery-item.landscape{grid-column:span 1}.facts{grid-template-columns:1fr 1fr}.facts .fact:last-child{grid-column:span 2}.footer-inner{align-items:flex-start;flex-direction:column}.contact-inner{padding-top:54px;padding-bottom:54px}}
.contact-links{display:flex;justify-content:center;gap:24px;margin-top:24px}.contact-links a{font-size:11px;text-transform:uppercase;letter-spacing:.18em}.header-inner{flex-wrap:nowrap}.brand{white-space:nowrap}.nav{white-space:nowrap}.mobile-nav{background:var(--bg)}
@media(max-width:980px){.nav{display:none}.menu-toggle{display:block}.lang{margin-left:auto}}
@media(min-width:981px){.mobile-nav{display:none!important}}

/* External showreel embeds (Vimeo / YouTube) */
.gm-embed{position:absolute;inset:0;width:100%;height:100%;background:#111}
.gm-embed iframe{display:block;width:100%!important;height:100%!important;border:0}
.gm-video-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#ebe7df}

/* V4.2 — compact photo gallery */
@media(min-width:768px){.gallery{grid-template-columns:repeat(3,1fr);gap:24px 18px;max-width:1050px;margin-left:auto;margin-right:auto}.gallery-item.landscape{grid-column:span 2}.gallery-title{margin-top:28px;margin-bottom:30px}}

/* V4.3 — dedicated contact page, compact and cache-safe */
.contact-page-wrap{background:var(--bg)}
.contact-page.contact-page-simple{padding-top:86px;padding-bottom:100px;border-top:0}
.contact-page-simple .contact-page-content{width:100%;max-width:780px;margin:0 auto;padding:0}
.contact-page-simple .contact-page-title{font-family:var(--display);font-weight:400;font-size:clamp(48px,7vw,82px);line-height:.94;margin:16px 0 22px}
.contact-page-simple .contact-intro{max-width:610px;margin:0 0 28px;color:var(--muted);font-size:15px;line-height:1.7}
.contact-page-simple .contact-identity{padding:24px 0 30px;border-bottom:1px solid var(--rule)}
.contact-page-simple .contact-name{font-family:var(--display);font-size:25px;margin:0 0 7px}
.contact-page-simple .contact-email{display:inline-block;font-size:14px;text-decoration:underline;text-underline-offset:4px}
.contact-page-simple .contact-form{margin-top:32px;padding-top:0;border-top:0;display:block;width:100%}
.contact-page-simple .contact-form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-page-simple .contact-form label{display:block;width:100%;margin:0 0 18px}
.contact-page-simple .contact-form label>span{display:block;margin:0 0 8px;font-size:10px;line-height:1.2;text-transform:uppercase;letter-spacing:.18em;color:var(--muted)}
.contact-page-simple .contact-form input,
.contact-page-simple .contact-form textarea{display:block;width:100%;max-width:none;margin:0;border:1px solid #c9c4bb;border-radius:0;background:transparent;color:var(--fg);padding:13px 14px;font-family:var(--sans);font-size:15px;line-height:1.4;box-shadow:none;outline:none;appearance:none}
.contact-page-simple .contact-form input{height:48px}
.contact-page-simple .contact-form textarea{min-height:180px;resize:vertical}
.contact-page-simple .contact-form input:focus,
.contact-page-simple .contact-form textarea:focus{border-color:var(--fg)}
.contact-page-simple .contact-form button{display:inline-flex;align-items:center;justify-content:center;margin-top:4px;border:1px solid var(--fg);border-radius:0;background:var(--fg);color:var(--bg);padding:14px 24px;font-family:var(--sans);font-size:11px;font-weight:600;line-height:1;text-transform:uppercase;letter-spacing:.18em;cursor:pointer}
.contact-page-simple .contact-form button:hover{opacity:.72}
.contact-page-simple .form-message{margin:26px 0 0;padding:13px 15px;border:1px solid var(--rule);font-size:13px;line-height:1.5}
.contact-page-simple .form-message.success{background:#f1f3ea}.contact-page-simple .form-message.error{background:#fff1ed}
.contact-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:767px){
  .contact-page.contact-page-simple{padding-top:54px;padding-bottom:68px}
  .contact-page-simple .contact-form-row{grid-template-columns:1fr;gap:0}
  .contact-page-simple .contact-page-title{font-size:clamp(46px,15vw,66px)}
  .contact-page-simple .contact-form textarea{min-height:150px}
}

/* V4.4 — Contact page based on the original Lovable split-screen design */
.gm-contact-lovable{background:var(--bg)}
.gm-contact-lovable-grid{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 64px)}
.gm-contact-lovable-media{min-height:720px;background:#ebe7df;overflow:hidden}
.gm-contact-lovable-media img{width:100%;height:100%;object-fit:cover;object-position:center top}
.gm-contact-lovable-panel{display:flex;align-items:center;background:var(--ink);color:var(--white)}
.gm-contact-lovable-inner{width:100%;max-width:760px;margin:0 auto;padding:64px 72px 72px}
.gm-contact-lovable-kicker{margin:0 0 24px;font-size:11px;font-weight:600;line-height:1;text-transform:uppercase;letter-spacing:.22em;color:rgba(248,245,239,.58)}
.gm-contact-lovable h1{font-family:var(--display);font-weight:400;font-size:clamp(36px,4.2vw,62px);line-height:1.02;max-width:11ch;margin:0}
.gm-contact-lovable-identity{margin-top:38px;padding-top:28px;border-top:1px solid rgba(248,245,239,.20);color:rgba(248,245,239,.68);font-size:14px;line-height:1.55}
.gm-contact-lovable-identity p{margin:2px 0}
.gm-contact-lovable-identity .gm-contact-lovable-name{font-family:var(--display);font-size:25px;line-height:1.2;color:var(--white);margin-bottom:8px}
.gm-contact-lovable-links{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:30px}
.gm-contact-lovable-links div{min-width:0}
.gm-contact-lovable-links span,.gm-contact-lovable-form label>span{display:block;margin-bottom:8px;font-size:10px;font-weight:600;line-height:1.2;text-transform:uppercase;letter-spacing:.19em;color:rgba(248,245,239,.46)}
.gm-contact-lovable-links a{display:inline-block;max-width:100%;overflow-wrap:anywhere;border-bottom:1px solid rgba(248,245,239,.38);padding-bottom:3px;font-size:14px;color:var(--white)}
.gm-contact-lovable-links a:hover{border-color:var(--white)}
.gm-contact-lovable-form{margin-top:38px;padding-top:30px;border-top:1px solid rgba(248,245,239,.20);width:100%}
.gm-contact-lovable-row{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.gm-contact-lovable-form label{display:block;width:100%;margin:0 0 20px}
.gm-contact-lovable-form input,.gm-contact-lovable-form textarea{display:block;width:100%;max-width:none;border:0;border-bottom:1px solid rgba(248,245,239,.35);border-radius:0;background:transparent;color:var(--white);padding:9px 0 12px;font-family:var(--sans);font-size:15px;line-height:1.45;box-shadow:none;outline:none;appearance:none}
.gm-contact-lovable-form input{height:42px}
.gm-contact-lovable-form textarea{min-height:118px;resize:vertical}
.gm-contact-lovable-form input:focus,.gm-contact-lovable-form textarea:focus{border-color:var(--white)}
.gm-contact-lovable-form button{display:inline-flex;align-items:center;justify-content:center;margin-top:4px;border:1px solid rgba(248,245,239,.72);border-radius:0;background:transparent;color:var(--white);padding:13px 22px;font-family:var(--sans);font-size:11px;font-weight:600;line-height:1;text-transform:uppercase;letter-spacing:.19em;cursor:pointer}
.gm-contact-lovable-form button:hover{background:var(--white);color:var(--ink)}
.gm-contact-message{margin-top:30px;padding:12px 14px;border:1px solid rgba(248,245,239,.22);font-size:13px;line-height:1.5}
.gm-contact-message.success{background:rgba(115,143,99,.15)}
.gm-contact-message.error{background:rgba(176,83,67,.15)}
@media(max-width:980px){
  .gm-contact-lovable-grid{grid-template-columns:1fr;min-height:0}
  .gm-contact-lovable-media{min-height:0;aspect-ratio:4/5;max-height:72vh}
  .gm-contact-lovable-inner{padding:52px 34px 60px}
  .gm-contact-lovable h1{max-width:14ch}
}
@media(max-width:600px){
  .gm-contact-lovable-inner{padding:44px 22px 50px}
  .gm-contact-lovable-links,.gm-contact-lovable-row{grid-template-columns:1fr;gap:0}
  .gm-contact-lovable-links div+div{margin-top:22px}
  .gm-contact-lovable-form{margin-top:30px;padding-top:26px}
  .gm-contact-lovable-media{aspect-ratio:1/1.12}
}

/* V4.6 — emergency Contact cleanup: remove oversized image if WordPress falls back to generic page template */
body.gm-contact-page-fallback .body-text > figure:first-child,
body.gm-contact-page-fallback .body-text > p:first-child img,
body.gm-contact-page-fallback .body-text > img:first-child,
body.gm-contact-page-fallback main .wp-block-image:first-child,
body.gm-contact-page-fallback main .wp-block-cover:first-child,
body.gm-contact-page-fallback main .wp-block-media-text:first-child .wp-block-media-text__media {
  display:none!important;
}
body.gm-contact-page-fallback .page-title{margin-bottom:24px}
body.gm-contact-page-fallback .body-text{max-width:820px;margin-left:auto;margin-right:auto}

/* V4.7 — Contact page: light editorial layout matching the rest of the site */
.gm-contact-lovable{
  background:var(--bg);
  color:var(--fg);
  padding:72px 0 88px;
}
.gm-contact-lovable-grid{
  width:min(1180px,calc(100% - 48px));
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(280px,420px) minmax(0,1fr);
  gap:72px;
  align-items:start;
  min-height:0;
}
.gm-contact-lovable-media{
  width:100%;
  max-width:420px;
  min-height:0;
  aspect-ratio:4/5;
  background:#ebe7df;
  overflow:hidden;
}
.gm-contact-lovable-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 24%;
}
.gm-contact-lovable-panel{
  display:block;
  background:transparent;
  color:var(--fg);
}
.gm-contact-lovable-inner{
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}
.gm-contact-lovable-kicker{
  color:var(--muted);
  margin:0 0 22px;
}
.gm-contact-lovable h1{
  color:var(--fg);
  font-size:clamp(42px,4.8vw,68px);
  max-width:14ch;
}
.gm-contact-lovable-identity{
  margin-top:34px;
  padding-top:26px;
  border-top:1px solid var(--rule);
  color:var(--muted);
}
.gm-contact-lovable-identity .gm-contact-lovable-name{
  color:var(--fg);
}
.gm-contact-lovable-links{
  margin-top:28px;
}
.gm-contact-lovable-links span,
.gm-contact-lovable-form label>span{
  color:var(--fg);
  opacity:.62;
}
.gm-contact-lovable-links a{
  color:var(--fg);
  border-bottom:1px solid var(--rule);
}
.gm-contact-lovable-links a:hover{
  border-color:var(--fg);
}
.gm-contact-lovable-form{
  margin-top:34px;
  padding-top:28px;
  border-top:1px solid var(--rule);
}
.gm-contact-lovable-form input,
.gm-contact-lovable-form textarea{
  color:var(--fg);
  border-bottom:1px solid rgba(25,23,20,.55);
  background:transparent;
}
.gm-contact-lovable-form input:focus,
.gm-contact-lovable-form textarea:focus{
  border-color:var(--fg);
}
.gm-contact-lovable-form button{
  border:1px solid var(--fg);
  background:var(--fg);
  color:var(--bg);
}
.gm-contact-lovable-form button:hover{
  background:transparent;
  color:var(--fg);
}
.gm-contact-message{
  color:var(--fg);
  border-color:var(--rule);
}
@media(max-width:980px){
  .gm-contact-lovable{padding:54px 0 68px}
  .gm-contact-lovable-grid{
    width:min(760px,calc(100% - 40px));
    grid-template-columns:1fr;
    gap:44px;
  }
  .gm-contact-lovable-media{
    max-width:460px;
    width:76%;
    margin:0 auto;
    aspect-ratio:4/5;
    max-height:none;
  }
  .gm-contact-lovable-inner{padding:0}
}
@media(max-width:600px){
  .gm-contact-lovable{padding:42px 0 54px}
  .gm-contact-lovable-grid{width:calc(100% - 32px);gap:34px}
  .gm-contact-lovable-media{width:100%;max-width:360px;aspect-ratio:4/5}
  .gm-contact-lovable h1{font-size:clamp(40px,13vw,56px)}
  .gm-contact-lovable-inner{padding:0}
}

.hero-bg picture{position:absolute;inset:0;display:block;width:100%;height:100%}.hero-bg picture img{width:100%;height:100%;object-fit:cover}
@media(max-width:767px){.hero-bg picture img{object-position:center center}}
