@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&display=swap');
:root{--forest:#173d32;--deep:#102e27;--cream:#f8f5ee;--gold:#c7a46c;--ink:#22352d;--muted:#69776f;--line:#e8e3d9;--white:#fffefa}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.65 'DM Sans',system-ui,sans-serif}h1,h2,h3,.brand{font-family:'Playfair Display',Georgia,serif;line-height:1.18}h1{font-size:clamp(2.6rem,5.6vw,5.3rem);letter-spacing:-.045em}h1 em{font-weight:500;color:var(--gold)}h2{font-size:clamp(1.7rem,3vw,2.55rem);letter-spacing:-.025em}h3{font-size:1.5rem}a{color:var(--forest)}.container{max-width:1160px;margin:auto;padding-left:26px;padding-right:26px}.site-header{background:var(--deep);color:#fff}.nav{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:1.3rem;color:#fff;text-decoration:none;font-weight:600;white-space:nowrap}.brand-symbol{color:var(--gold);font-family:Georgia;margin-right:7px}.nav nav{display:flex;align-items:center;flex-wrap:wrap;gap:19px}.nav nav a,.nav-logout{color:#f1f2eb;text-decoration:none;font-size:.85rem;font-weight:600}.nav nav a:hover,.nav-logout:hover{color:var(--gold)}.inline{display:inline}.nav-logout{border:1px solid #60766c;background:transparent;border-radius:7px;padding:7px 11px;cursor:pointer;font-family:inherit}.hero{display:grid;grid-template-columns:1.3fr .7fr;align-items:center;min-height:505px;background:radial-gradient(circle at 80% 10%,#35594b 0%,transparent 40%),linear-gradient(125deg,#163c31,#102d26);color:white;border-radius:0 0 24px 24px;padding:75px clamp(26px,6vw,76px);margin:0 -26px 64px;overflow:hidden;position:relative}.hero:before{content:'';position:absolute;inset:0;opacity:.09;background-image:repeating-linear-gradient(45deg,transparent 0 22px,#e5c99c 23px,transparent 24px);pointer-events:none}.hero-copy{position:relative;z-index:1}.hero h1{margin:17px 0 23px;max-width:690px}.hero p{max-width:590px;color:#e1e8dd;font-size:1.08rem}.eyebrow{letter-spacing:.18em;font-size:.72rem;font-weight:800;color:#9a7442}.eyebrow.light{color:#e1bb81}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;background:var(--gold);color:#152c25;border:1px solid var(--gold);border-radius:8px;padding:13px 20px;font-weight:700;text-decoration:none;cursor:pointer;font:700 .91rem 'DM Sans',sans-serif;transition:transform .15s,background .15s}.btn:hover{transform:translateY(-2px);background:#ddbc85}.btn-ghost{background:transparent;color:#fff;border-color:#80968b}.btn-ghost:hover{background:#ffffff14}.btn-outline{background:transparent;border-color:var(--forest);color:var(--forest)}.hero-art{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:290px}.plate{width:min(26vw,265px);height:min(26vw,265px);border-radius:50%;border:2px solid #b7a078;box-shadow:0 0 0 14px #ffffff09,0 0 0 17px #b7a07866,0 0 0 45px #ffffff07;display:grid;place-items:center;transform:rotate(-12deg)}.plate-inner{width:77%;height:77%;border:1px solid #b7a07888;border-radius:50%;display:grid;place-items:center;color:#c9a873;font-size:5rem;font-family:Georgia}.hero-art-caption{position:absolute;bottom:0;right:0;color:#e8c68c;text-align:right;letter-spacing:.23em;font-size:.72rem;font-weight:800}.hero-art-caption small{display:block;color:#ced7cb;letter-spacing:.08em;font-weight:400}.section{margin:48px 0 58px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:22px}.section-heading h2{margin:7px 0 0}.section-mark{font-size:.75rem;letter-spacing:.2em;color:#9c9e92}.card{background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 36px #173d320a}.feature{padding:clamp(25px,4vw,45px);position:relative;overflow:hidden}.feature:after{content:'✳';position:absolute;right:30px;top:5px;font:12rem Georgia;color:#f4efe4;pointer-events:none}.feature>*{position:relative;z-index:1}.feature-top,.feature-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.feature h3{font-size:2.2rem;margin:22px 0 12px}.feature-description{max-width:760px;color:var(--muted)}.feature-bottom{border-top:1px solid var(--line);padding-top:22px;margin-top:30px}.pill{display:inline-block;background:#e9f0e9;color:var(--forest);border-radius:999px;padding:5px 13px;font-size:.77rem;font-weight:700}.date-tag{font-size:.83rem;font-weight:700;color:#8d6b38}.detail-label{font-size:.68rem;letter-spacing:.14em;color:#8d978f;font-weight:800}.detail{color:var(--forest);font-weight:700;margin:5px 0}.text-link,.tile-link{font-weight:750;text-decoration:none}.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px;margin:24px 0 55px}.tile{padding:28px;min-height:275px;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s;position:relative}.tile:hover{transform:translateY(-5px);box-shadow:0 18px 42px #173d3218}.tile-num{position:absolute;top:25px;right:26px;font-size:.72rem;color:#a4a99e;letter-spacing:.1em}.tile-icon{font-size:2.3rem;color:#a7844e}.tile h3{margin:22px 0 8px}.tile p{color:var(--muted);font-size:.93rem;min-height:55px}.tile-link{color:var(--forest);font-size:.85rem}.organizer-link{margin-bottom:50px;color:var(--muted)}.page-intro{max-width:810px;margin:72px 0 36px}.page-intro h1{margin:10px 0 18px}.page-intro p,.muted{color:var(--muted)}.form-card{padding:clamp(22px,4vw,40px);margin-bottom:23px}.form-card h2{margin:12px 0 17px}.form-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.calendar-symbol{font-size:3rem;color:#c3a16a}.field{margin-bottom:20px}label{display:block;font-weight:650;margin-bottom:8px}input:not([type=radio]),textarea,select{width:100%;border:1px solid #ccd1c9;border-radius:8px;background:white;padding:12px;font:inherit;color:var(--ink)}input:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:1px}.date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}.date-choice{border:1px solid var(--line);border-radius:12px;padding:18px;margin:0;min-width:0}.date-choice legend{display:flex;align-items:center;gap:13px;padding:0 8px}.date-day{font:700 2.1rem Georgia;color:var(--forest)}.date-month{font-weight:750}.date-month small{display:block;color:var(--muted);font-size:.78rem;font-weight:500}.choices{display:flex;flex-direction:column;gap:7px}.choices label{font-size:.86rem;font-weight:600;background:#f6f4ee;border:1px solid transparent;border-radius:8px;padding:8px 12px;cursor:pointer;margin:0}.choices label:has(input:checked){background:#e4efe7;border-color:#8eae98}.choices input,.response-option input{accent-color:var(--forest);margin-right:7px}.choice-heading{font-weight:700;margin:25px 0 13px}.response-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:25px}.response-option{border:1px solid var(--line);border-radius:12px;padding:20px;cursor:pointer}.response-option:has(input:checked){border-color:#7ca58a;background:#edf5ed}.response-option strong,.response-option small{display:block}.response-option small{font-size:.8rem;color:var(--muted)}.response-icon{display:block;font-size:2rem;color:var(--forest)}.auth-wrap{min-height:67vh;display:grid;place-items:center;padding:65px 0}.auth-card{width:min(100%,470px);padding:42px}.auth-card h1{font-size:2.5rem}.auth-card form label{margin-top:16px}.full{width:100%;margin-top:20px}.small{font-size:.85rem}.error{color:#9a2929;background:#fff0ed;padding:12px;border-radius:8px}.messages{margin-top:22px;background:#e5f1e7;border:1px solid #b8d2bd;border-radius:8px;padding:5px 18px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:0 0 22px}.stat-card{background:#fffefa;border:1px solid var(--line);border-radius:13px;padding:22px}.stat-card span,.stat-card small{display:block;color:var(--muted)}.stat-card strong{display:block;font:700 3rem Georgia;color:var(--forest)}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;margin-top:20px}th,td{text-align:left;padding:14px 12px;border-bottom:1px solid var(--line)}th{color:var(--forest);background:#f6f3ec;font-size:.8rem}.count{font-weight:750;padding:5px 12px;border-radius:30px;font-size:.8rem;white-space:nowrap}.yes{background:#e0f2e4;color:#21653c}.maybe{background:#fff2d6;color:#865d16}.no{background:#f9e4e0;color:#a03e33}.back{margin:26px 0 52px}.footer{border-top:1px solid var(--line);padding-top:30px;padding-bottom:34px;color:var(--muted);font-size:.83rem;display:flex;justify-content:space-between;gap:20px}.footer span:first-child{font-family:Georgia;color:var(--forest)}@media(max-width:850px){.nav{align-items:flex-start;flex-direction:column;padding-top:18px;padding-bottom:18px}.nav nav{gap:13px}.hero{grid-template-columns:1fr}.hero-art{display:none}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.container{padding-left:18px;padding-right:18px}.hero{margin:0 -18px 40px;padding:58px 24px;min-height:0}.hero h1{font-size:2.65rem}.tiles,.date-grid,.response-grid,.stat-grid{grid-template-columns:1fr}.tile{min-height:0}.section{margin:36px 0}.page-intro{margin-top:48px}.auth-card{padding:25px}.footer{flex-direction:column}.nav nav a,.nav-logout{font-size:.8rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}


.date-input, textarea {width:100%;max-width:560px;padding:14px 16px;border:1px solid #c9c5b9;border-radius:12px;font:inherit;background:#fff;color:#19382e;}
.request-item{padding:18px 0;border-bottom:1px solid #dedbd2}.request-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}

/* Les Soupers d'Emile — amélioration mobile, version 1 */
html { -webkit-text-size-adjust:100%; }
body { overflow-x:clip; }
img,svg,video { max-width:100%; height:auto; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #b99555; outline-offset:3px; }
@media (max-width: 800px) {
  .site-header { position:relative; z-index:10; }
  .nav { gap:14px; }
  .nav nav { display:flex; flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; width:100%; max-width:100%; gap:6px; padding:3px 0 9px; -webkit-overflow-scrolling:touch; }
  .nav nav > a, .nav nav > form { flex:0 0 auto; }
  .nav nav a, .nav-logout { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 13px; border-radius:999px; background:rgba(255,255,255,.09); white-space:nowrap; font-size:.88rem; }
  .nav-logout { border:1px solid rgba(255,255,255,.15); cursor:pointer; }
  .hero { border-radius:0 0 20px 20px; }
  .hero-copy { max-width:100%; }
  .hero h1 { overflow-wrap:break-word; }
  .form-card,.feature,.tile { overflow-wrap:anywhere; }
  .table-scroll { max-width:100%; -webkit-overflow-scrolling:touch; }
  .table-scroll table { min-width:460px; }
}
@media (max-width: 620px) {
  .container { padding-inline:18px; }
  .brand { font-size:1.07rem; line-height:1.25; }
  .hero { padding:44px 22px 48px; margin-bottom:30px; }
  .hero h1 { font-size:clamp(2.25rem,10.5vw,3.15rem); line-height:1.07; letter-spacing:-.035em; }
  .hero p { font-size:1rem; line-height:1.65; }
  .actions { display:grid; grid-template-columns:1fr; gap:11px; }
  .actions .btn { width:100%; min-height:48px; text-align:center; justify-content:center; }
  .section-heading { align-items:flex-start; }
  .section-heading h2 { font-size:clamp(1.65rem,7vw,2.15rem); }
  .section-mark { display:none; }
  .feature { padding:24px 20px; }
  .feature:after { font-size:8rem; right:-18px; top:35px; }
  .feature h3 { font-size:1.75rem; }
  .feature-bottom { align-items:flex-start; flex-direction:column; gap:14px; }
  .tiles { grid-template-columns:1fr; gap:12px; }
  .tile { padding:23px 22px; min-height:0; }
  .tile h3 { margin-top:12px; }
  .tile p { min-height:0; }
  .page-intro { margin:39px 0 24px; }
  .page-intro h1 { font-size:clamp(2.05rem,9vw,2.8rem); line-height:1.12; }
  .form-card { padding:23px 18px; border-radius:14px; }
  .form-heading { align-items:flex-start; }
  .calendar-symbol { font-size:2rem; }
  .date-grid,.response-grid,.stat-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
  .date-choice { padding:15px 12px; }
  .date-choice legend { max-width:100%; }
  .choices label { padding:12px 10px; min-height:45px; display:flex; align-items:center; }
  .choices input { width:18px; height:18px; flex:none; }
  .response-option { padding:18px; min-height:105px; }
  .response-option input { width:18px; height:18px; }
  input:not([type=radio]),textarea,select { font-size:16px; min-height:46px; }
  textarea { min-height:100px; }
  .btn,button[type=submit] { min-height:46px; }
  .stat-card { padding:18px 20px; }
  .stat-card strong { font-size:2.5rem; }
  .footer { gap:9px; padding-top:24px; }
  .auth-wrap { min-height:65vh; padding:28px 0; }
  .auth-card { padding:27px 20px; }
  .auth-card h1 { font-size:2rem; }
  .request-actions { display:grid; grid-template-columns:1fr; }
  .request-actions button,.request-actions a { width:100%; }
  .date-input { width:100%; max-width:100%; font-size:16px; }
}
@media (max-width:380px) {
  .container { padding-inline:14px; }
  .hero { margin-inline:-14px; padding-inline:18px; }
  .nav nav a,.nav-logout { padding-inline:10px; }
  .feature { padding:20px 16px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; } }

/* Corrections pour iPhone et Android */
@media screen and (max-width: 768px) {

  html {
    font-size: 14px;
    overflow-x: hidden;
  }

  body {
    overflow-x: hidden;
  }

  .container {
    width: 100%;
    max-width: 100%;
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
  }

  .hero {
    padding-top: 35px;
    padding-bottom: 45px;
    min-height: auto;
  }

  .hero h1 {
    font-size: clamp(2.2rem, 9vw, 3.5rem);
    line-height: 1.1;
  }

  .hero p {
    font-size: 1rem;
    line-height: 1.6;
  }

  .hero-art {
    display: none;
  }

  .actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .actions .btn {
    width: 100%;
    box-sizing: border-box;
    text-align: center;
  }

  .section {
    padding-top: 35px;
    padding-bottom: 25px;
  }

  .section h2,
  .page-intro h1 {
    font-size: clamp(2rem, 8vw, 3rem);
    line-height: 1.15;
  }

  .card {
    padding: 24px;
    overflow: hidden;
  }

  .card h3 {
    font-size: 1.7rem;
    line-height: 1.2;
  }

  .feature {
    position: relative;
  }

  .feature::before,
  .feature::after {
    pointer-events: none;
  }

  .tiles,
  .stat-grid {
    grid-template-columns: 1fr;
  }

  .nav {
    flex-wrap: wrap;
  }

  .nav nav {
    width: 100%;
    flex-wrap: wrap;
  }
}

/* Dernières corrections pour téléphone */
@media (max-width: 768px) {

  /* Menu horizontal compact */
  .site-header .nav {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }

  .site-header nav {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 8px;
    width: 100%;
    padding-bottom: 8px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .site-header nav::-webkit-scrollbar {
    display: none;
  }

  .site-header nav a,
  .site-header nav button {
    white-space: nowrap;
    flex-shrink: 0;
    font-size: 13px;
    padding: 12px 14px;
  }

  /* Empêcher les éléments décoratifs de déborder */
  .feature {
    position: relative;
    overflow: hidden;
  }

  .feature::before,
  .feature::after {
    display: none !important;
  }

  .feature .feature-description,
  .feature h3 {
    position: relative;
    z-index: 2;
  }

  /* Espacements plus compacts */
  .section {
    padding-top: 28px;
    padding-bottom: 18px;
  }

  .hero {
    padding-top: 30px;
    padding-bottom: 35px;
  }
}


/* Logo verre à vin doré — Les Soupers d'Émile */
.brand-symbol{display:inline-flex;vertical-align:middle;align-items:center;justify-content:center;width:32px;height:32px;margin-right:8px;color:#d8b779;background:transparent!important;font-size:0!important}
.brand-symbol .wine-icon{width:30px;height:30px;display:block}
.feature::after{content:none!important;display:none!important}
.feature-wine{position:absolute!important;right:26px;top:30px;z-index:0!important;width:115px;height:115px;opacity:.23;color:#b59057;pointer-events:none}
.feature-wine .wine-icon{width:100%;height:100%}
.feature>*:not(.feature-wine){position:relative;z-index:1}
@media(max-width:768px){.feature-wine{right:12px;top:12px;width:60px;height:60px;opacity:.13}.brand-symbol{width:28px;height:28px}.brand-symbol .wine-icon{width:26px;height:26px}}
/* Supprimer définitivement le gros symbole */
.feature::before,
.feature::after {
    content: none !important;
    display: none !important;
}

/* Verre à vin doré dans le menu */
.brand-symbol {
    background: transparent !important;
    color: #d8b779 !important;
}

.brand-symbol .wine-icon {
    width: 30px;
    height: 30px;
    display: block;
}
