/*
Theme Name: Julien Livis — Portfolio
Author: Julien Livis
Description: Thème vitrine minimaliste et responsive.
Version: 1.2.5
Requires at least: 6.0
Requires PHP: 8.0
Text Domain: julien-livis
*/
:root{--red:#df0031;--ink:#111;--muted:#777}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:'Inter',Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}.shell{max-width:1360px;margin:auto;padding:0 6%}.top{display:flex;justify-content:space-between;align-items:center;padding-top:36px;gap:24px}.brand{font-weight:800;letter-spacing:.22em;font-size:12px;text-decoration:none;white-space:nowrap}.brand:after{content:'';display:inline-block;width:42px;height:3px;background:var(--red);margin-left:22px;vertical-align:middle}.social{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:20px}.social a{text-decoration:none;font-size:13px;font-weight:700;transition:color .2s}.social a:hover,.contact:hover{color:var(--red)}.hero{min-height:calc(100svh - 110px);display:flex;align-items:center;justify-content:center;padding-top:70px;padding-bottom:90px}.hero-inner{width:100%;display:grid;grid-template-columns:minmax(180px,280px) 1px minmax(0,1fr);gap:clamp(28px,4vw,68px);align-items:center}.portrait{width:100%;aspect-ratio:1;border-radius:50%;object-fit:cover;object-position:center 35%;background:#f2f2f2}.portrait-placeholder{display:grid;place-items:center;color:#888;font-size:13px;text-align:center;padding:20px}.line{height:250px;background:#ccc}.name{font-size:clamp(48px,6.6vw,108px);line-height:1.02;letter-spacing:-.065em;margin:0;font-weight:800;white-space:nowrap}.dot{color:var(--red)}.job{font-size:clamp(29px,4vw,65px);font-weight:300;letter-spacing:-.045em;margin:12px 0 56px}.actions{display:flex;align-items:center;gap:32px;flex-wrap:wrap}.cv{background:var(--red);color:#fff;text-decoration:none;border-radius:100px;padding:19px 29px;font-weight:650;display:inline-flex;align-items:center;gap:12px}.cv:hover{background:#b60028}.contact{font-weight:650;text-underline-offset:7px;text-decoration-thickness:1px}.foot{padding:0 0 28px;color:#999;font-size:12px}@media(max-width:850px){.top{padding-top:26px;flex-direction:column;align-items:flex-start}.social{justify-content:flex-start;gap:16px}.hero{min-height:auto;padding-top:75px;padding-bottom:80px}.hero-inner{grid-template-columns:1fr;gap:25px;text-align:center;justify-items:center}.portrait{width:170px}.line{display:none}.name{font-size:clamp(43px,9vw,70px)}.job{font-size:clamp(28px,6vw,43px);margin:14px 0 34px}.actions{justify-content:center;gap:24px}.brand:after{width:28px;margin-left:12px}}@media(max-width:480px){.shell{padding:0 7%}.social{gap:14px}.social a{font-size:12px}.hero{padding-top:65px}.portrait{width:145px}.name{font-size:clamp(39px,10vw,52px)}.actions{flex-direction:column}.cv{padding:17px 25px}}

/* v1.1 refinements */
.social{gap:clamp(15px,1.7vw,28px)}
.social .social-icon{width:23px;height:23px;display:inline-flex;align-items:center;justify-content:center;color:#111;transition:color .18s,transform .18s}
.social .social-icon svg{width:22px;height:22px;display:block}
.social .social-icon:hover{color:var(--red);transform:translateY(-2px)}
.social .social-extra{font-size:12px}
.cv{padding:18px 25px;gap:10px}
@media(max-width:850px){.social{gap:19px;justify-content:center;align-self:stretch}.social .social-icon{width:26px;height:26px}.social .social-icon svg{width:23px;height:23px}}
@media(max-width:480px){.social{gap:18px}.top{align-items:center}.brand{align-self:flex-start}.cv{padding:17px 24px}}

/* V4 — mobile-only layout adjustments; desktop unchanged */
@media (max-width: 480px) {
  .top { gap: 18px; padding-top: 20px; }
  .social {
    width: 100%; align-self: stretch;
    display: flex; flex-wrap: nowrap;
    justify-content: space-between; align-items: center;
    gap: 6px; min-width: 0;
  }
  .social .social-icon {
    flex: 0 0 24px; width: 24px; height: 26px;
  }
  .social .social-icon svg { width: 22px; height: 22px; }
  .hero { padding-top: 36px; padding-bottom: 55px; }
  .hero-inner { gap: 23px; }
  .actions { gap: 17px; padding-bottom: 30px; }
  .contact { display: inline-block; padding: 6px 0; }
}
@media (max-width: 360px) {
  .social .social-icon { flex-basis: 21px; width: 21px; }
  .social .social-icon svg { width: 20px; height: 20px; }
  .social { gap: 3px; }
}

/* v1.2 — Editorial signature and professional brand strip */
.job { margin-bottom: 14px; }
.tagline {
  margin: 0 0 37px;
  color: var(--red);
  font-family: 'Caveat', 'Segoe Print', cursive;
  font-size: clamp(23px, 2.15vw, 34px);
  font-weight: 500;
  line-height: 1.15;
  max-width: 690px;
}
.hero { min-height: max(480px, calc(100svh - 235px)); padding-bottom: 48px; }
.career { padding-bottom: 40px; }
.career-row {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  align-items: center;
  gap: 0;
  width: 100%;
}
.career-item {
  min-width: 0; height: 63px;
  display: flex; align-items: center; justify-content: center;
  padding: 5px 13px;
  border-left: 1px solid #e4e4e4;
  filter: grayscale(1);
  opacity: .58;
  transition: opacity .2s ease;
}
.career-item:first-child { border-left: 0; }
.career-item:hover { opacity: .9; }
.career-boulanger { filter: none; opacity: 1; color: #a00028; }
.career-logo { display:block; max-width:100%; max-height:54px; width:auto; height:auto; object-fit:contain; }
.career-wordmark {
  font-size: clamp(13px, 1.23vw, 19px);
  font-weight: 700;
  letter-spacing: -.045em;
  white-space: nowrap;
  line-height: 1.05;
  text-align: center;
}
.career-boulanger .career-wordmark { font-style: italic; font-size:clamp(14px,1.6vw,23px); font-weight:800; }
.career-havea .career-wordmark { font-style:italic; }
.career-jnj .career-wordmark { font-family:Georgia,serif; font-size:clamp(11px,1.1vw,17px); }
.career-novartis .career-wordmark { text-transform:uppercase; font-family:Georgia,serif; font-weight:500; letter-spacing:.07em; }
.career-pfizer .career-wordmark { font-style:italic; }
.career-lilly .career-wordmark { font-family:Georgia,serif; font-style:italic; font-size:clamp(13px,1.4vw,20px); }
.career-elsevier .career-wordmark { text-transform:uppercase; font-family:Georgia,serif; letter-spacing:.04em; font-size:clamp(10px,1.04vw,16px); }
@media(max-width: 1050px) {
  .career-item { padding: 5px 7px; }
  .career-wordmark { white-space: normal; }
}
@media(max-width: 850px) {
  .job { margin-bottom: 9px; }
  .tagline { text-align:center; font-size:clamp(23px,4.5vw,32px); margin:0 auto 28px; max-width:520px; }
  .hero { min-height:auto; padding-bottom:33px; }
  .career { padding-bottom:38px; }
  .career-row { grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px 0; }
  .career-item { height:58px; }
  .career-item:nth-child(4n+1) { border-left:0; }
}
@media(max-width:480px) {
  .tagline { max-width:300px; font-size:25px; line-height:1.08; margin-bottom:24px; }
  .hero { padding-bottom:18px; }
  .career { padding-bottom:46px; }
  .career-row { grid-template-columns: repeat(4,minmax(0,1fr)); gap:10px 0; }
  .career-item { height:56px; padding:4px 9px; }
  .career-item:nth-child(4n+1) { border-left:0; }
  .career-item:nth-child(4n+2), .career-item:nth-child(4n+3), .career-item:nth-child(4n+4) { border-left:1px solid #e4e4e4; }
  .career-item .career-wordmark { font-size:clamp(10px,2.7vw,13px); }
  .career-jnj .career-wordmark { font-size:10px; }
  .career-logo { max-height:46px; }
  .actions { padding-bottom:24px; }
}

/* v1.2.1: genuine brand logos, visually balanced */
.career-logo{max-width:100%;max-height:54px;object-fit:contain;}
.career-boulanger .career-logo{max-height:63px;}
.career-elsevier .career-logo{max-height:49px;}
@media(max-width:850px){.career-boulanger .career-logo{max-height:55px}}
@media(max-width:480px){.career-boulanger .career-logo{max-height:51px}.career-logo{max-height:43px}}

/* v1.2.1: genuine brand logos, visually balanced */
.career-logo{max-width:100%;max-height:54px;object-fit:contain;}
.career-boulanger .career-logo{max-height:63px;}
.career-elsevier .career-logo{max-height:49px;}
@media(max-width:850px){.career-boulanger .career-logo{max-height:55px}}
@media(max-width:480px){.career-boulanger .career-logo{max-height:51px}.career-logo{max-height:43px}}

/* V5.2 — actual supplied logo files and consistently sized company wordmarks */
.career-logo{display:block;width:auto;height:auto;max-width:100%;max-height:44px;object-fit:contain;object-position:center;}
.career-boulanger .career-logo{width:100px;max-width:100%;max-height:66px;}
.career-havea .career-logo{width:102px;max-width:100%;max-height:44px;}
.career-jnj .career-logo{max-width:143px;max-height:42px;}
.career-novartis .career-logo{max-width:135px;max-height:41px;}
.career-elsevier .career-logo{max-width:106px;max-height:34px;}
.career-pfizer .career-logo{max-width:104px;max-height:37px;}
.career-lilly .career-logo{max-width:100px;max-height:35px;}
.career-item {overflow:hidden;}
@media(max-width:850px){
 .career-boulanger .career-logo{width:88px;max-height:55px;}
 .career-havea .career-logo{width:91px;max-height:38px;}
 .career-elsevier .career-logo{max-width:87px;max-height:30px;}
 .career-pfizer .career-logo{max-width:88px;max-height:32px;}
 .career-lilly .career-logo{max-width:86px;max-height:31px;}
}
@media(max-width:480px){
 .career-boulanger .career-logo{width:72px;max-height:49px;}
 .career-havea .career-logo{width:72px;max-height:31px;}
 .career-jnj .career-logo{max-height:30px;}
 .career-novartis .career-logo{max-height:29px;}
 .career-elsevier .career-logo{max-width:66px;max-height:27px;}
 .career-pfizer .career-logo{max-width:68px;max-height:28px;}
 .career-lilly .career-logo{max-width:65px;max-height:27px;}
}

/* v5.3 — equalized company visual weights; supplied logos without old WP media overrides */
.career-item { height: 58px; padding: 4px 10px; overflow: visible; }
.career-logo { width:auto; height:auto; max-width:100%; object-fit:contain; }
.career-boulanger .career-logo { width:95px; max-width:100%; max-height:58px; }
.career-havea .career-logo { width:105px; max-width:100%; max-height:35px; }
.career-jnj .career-logo { max-width:113px; max-height:28px; }
.career-novartis .career-logo { max-width:115px; max-height:30px; }
.career-elsevier .career-logo { max-width:87px; max-height:24px; }
.career-pfizer .career-logo { max-width:79px; max-height:27px; }
.career-lilly .career-logo { max-width:82px; max-height:25px; }
@media (max-width:850px) {
 .career-item { height:56px; padding:4px 7px; }
 .career-boulanger .career-logo { width:85px; max-height:52px; }
 .career-havea .career-logo { width:90px; max-height:30px; }
 .career-jnj .career-logo { max-width:96px; max-height:24px; }
 .career-novartis .career-logo { max-width:96px; max-height:26px; }
 .career-elsevier .career-logo { max-width:77px; max-height:22px; }
 .career-pfizer .career-logo { max-width:73px; max-height:24px; }
 .career-lilly .career-logo { max-width:74px; max-height:23px; }
}
@media (max-width:480px) {
 .career-item { height:52px; padding:3px 6px; }
 .career-boulanger .career-logo { width:67px; max-height:43px; }
 .career-havea .career-logo { width:72px; max-height:25px; }
 .career-jnj .career-logo { max-width:70px; max-height:20px; }
 .career-novartis .career-logo { max-width:73px; max-height:23px; }
 .career-elsevier .career-logo { max-width:60px; max-height:19px; }
 .career-pfizer .career-logo { max-width:58px; max-height:21px; }
 .career-lilly .career-logo { max-width:61px; max-height:20px; }
}

/* V5.4 — mobile logo strip: fixed grid, no spill, proportional marks */
@media (max-width: 480px) {
  .career { padding-left: max(18px, 6%); padding-right: max(18px, 6%); overflow: hidden; }
  .career-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px 0;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
  }
  .career-item {
    min-width: 0;
    width: 100%;
    max-width: 100%;
    height: 48px;
    padding: 3px 5px;
    overflow: hidden;
    border-left: 0 !important;
  }
  .career-item .career-logo {
    display: block;
    max-width: 100% !important;
    width: auto;
    height: auto;
    object-fit: contain;
    flex-shrink: 1;
  }
  .career-boulanger .career-logo { width: 64px; max-height: 41px; }
  .career-havea .career-logo { width: 51px; max-height: 19px; }
  .career-jnj .career-logo { max-width: 69px; max-height: 18px; }
  .career-novartis .career-logo { max-width: 69px; max-height: 20px; }
  .career-elsevier .career-logo { max-width: 60px; max-height: 18px; }
  .career-pfizer .career-logo { max-width: 57px; max-height: 20px; }
  .career-lilly .career-logo { max-width: 58px; max-height: 19px; }
  /* Balance the last row of three logos under the first row of four. */
  .career-item:nth-child(5) { grid-column: 1; }
  .career-item:nth-child(7) { grid-column: 4; }
}


/* V5.5 — logo band optical balancing; the hero and social navigation remain unchanged. */
.career-row { align-items:center; }
.career-item { min-width:0; overflow:hidden; }
.career-item .career-logo { display:block; width:auto; height:auto; object-fit:contain; object-position:center; max-width:100%; }
/* Desktop: balance Havea's stronger script against thinner wordmarks. */
.career-boulanger .career-logo { width:99px; max-height:65px; }
.career-havea .career-logo { width:79px; max-height:28px; }
.career-jnj .career-logo { max-width:128px; max-height:35px; }
.career-novartis .career-logo { max-width:131px; max-height:35px; }
.career-elsevier .career-logo { max-width:111px; max-height:30px; }
.career-pfizer .career-logo { max-width:101px; max-height:33px; }
.career-lilly .career-logo { max-width:102px; max-height:31px; }
@media (min-width:851px) {
  .career-item { padding-inline:7px; }
}
@media (min-width:481px) and (max-width:850px) {
  .career-boulanger .career-logo { width:92px; max-height:56px; }
  .career-havea .career-logo { width:76px; max-height:27px; }
  .career-jnj .career-logo { max-width:116px; max-height:32px; }
  .career-novartis .career-logo { max-width:116px; max-height:32px; }
  .career-elsevier .career-logo { max-width:102px; max-height:28px; }
  .career-pfizer .career-logo { max-width:94px; max-height:31px; }
  .career-lilly .career-logo { max-width:94px; max-height:30px; }
}
@media (max-width:480px) {
  .career { padding-left:12px; padding-right:12px; padding-bottom:40px; overflow:hidden; }
  /* 4 evenly placed brands, then 3 evenly placed brands, with no empty fourth cell. */
  .career-row { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:0; row-gap:13px; width:100%; max-width:420px; margin-inline:auto; }
  .career-row > .career-item { grid-column:span 3; height:57px; width:100%; min-width:0; max-width:100%; padding:2px 4px; border-left:0 !important; overflow:hidden; }
  .career-row > .career-item:nth-child(n+5) { grid-column:span 4; }
  .career-item .career-logo { max-width:100% !important; width:auto; height:auto; }
  .career-boulanger .career-logo { width:75px; max-height:52px; }
  .career-havea .career-logo { width:67px; max-height:24px; }
  .career-jnj .career-logo { max-width:85px; max-height:30px; }
  .career-novartis .career-logo { max-width:87px; max-height:30px; }
  .career-elsevier .career-logo { max-width:94px; max-height:27px; }
  .career-pfizer .career-logo { max-width:92px; max-height:30px; }
  .career-lilly .career-logo { max-width:92px; max-height:30px; }
}
