/* Le Private Studio - feuille de style commune aux deux langues */
* { margin:0; padding:0; box-sizing:border-box; }
  html { scroll-behavior:smooth; }

  body {
    background:#0a0a0a;
    color:#e8e6e1;
    font-family:'Jost', sans-serif;
    font-weight:300;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  h1, h2, h3 { font-family:'Cormorant Garamond', serif; font-weight:300; }
  a { color:inherit; }
  img { display:block; max-width:100%; }

  /* ===== Logo mark, reused everywhere ===== */
  .logo-mark {
    display:inline-flex;
    align-items:center;
    gap:12px;
  }
  .logo-mark .mono {
    font-family:'Bodoni Moda', 'Didot', 'Georgia', serif;
    font-weight:600;
    line-height:0.8;
    display:flex;
  }
  .logo-mark .mono .p { color:currentColor; }
  .logo-mark .mono .s { color:currentColor; opacity:0.55; margin-left:-0.16em; }
  .logo-mark .wordmark {
    font-family:'Jost', sans-serif;
    font-weight:300;
    text-transform:uppercase;
  }

  /* ===== Nav ===== */
  nav {
    position:fixed;
    top:0; left:0; right:0;
    z-index:50;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:22px 40px;
    mix-blend-mode:difference;
  }
  nav .logo-mark { color:#f4f2ee; }
  nav .logo-mark .mono { font-size:26px; }
  nav .logo-mark .wordmark { font-size:12px; letter-spacing:0.28em; padding-left:0.28em; }
  .nav-links {
    display:flex;
    gap:30px;
    font-size:11px;
    letter-spacing:0.2em;
    text-transform:uppercase;
    color:#f4f2ee;
  }
  .nav-links a { text-decoration:none; }
  @media (max-width:640px){
    nav { padding:18px 20px; }
    nav .logo-mark .wordmark { white-space:nowrap; font-size:10px; letter-spacing:0.2em; }
    .nav-links { gap:18px; white-space:nowrap; }
    .nav-links a { display:none; }
    .nav-links .nav-insta { display:inline; }
  }

  /* ===== Hero ===== */
  .hero {
    position:relative;
    height:100vh;
    min-height:640px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    background-color:#0a0a0a;
    background-size:cover;
    background-position:center 25%;
    filter:grayscale(100%);
  }
  .hero-content { padding:0 24px; filter:none; }
  .hero-content .logo-mark {
    flex-direction:column;
    color:#f4f2ee;
  }
  .hero-content .mono { font-size:clamp(64px, 11vw, 120px); }
  .hero-content .mono .s { margin-left:-0.2em; }
  .hero-content .wordmark {
    font-size:14px;
    letter-spacing:0.5em;
    padding-left:0.5em;
    margin-top:22px;
  }
  .hero-sub {
    display:block;
    margin-top:22px;
    font-size:12px;
    letter-spacing:0.4em;
    text-transform:uppercase;
    color:#c9c4b8;
    padding-left:0.4em;
  }
  .scroll-cue {
    text-decoration:none;
    position:absolute;
    bottom:36px; left:50%;
    transform:translateX(-50%);
    font-size:11px;
    letter-spacing:0.3em;
    text-transform:uppercase;
    color:#c9c4b8;
  }
  .scroll-cue::after {
    content:''; display:block; width:1px; height:30px;
    background:#c9c4b8; margin:12px auto 0; opacity:0.6;
  }

  /* ===== Section shell ===== */
  section { padding:130px 24px; max-width:960px; margin:0 auto; }
  .section-eyebrow {
    font-size:11px; letter-spacing:0.4em; text-transform:uppercase;
    color:#6a6760; text-align:center; margin-bottom:34px;
  }

  /* ===== Concept ===== */
  .concept { text-align:center; max-width:840px; }
  .concept p {
    font-family:'Cormorant Garamond', serif;
    font-size:clamp(20.5px, 2.2vw, 27px);
    line-height:1.8; color:#d8d5cf; font-weight:300;
  }
  .concept p + p { margin-top:30px; }
  .concept-detail {
    margin-top:60px;
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:40px;
    text-align:left;
  }
  @media (max-width:700px){ .concept-detail{ grid-template-columns:1fr; gap:46px; } }
  .concept-detail-item .num {
    font-family:'Cormorant Garamond', serif;
    font-size:15px; color:#6a6760; margin-bottom:14px; display:block;
  }
  .concept-detail-item h3 {
    font-size:18.5px; letter-spacing:0.03em; color:#f4f2ee; margin-bottom:12px; font-weight:400;
  }
  .concept-detail-item p {
    font-family:'Jost', sans-serif;
    font-size:14.5px; line-height:1.85; color:#a8a49c; font-weight:300;
  }

  /* ===== Studio / two photographers ===== */
  .studio { border-top:1px solid #262523; border-bottom:1px solid #262523; }
  .studio-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    margin-top:20px;
  }
  @media (max-width:700px){ .studio-grid{ grid-template-columns:1fr; gap:70px; } }
  .studio-member { text-align:center; }
  .studio-photo {
    width:180px; height:180px;
    border-radius:50%;
    overflow:hidden;
    margin:0 auto 28px;
    background:#141312;
  }
  .studio-photo img {
    width:100%; height:100%; object-fit:cover;
    filter:grayscale(100%) contrast(1.1) brightness(0.97);
  }
  .studio-name {
    font-family:'Cormorant Garamond', serif;
    font-size:24px; letter-spacing:0.04em; color:#f4f2ee;
    margin-bottom:6px;
  }
  .studio-role {
    font-size:11px; letter-spacing:0.25em; text-transform:uppercase;
    color:#6a6760; margin-bottom:20px;
  }
  .studio-bio {
    font-size:15px; line-height:1.9; color:#a8a49c;
    max-width:340px; margin:0 auto;
  }

  /* ===== Gallery ===== */
  .gallery-section { padding-bottom:0; }
  .gallery-intro { text-align:center; margin-bottom:56px; }
  .gallery-intro p {
    font-size:14.5px; color:#6a6760; max-width:480px; margin:0 auto; line-height:1.8;
  }
  .gallery {
    max-width:1400px;
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:2px;
    padding:0 2px;
  }
  @media (max-width:900px){ .gallery{ grid-template-columns:repeat(2, 1fr); } }
  @media (max-width:560px){ .gallery{ grid-template-columns:1fr; } }
  .gallery-item {
    position:relative;
    aspect-ratio:3/4;
    overflow:hidden;
    background:#141312;
  }
  .gallery-item img {
    width:100%; height:100%; object-fit:cover;
    filter:grayscale(100%) contrast(1.1) brightness(0.97);
    transition:transform 1.4s ease;
  }
  .gallery-item:hover img { transform:scale(1.04); }
  .gallery-caption {
    position:absolute; bottom:18px; left:18px;
    font-size:10.5px; letter-spacing:0.2em; text-transform:uppercase;
    color:#f4f2ee; text-shadow:0 1px 6px rgba(0,0,0,0.6);
    opacity:0; transition:opacity 0.3s ease;
  }
  .gallery-item:hover .gallery-caption { opacity:1; }

  /* ===== Craft ===== */
  .craft { text-align:center; }
  .craft p {
    font-size:16px; line-height:2; color:#b8b4ac; font-weight:300;
    max-width:660px; margin:0 auto;
  }
  .craft .signature {
    margin-top:40px; font-family:'Cormorant Garamond', serif;
    font-style:italic; font-size:20.5px; color:#8a8780;
  }

  /* ===== Presence / SEO locations ===== */
  .presence { border-top:1px solid #262523; text-align:center; }
  .presence p {
    font-size:15.5px; line-height:2; color:#a8a49c;
    max-width:700px; margin:0 auto 40px;
  }
  .presence-list {
    display:flex; flex-wrap:wrap; justify-content:center; gap:14px 34px;
    list-style:none;
  }
  .presence-list li {
    font-size:12px; letter-spacing:0.2em; text-transform:uppercase;
    color:#6a6760;
  }

  /* ===== Contact ===== */
  .contact { max-width:560px; }
  .contact h2 {
    text-align:center; font-size:30px; letter-spacing:0.08em;
    margin-bottom:20px; color:#f4f2ee;
  }
  .contact-sub {
    text-align:center; font-size:14px; color:#6a6760;
    margin-bottom:56px; line-height:1.8;
  }
  .field { margin-bottom:32px; }
  .field label {
    display:block; font-size:11px; letter-spacing:0.25em; text-transform:uppercase;
    color:#6a6760; margin-bottom:10px;
  }
  .field input, .field textarea {
    width:100%; background:transparent; border:none; border-bottom:1px solid #3a3733;
    color:#f4f2ee; font-family:'Jost', sans-serif; font-weight:300; font-size:16px;
    padding:10px 2px; outline:none; transition:border-color 0.3s ease;
  }
  .field textarea { resize:none; min-height:90px; line-height:1.6; }
  .field input:focus, .field textarea:focus { border-bottom-color:#e8e6e1; }
  .submit-row { text-align:center; margin-top:52px; }
  .submit-btn {
    background:none; border:1px solid #e8e6e1; color:#e8e6e1;
    font-family:'Jost', sans-serif; font-weight:300; font-size:12px;
    letter-spacing:0.35em; text-transform:uppercase;
    padding:16px 46px; padding-left:calc(46px + 0.35em);
    cursor:pointer; transition:background 0.3s ease, color 0.3s ease;
  }
  .submit-btn:hover { background:#e8e6e1; color:#0a0a0a; }
  .submit-btn:disabled { opacity:0.5; cursor:wait; }
  .form-note { text-align:center; margin-top:20px; font-size:13px; color:#6a6760; }
  .form-note a { text-decoration:none; color:#8a8780; }
  .form-note a:hover { color:#e8e6e1; }
  .form-status { text-align:center; margin-top:20px; font-size:13px; min-height:16px; }
  .form-status.ok { color:#d8d5cf; }
  .form-status.err { color:#a8756b; }



  /* ===== The Object : video + texte, juste sous l'ouverture ===== */
  .object { padding:110px 24px 0; max-width:1040px; }
  .object-grid {
    display:grid; grid-template-columns:340px minmax(0,1fr);
    gap:72px; align-items:center;
  }
  @media (max-width:860px){
    .object-grid { grid-template-columns:1fr; gap:56px; }
    .object-text { text-align:center; }
    .object-text .section-eyebrow { text-align:center; }
    .object-text .steps { text-align:left; }
  }
  .object-video {
    max-width:340px; width:100%; margin:0 auto;
    border:1px solid #262523; background:#141312;
  }
  .object-video video { display:block; width:100%; height:auto; }
  .object-text .section-eyebrow { text-align:left; margin-bottom:22px; }
  .object-text h2 {
    font-size:clamp(27px, 3vw, 36px); line-height:1.2; letter-spacing:0.01em;
    color:#f4f2ee; margin-bottom:22px;
  }
  .object-lede {
    font-family:'Cormorant Garamond', serif;
    font-size:clamp(18px, 1.9vw, 21px); line-height:1.75; color:#d8d5cf;
    margin:0 0 44px;
  }
  .object-text .steps { grid-template-columns:1fr 1fr; gap:30px 28px; }
  @media (max-width:440px){ .object-text .steps{ grid-template-columns:1fr; } }
  .steps { display:grid; grid-template-columns:repeat(4, 1fr); gap:34px; }
  @media (max-width:760px){ .steps{ grid-template-columns:1fr 1fr; gap:44px 30px; } }
  @media (max-width:440px){ .steps{ grid-template-columns:1fr; } }
  .step { position:relative; padding-top:22px; border-top:1px solid #2e2c29; }
  .step .n {
    position:absolute; top:-1px; left:0; width:26px; height:1px; background:#8a8780;
  }
  .step h4 {
    font-family:'Cormorant Garamond', serif; font-size:17.5px; font-weight:400;
    color:#f4f2ee; margin-bottom:10px; letter-spacing:0.02em;
  }
  .step p { font-size:14px; line-height:1.8; color:#a8a49c; }

  /* ===== Bandeau planners ===== */
  .planners {
    border-top:1px solid #262523; text-align:center; max-width:720px;
  }
  .planners p {
    font-family:'Cormorant Garamond', serif;
    font-size:clamp(20.5px, 2.1vw, 26px); line-height:1.75; color:#d8d5cf;
    margin-bottom:34px;
  }
  .planners .link {
    display:inline-block; text-decoration:none;
    font-size:11px; letter-spacing:0.32em; text-transform:uppercase;
    color:#c9c4b8; border-bottom:1px solid #4a4742;
    padding:0 0.32em 9px 0; transition:color .3s ease, border-color .3s ease;
  }
  .planners .link:hover { color:#f4f2ee; border-bottom-color:#f4f2ee; }

  /* ===== Practical details (pour wedding planners) ===== */
  .details { border-top:1px solid #262523; }
  .details-intro {
    text-align:center; font-size:15px; line-height:1.9; color:#a8a49c;
    max-width:600px; margin:0 auto 62px;
  }
  .spec-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:0 60px;
  }
  @media (max-width:700px){ .spec-grid{ grid-template-columns:1fr; gap:0; } }
  .spec {
    padding:26px 0; border-bottom:1px solid #1e1d1b;
  }
  .spec dt {
    font-size:11px; letter-spacing:0.28em; text-transform:uppercase;
    color:#6a6760; margin-bottom:11px;
  }
  .spec dd {
    font-size:15px; line-height:1.85; color:#b8b4ac; font-weight:300;
  }
  .details-foot {
    margin-top:52px; text-align:center;
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:18.5px; color:#8a8780;
  }

  /* ===== Galerie : etat vide ===== */
  .gallery-empty {
    grid-column:1 / -1; text-align:center; padding:90px 24px;
    font-size:13px; letter-spacing:0.2em; text-transform:uppercase; color:#3a3733;
  }

  /* ===== Champs de formulaire sur une ligne ===== */
  .field-row { display:grid; grid-template-columns:1fr 1fr; gap:0 28px; }
  @media (max-width:560px){ .field-row{ grid-template-columns:1fr; } }
  .hp { position:absolute; left:-9999px; opacity:0; height:0; overflow:hidden; }

  /* ===== Footer ===== */
  footer { text-align:center; padding:70px 24px 90px; border-top:1px solid #262523; }
  footer .logo-mark { flex-direction:column; color:#d8d5cf; }
  footer .mono { font-size:38px; }
  footer .wordmark { font-size:11px; letter-spacing:0.28em; padding-left:0.28em; margin-top:14px; }
  .footer-links {
    display:flex; flex-wrap:wrap; justify-content:center; gap:18px 26px; margin-top:34px;
    font-size:12px; letter-spacing:0.15em; text-transform:uppercase; color:#8a8780;
  }
  .footer-links a { text-decoration:none; }
  .footer-links a:hover { color:#e8e6e1; }
  .footer-note { margin-top:36px; font-size:11px; letter-spacing:0.1em; color:#4a4742; }

  /* ===== Selecteur de langue ===== */
  .lang-switch { margin-left:8px; }
  .lang-switch a { text-decoration:none; opacity:0.55; }
  .lang-switch a[aria-current="true"] { opacity:1; }
  @media (max-width:640px){ .lang-switch { display:inline !important; } }
  @media (max-width:640px){ .nav-links .lang-switch a { display:inline; } }

  /* ===== Titres presents pour les moteurs, integres au design ===== */
  .sr-heading {
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
  }
