/*
 * IDEVART Réalisations Portfolio — Front-end skin v1.1.2
 * Cette feuille ne change aucune logique PHP/JS du plugin.
 */
.idevart-portfolio{
  --idevart-accent:#667eea;
  --idevart-radius:16px;
  --idevart-ink:#1c2133;
  --idevart-muted:#6d7488;
  --idevart-border:rgba(28,33,51,.11);
  --idevart-soft:rgba(102,126,234,.08);
  --idevart-shadow:0 8px 30px rgba(18,150,204,.10);
  --idevart-shadow-hover:0 18px 46px rgba(18,150,204,.16);
  font-family:inherit;
  color:var(--idevart-ink);
  margin:2rem 0;
}
.idevart-portfolio *{box-sizing:border-box}

/* Projets phares */
.idevart-featured{
  position:relative;
  overflow:hidden;
  padding:clamp(28px,4vw,52px);
  margin:0 0 42px;
  border:1px solid rgba(102,126,234,.15);
  border-radius:calc(var(--idevart-radius) + 4px);
  background:
    radial-gradient(circle at 92% 8%,rgba(118,75,162,.14),transparent 30%),
    radial-gradient(circle at 4% 94%,rgba(18,150,204,.11),transparent 34%),
    linear-gradient(135deg,rgba(102,126,234,.09),rgba(255,255,255,.96) 56%,rgba(118,75,162,.055));
}
.idevart-featured:before{
  content:"";
  position:absolute;
  width:210px;
  height:210px;
  border:1px solid rgba(102,126,234,.13);
  border-radius:50%;
  top:-132px;
  right:-78px;
  pointer-events:none;
}
.idevart-featured-heading{position:relative;z-index:1;margin-bottom:26px}
.idevart-featured-heading span,.idevart-card-topline{
  color:var(--idevart-accent);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.11em;
  line-height:1.2;
  text-transform:uppercase;
}
.idevart-featured h2{
  margin:.48rem 0 0;
  max-width:670px;
  font-size:clamp(1.7rem,3.2vw,2.5rem);
  line-height:1.08;
  letter-spacing:-.035em;
}

/* Grille et filtres */
.idevart-featured-grid,.idevart-projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.idevart-filters{
  position:relative;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  padding:9px;
  width:max-content;
  max-width:100%;
  margin:0 0 32px;
  border:1px solid var(--idevart-border);
  border-radius:calc(var(--idevart-radius) + 2px);
  background:rgba(255,255,255,.88);
  box-shadow:0 8px 25px rgba(29,38,68,.055);
}
.idevart-filters:before{
  content:"Filtrer les réalisations";
  padding:0 7px 0 4px;
  color:var(--idevart-muted);
  font-size:.73rem;
  font-weight:750;
  letter-spacing:.03em;
  white-space:nowrap;
}
.idevart-filters button{
  position:relative;
  min-height:38px;
  border:1px solid transparent;
  border-radius:10px;
  padding:9px 14px;
  background:transparent;
  color:#535c73;
  font:inherit;
  font-size:.88rem;
  font-weight:650;
  line-height:1;
  cursor:pointer;
  isolation:isolate;
  transition:color .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease,background-color .22s ease;
}
.idevart-filters button:hover{
  border-color:rgba(102,126,234,.18);
  background:var(--idevart-soft);
  color:var(--idevart-accent);
  transform:translateY(-1px);
}
.idevart-filters button.is-active{
  border-color:var(--idevart-accent);
  background:var(--idevart-accent);
  color:#fff;
  box-shadow:0 7px 15px color-mix(in srgb,var(--idevart-accent) 28%,transparent);
}
.idevart-filters button:focus-visible,.idevart-load-more:focus-visible,.idevart-card-link:focus-visible{
  outline:3px solid color-mix(in srgb,var(--idevart-accent) 34%,transparent);
  outline-offset:3px;
}

/* Cartes */
.idevart-card{
  min-width:0;
  overflow:hidden;
  border:1px solid var(--idevart-border);
  border-radius:var(--idevart-radius);
  background:#fff;
  box-shadow:var(--idevart-shadow);
  transition:transform .3s cubic-bezier(.2,.75,.25,1),box-shadow .3s ease,border-color .3s ease;
}
.idevart-card:hover{transform:translateY(-6px);border-color:rgba(102,126,234,.26);box-shadow:var(--idevart-shadow-hover)}
.idevart-card-link{display:block;height:100%;color:inherit;text-decoration:none}
.idevart-card-media{
  position:relative;
  aspect-ratio:16/10;
  overflow:hidden;
  background:#edf1f8;
}
.idevart-card-media:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(17,22,38,0) 46%,rgba(17,22,38,.26));
  opacity:.4;
  pointer-events:none;
  transition:opacity .3s ease;
}
.idevart-card:hover .idevart-card-media:after{opacity:.72}
.idevart-card-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.75,.25,1)}
.idevart-card:hover .idevart-card-media img{transform:scale(1.055)}
.idevart-placeholder{
  display:grid;
  height:100%;
  place-items:center;
  color:var(--idevart-accent);
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
  background:
    radial-gradient(circle at 78% 18%,rgba(118,75,162,.20),transparent 36%),
    linear-gradient(135deg,#eaf2fb,#f8f9ff);
}
.idevart-placeholder:before{content:"IDEVART"}
.idevart-ribbon{
  position:absolute;
  z-index:2;
  top:14px;
  right:14px;
  width:auto;
  transform:none;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.46);
  border-radius:999px;
  color:#694600;
  background:linear-gradient(135deg,#f9e6a1,#dca838);
  box-shadow:0 6px 14px rgba(111,76,0,.2);
  font-size:10px;
  font-weight:850;
  letter-spacing:.075em;
  line-height:1;
  text-transform:uppercase;
}
.idevart-card-content{display:flex;flex-direction:column;min-height:186px;padding:21px 21px 19px}
.idevart-card-topline{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}
.idevart-card-topline span:last-child{color:#8991a4;font-weight:750}
.idevart-card h3{margin:0 0 9px;color:var(--idevart-ink);font-size:1.14rem;font-weight:760;line-height:1.28;letter-spacing:-.022em}
.idevart-card p{margin:0 0 15px;color:var(--idevart-muted);font-size:.91rem;line-height:1.56}
.idevart-card-meta{display:flex;flex-wrap:wrap;gap:7px 10px;margin-top:auto;color:#727b91;font-size:.78rem;line-height:1.45}
.idevart-card-meta span{position:relative;padding-left:9px}
.idevart-card-meta span:before{content:"";position:absolute;top:.38em;left:0;width:4px;height:4px;border-radius:50%;background:var(--idevart-accent)}

/* Chargement et état vide */
.idevart-load-wrap{text-align:center;margin-top:34px}
.idevart-load-more{
  min-height:46px;
  border:1px solid var(--idevart-accent);
  border-radius:11px;
  padding:12px 20px;
  color:#fff;
  background:var(--idevart-accent);
  box-shadow:0 9px 17px color-mix(in srgb,var(--idevart-accent) 22%,transparent);
  font:inherit;
  font-size:.92rem;
  font-weight:750;
  cursor:pointer;
  transition:transform .22s ease,box-shadow .22s ease,filter .22s ease;
}
.idevart-load-more:hover{transform:translateY(-2px);filter:brightness(1.03);box-shadow:0 12px 24px color-mix(in srgb,var(--idevart-accent) 30%,transparent)}
.idevart-load-more[disabled]{opacity:.58;cursor:wait;transform:none}
.idevart-empty{grid-column:1/-1;padding:34px 20px;border:1px dashed rgba(102,126,234,.37);border-radius:var(--idevart-radius);color:var(--idevart-muted);background:rgba(102,126,234,.035);text-align:center}

/* Variantes structurelles existantes */
.idevart-design-masonry .idevart-projects{display:block;columns:3;column-gap:24px}
.idevart-design-masonry .idevart-card{break-inside:avoid;margin:0 0 24px}
.idevart-design-masonry .idevart-card-media{aspect-ratio:auto}
.idevart-design-masonry .idevart-card-media img{height:auto;min-height:180px}
.idevart-design-list .idevart-projects{display:flex;flex-direction:column;gap:17px}
.idevart-design-list .idevart-card-link{display:grid;grid-template-columns:minmax(245px,34%) 1fr}
.idevart-design-list .idevart-card-media{height:100%;min-height:230px;aspect-ratio:auto}
.idevart-design-list .idevart-card-content{justify-content:center;padding:30px}
.idevart-design-list .idevart-card h3{font-size:clamp(1.25rem,2vw,1.72rem)}

@media(max-width:900px){
  .idevart-featured-grid,.idevart-projects{grid-template-columns:repeat(2,minmax(0,1fr))}
  .idevart-design-masonry .idevart-projects{columns:2}
  .idevart-filters{width:100%}
}
@media(max-width:640px){
  .idevart-featured{padding:26px 20px}
  .idevart-featured-grid,.idevart-projects{grid-template-columns:1fr}
  .idevart-design-masonry .idevart-projects{columns:1}
  .idevart-filters{gap:5px;padding:7px;border-radius:14px}
  .idevart-filters:before{width:100%;padding:2px 5px 5px}
  .idevart-filters button{min-height:35px;padding:8px 11px;font-size:.83rem}
  .idevart-design-list .idevart-card-link{grid-template-columns:1fr}
  .idevart-design-list .idevart-card-media{min-height:190px}
  .idevart-card-content,.idevart-design-list .idevart-card-content{min-height:auto;padding:18px}
}

/* --------------------------------------------------------------------------
   Single réalisation — fiche portfolio dédiée
   -------------------------------------------------------------------------- */
.idevart-single-realisation{
  --idevart-ink:#1b2133;
  --idevart-muted:#687187;
  --idevart-line:rgba(27,33,51,.11);
  --idevart-deep:#10172a;
  color:var(--idevart-ink);
  background:linear-gradient(180deg,#fff 0%,#fafbff 100%);
  overflow:hidden;
}
.idevart-single-realisation *{box-sizing:border-box}
.idevart-single-shell{max-width:1240px;margin:0 auto;padding:clamp(34px,6vw,78px) clamp(20px,4vw,36px) clamp(54px,7vw,94px)}
.idevart-single-back{display:inline-flex;align-items:center;gap:9px;margin:0 0 clamp(28px,4vw,46px);color:#586279;font-size:.91rem;font-weight:720;text-decoration:none;transition:color .2s ease,transform .2s ease}
.idevart-single-back span{font-size:1.15em;transition:transform .2s ease}
.idevart-single-back:hover{color:var(--idevart-accent);transform:translateX(-2px)}
.idevart-single-back:hover span{transform:translateX(-3px)}
.idevart-single-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(370px,.98fr);align-items:center;gap:clamp(34px,6vw,80px);padding:clamp(30px,5.4vw,68px);border:1px solid rgba(27,33,51,.09);border-radius:calc(var(--idevart-radius) + 8px);background:radial-gradient(circle at 4% 1%,color-mix(in srgb,var(--idevart-accent) 12%,transparent),transparent 34%),radial-gradient(circle at 98% 100%,rgba(118,75,162,.12),transparent 38%),#fff;box-shadow:0 18px 56px rgba(24,32,56,.08)}
.idevart-single-hero:before{content:"";position:absolute;right:42%;bottom:-22px;width:115px;height:115px;border:1px solid color-mix(in srgb,var(--idevart-accent) 18%,transparent);border-radius:50%;pointer-events:none}
.idevart-single-hero__copy,.idevart-single-hero__media{position:relative;z-index:1}
.idevart-single-eyebrow{display:flex;align-items:center;flex-wrap:wrap;gap:9px 13px;margin-bottom:15px;color:var(--idevart-accent);font-size:.74rem;font-weight:850;letter-spacing:.105em;line-height:1.25;text-transform:uppercase}
.idevart-single-year{display:inline-flex;align-items:center;gap:10px;color:#768096}.idevart-single-year:before{content:"";width:4px;height:4px;border-radius:50%;background:currentColor}
.idevart-single-badges{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.idevart-single-badge{display:inline-flex;align-items:center;min-height:27px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--idevart-accent) 24%,transparent);border-radius:999px;color:var(--idevart-accent);background:color-mix(in srgb,var(--idevart-accent) 8%,white);font-size:.71rem;font-weight:850;letter-spacing:.065em;line-height:1;text-transform:uppercase}.idevart-single-badge--gold{border-color:rgba(180,129,23,.22);color:#755002;background:linear-gradient(135deg,#fff3c6,#f1cf70)}
.idevart-single-title{max-width:680px;margin:0;color:var(--idevart-ink);font-size:clamp(2.15rem,5vw,4.45rem);font-weight:790;line-height:.98;letter-spacing:-.06em}
.idevart-single-intro{max-width:625px;margin:23px 0 0;color:var(--idevart-muted);font-size:clamp(1.01rem,1.45vw,1.18rem);line-height:1.7}
.idevart-single-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:30px}.idevart-single-visit{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:13px 19px;border:1px solid var(--idevart-accent);border-radius:12px;color:#fff;background:var(--idevart-accent);box-shadow:0 11px 23px color-mix(in srgb,var(--idevart-accent) 24%,transparent);font-size:.92rem;font-weight:780;text-decoration:none;transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}.idevart-single-visit:hover{color:#fff;filter:brightness(1.04);transform:translateY(-2px);box-shadow:0 15px 28px color-mix(in srgb,var(--idevart-accent) 31%,transparent)}.idevart-single-anchor{display:inline-flex;align-items:center;gap:8px;color:#566176;font-size:.9rem;font-weight:750;text-decoration:none;transition:color .2s ease}.idevart-single-anchor:hover{color:var(--idevart-accent)}
.idevart-single-hero__media{min-height:340px;border-radius:calc(var(--idevart-radius) + 1px);overflow:hidden;background:#e9eef8;box-shadow:0 13px 34px rgba(17,27,51,.14)}.idevart-single-hero__media:after{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(255,255,255,.02),rgba(16,23,42,.17));pointer-events:none}.idevart-single-hero__media img{display:block;width:100%;height:100%;min-height:340px;object-fit:cover}.idevart-single-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:19px;min-height:340px;color:var(--idevart-accent);background:radial-gradient(circle at 73% 15%,rgba(118,75,162,.22),transparent 30%),linear-gradient(135deg,#e8f2fb,#fbfbff)}.idevart-single-placeholder span{font-size:.78rem;font-weight:900;letter-spacing:.18em}.idevart-single-placeholder svg{width:88px;height:88px;opacity:.65}
.idevart-single-main-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,.38fr);align-items:start;gap:clamp(30px,6vw,86px);padding:clamp(48px,7vw,92px) clamp(4px,1vw,8px) 0}.idevart-single-content{min-width:0}.idevart-single-content__eyebrow,.idevart-single-details__head span,.idevart-single-techs__label{display:block;margin-bottom:11px;color:var(--idevart-accent);font-size:.73rem;font-weight:850;letter-spacing:.1em;line-height:1.2;text-transform:uppercase}.idevart-single-description{max-width:760px;color:#394258;font-size:1.03rem;line-height:1.8}.idevart-single-description>*:first-child{margin-top:0}.idevart-single-description>*:last-child{margin-bottom:0}.idevart-single-description h2,.idevart-single-description h3{margin:1.7em 0 .55em;color:var(--idevart-ink);font-weight:760;letter-spacing:-.03em;line-height:1.15}.idevart-single-description h2{font-size:clamp(1.45rem,2.5vw,2rem)}.idevart-single-description h3{font-size:1.28rem}.idevart-single-description a{color:var(--idevart-accent);font-weight:720;text-underline-offset:3px}.idevart-single-description--fallback{margin:0}
.idevart-single-details{position:sticky;top:32px;padding:27px;border:1px solid var(--idevart-line);border-radius:calc(var(--idevart-radius) + 2px);background:linear-gradient(180deg,#fff,rgba(250,252,255,.94));box-shadow:0 12px 28px rgba(26,34,57,.055)}.idevart-single-details__head{padding-bottom:20px;border-bottom:1px solid var(--idevart-line)}.idevart-single-details__head h2{margin:0;color:var(--idevart-ink);font-size:1.4rem;font-weight:770;letter-spacing:-.035em}.idevart-single-details dl{margin:0}.idevart-single-details dl>div{display:grid;grid-template-columns:102px minmax(0,1fr);gap:15px;padding:16px 0;border-bottom:1px solid var(--idevart-line)}.idevart-single-details dt{color:#778197;font-size:.79rem;font-weight:760}.idevart-single-details dd{margin:0;color:#2f394f;font-size:.88rem;font-weight:680;line-height:1.45;text-align:right}.idevart-single-techs{padding:19px 0 6px}.idevart-single-techs>div{display:flex;flex-wrap:wrap;gap:7px}.idevart-single-techs>div span{display:inline-flex;align-items:center;min-height:27px;padding:6px 9px;border:1px solid color-mix(in srgb,var(--idevart-accent) 17%,transparent);border-radius:8px;color:#4c5870;background:color-mix(in srgb,var(--idevart-accent) 6%,white);font-size:.75rem;font-weight:700;line-height:1.2}.idevart-single-details__link{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:19px;padding:15px 0 0;border-top:1px solid var(--idevart-line);color:var(--idevart-accent);font-size:.9rem;font-weight:800;text-decoration:none}.idevart-single-details__link:hover{color:var(--idevart-accent)}
.idevart-single-realisation a:focus-visible{outline:3px solid color-mix(in srgb,var(--idevart-accent) 35%,transparent);outline-offset:4px}
@media(max-width:900px){.idevart-single-hero{grid-template-columns:1fr;gap:34px}.idevart-single-hero__media{order:-1;min-height:300px}.idevart-single-hero__media img,.idevart-single-placeholder{min-height:300px}.idevart-single-main-grid{grid-template-columns:1fr;gap:34px}.idevart-single-details{position:relative;top:auto;max-width:680px}}
@media(max-width:560px){.idevart-single-shell{padding-inline:16px}.idevart-single-hero{padding:25px 20px;border-radius:calc(var(--idevart-radius) + 3px)}.idevart-single-title{font-size:clamp(2.05rem,12vw,3rem)}.idevart-single-hero__media{min-height:230px}.idevart-single-hero__media img,.idevart-single-placeholder{min-height:230px}.idevart-single-actions{gap:13px}.idevart-single-visit{width:100%}.idevart-single-main-grid{padding-inline:0}.idevart-single-details{padding:21px}.idevart-single-details dl>div{grid-template-columns:1fr;gap:5px}.idevart-single-details dd{text-align:left}.idevart-single-back{margin-bottom:25px}}
