/* ============================================================
   RENTY — Location Fiat 500 à Bordeaux
   Feuille de style commune — style crème bordelais élégant
   ============================================================ */

:root{
  --cream:#FBF6EE; --cream-2:#FDFAF3; --paper:#FFFFFF;
  --ink:#2A2420; --muted:#6F6457;
  --wine:#7B1E2B; --wine-d:#5E141F; --red:#E23B33;
  --gold:#C8893F; --pine:#3E5C4B; --line:#EAE0CD;
  --shadow:0 18px 50px rgba(60,40,20,.14);
  --shadow-s:0 8px 24px rgba(60,40,20,.10);
  --maxw:1140px;
  --r:16px;
  --serif:"Playfair Display", Georgia, "Times New Roman", serif;
  --sans:"Inter", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:var(--sans); font-size:17px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:var(--wine); text-decoration:none;}
a:hover{text-decoration:underline;}
h1,h2,h3,h4{font-family:var(--serif); font-weight:700; line-height:1.1; color:var(--ink); margin:0 0 .4em;}
h1{font-size:clamp(2.4rem,5vw,4rem);}
h2{font-size:clamp(1.9rem,3.6vw,2.8rem);}
h3{font-size:1.35rem;}
p{margin:0 0 1em;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 22px;}
.eyebrow{font-family:var(--sans); font-weight:700; letter-spacing:.22em; text-transform:uppercase; font-size:.78rem; color:var(--gold); margin:0 0 .8em;}
.center{text-align:center;}
.lead{font-size:1.18rem; color:var(--muted);}

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.55em; cursor:pointer;
  font-family:var(--sans); font-weight:700; font-size:1rem;
  padding:15px 28px; border-radius:50px; border:2px solid transparent;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  text-decoration:none;
}
.btn:hover{text-decoration:none; transform:translateY(-2px);}
.btn-primary{background:var(--wine); color:#fff; box-shadow:0 10px 24px rgba(123,30,43,.32);}
.btn-primary:hover{background:var(--wine-d); color:#fff;}
.btn-ghost{background:transparent; color:var(--wine); border-color:var(--wine);}
.btn-ghost:hover{background:var(--wine); color:#fff;}
.btn .arrow{transition:transform .15s ease;}
.btn:hover .arrow{transform:translateX(3px);}

/* ---------- Navigation ---------- */
.nav{position:sticky; top:0; z-index:50; background:rgba(251,246,238,.86); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.nav .wrap{display:flex; align-items:center; justify-content:space-between; height:70px;}
.brand{display:flex; align-items:center; gap:10px; font-family:var(--serif); font-weight:700; font-size:1.5rem; color:var(--ink);}
.brand:hover{text-decoration:none;}
.brand img{height:40px; width:auto;}
.brand span{color:var(--wine);}
.nav-links{display:flex; align-items:center; gap:26px;}
.nav-links a{color:var(--ink); font-weight:600; font-size:.97rem;}
.nav-links a:hover{color:var(--wine); text-decoration:none;}
.nav-cta{padding:10px 20px;}
.nav-burger{display:none; background:none; border:0; font-size:1.6rem; color:var(--ink); cursor:pointer;}

/* ---------- Hero ---------- */
.hero{position:relative; overflow:hidden; background-position:center; background-size:cover; background-repeat:no-repeat;}
.hero::before{content:""; position:absolute; inset:0; background:linear-gradient(rgba(18,10,8,.48), rgba(18,10,8,.58));}
.hero-inner{position:relative; z-index:1; max-width:var(--maxw); margin:0 auto; padding:58px 22px 72px; display:flex; justify-content:center;}
.hero-card{
  position:relative; margin:0; width:100%; max-width:950px;
  background:var(--cream-2); border:1px solid var(--line); border-radius:var(--r);
  box-shadow:var(--shadow); padding:40px 48px 36px; text-align:center;
}
.hero-tag{font-family:var(--serif); font-style:italic; font-size:1.18rem; color:var(--wine); margin:14px 0 0;}

/* ---------- Module de réservation (style Sixt, accent bordeaux) ---------- */
.sixt-box{position:relative; max-width:680px; margin:24px auto 6px; background:#fff; border-radius:18px; box-shadow:0 16px 40px rgba(60,40,20,.20); padding:12px; text-align:left; display:flex; flex-direction:column; gap:10px;}
.sixt-field{display:flex; align-items:center; gap:10px; background:#F4F1EA; border:1.6px solid transparent; border-radius:12px; padding:10px 14px;}
.sixt-loc input{border:0; background:transparent; font:700 .98rem/1.25 var(--sans); color:var(--wine); outline:none; width:100%; cursor:default;}
.sixt-ico{font-size:1.1rem; flex:0 0 auto;}
.sixt-in{flex:1; min-width:0; display:flex; flex-direction:column;}
.sixt-lab{font-size:.66rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);}
.sixt-row{display:flex; gap:10px;}
.sixt-group{flex:1; min-width:0; display:flex; flex-direction:column; gap:6px;}
.sixt-glab{font-size:.68rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); padding-left:2px;}
.sixt-pair{display:flex; gap:8px;}
.sixt-cell{flex:1.5; min-width:0; display:flex; align-items:center; gap:8px; background:#F4F1EA; border:1.6px solid transparent; border-radius:12px; padding:11px 12px; font:inherit; color:var(--ink); cursor:pointer; text-align:left; transition:border-color .15s, background .15s;}
.sixt-cell.sixt-tcell{flex:1;}
.sixt-cell b{font-weight:700; font-size:.96rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.sixt-cell:hover{background:#fff; border-color:var(--line);}
.sixt-cell.on{background:#fff; border-color:var(--wine); box-shadow:0 0 0 3px rgba(123,30,43,.10);}
.sixt-btn{background:var(--wine); color:#fff; border:0; border-radius:12px; padding:16px; font:800 1.08rem/1 var(--sans); cursor:pointer; transition:background .15s, transform .12s; box-shadow:0 8px 20px rgba(123,30,43,.28);}
.sixt-btn:hover{background:var(--wine-d); transform:translateY(-1px);}
/* Popover calendrier / heures */
.sixt-pop{position:absolute; left:12px; right:12px; top:100%; margin-top:-2px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 18px 44px rgba(60,40,20,.22); padding:14px; z-index:60;}
.cal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; font-weight:700; text-transform:capitalize;}
.cal-nav{width:34px; height:34px; border:1px solid var(--line); background:#fff; border-radius:50%; cursor:pointer; font-size:1.15rem; color:var(--wine); line-height:1;}
.cal-nav:hover{background:var(--cream-2);}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center;}
.cal-dow{font-size:.72rem; font-weight:700; color:var(--muted); padding:4px 0;}
.cal-day{border:0; background:transparent; border-radius:9px; padding:9px 0; cursor:pointer; font:600 .92rem var(--sans); color:var(--ink);}
.cal-day:hover:not(:disabled){background:var(--cream-2);}
.cal-day.sel{background:var(--wine); color:#fff; font-weight:800;}
.cal-day:disabled{color:#ccc; cursor:default;}
.time-list{display:grid; grid-template-columns:repeat(4,1fr); gap:6px; max-height:220px; overflow:auto;}
.time-item{border:1px solid var(--line); background:#fff; border-radius:9px; padding:9px 0; cursor:pointer; font:600 .9rem var(--sans); color:var(--ink);}
.time-item:hover{background:var(--cream-2);}
.time-item.sel{background:var(--wine); color:#fff; border-color:var(--wine); font-weight:800;}
.bk-result{max-width:640px; margin:14px auto 0; background:var(--cream-2); border:1px solid var(--line); border-left:4px solid var(--gold); border-radius:14px; padding:18px 22px; text-align:left; display:none;}
.bk-result.show{display:block; animation:bkIn .25s ease;}
@keyframes bkIn{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;}}
.bk-result h4{font-family:var(--sans); margin:0 0 8px; font-size:1.1rem; color:var(--wine);}
.bk-result .recap{margin:0 0 6px; color:var(--ink); font-size:1rem;}
.bk-result .bk-days{font-weight:700;}
.bk-result .perks{color:var(--muted); font-size:.9rem; margin:6px 0;}
.bk-result .bk-note{font-size:.9rem; color:var(--ink); margin:6px 0 14px;}
.bk-result .btn{width:100%; justify-content:center;}
.bk-copied{color:var(--wine); font-size:.82rem; font-weight:700;}
.bk-dates{display:flex; gap:10px; margin:4px 0 10px;}
.bk-dates > div{flex:1; background:#fff; border:1px solid var(--line); border-radius:12px; padding:10px 12px;}
.bk-dates span{display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--gold); font-weight:700; margin-bottom:2px;}
.bk-dates strong{display:block; font-size:.98rem; color:var(--ink); text-transform:capitalize;}
@media (max-width:600px){ .bk-dates{flex-direction:column;} }
@media (max-width:600px){ .sixt-box{max-width:100%;} .sixt-row{flex-direction:column;} .time-list{grid-template-columns:repeat(3,1fr);} }
.spec .nowrap{white-space:nowrap;}

/* ---------- Formulaire ---------- */
.rform{max-width:640px; margin:0 auto; text-align:left;}
.rform .field{margin-bottom:16px;}
.rform label{display:block; font-weight:600; font-size:.95rem; margin-bottom:6px;}
.rform input, .rform textarea{width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:10px; font:inherit; background:var(--paper); color:var(--ink);}
.rform input:focus, .rform textarea:focus{outline:none; border-color:var(--wine);}
.rform .row2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.rform .consent{display:flex; gap:10px; align-items:flex-start; font-weight:500; font-size:.9rem; color:var(--muted); margin:6px 0 18px;}
.rform .consent input{width:auto; margin-top:3px;}
.rtable{width:100%; border-collapse:collapse; margin:24px 0; font-size:.97rem;}
.rtable th, .rtable td{border:1px solid var(--line); padding:10px 13px; text-align:left; vertical-align:top;}
.rtable th{background:var(--cream-2); font-family:var(--sans); font-weight:700;}
.rtable tr:nth-child(even) td{background:#fcf8f1;}
.article figure{margin:26px 0;}
.article figure img{width:100%; border-radius:14px; border:1px solid var(--line); display:block;}
.article figcaption{font-size:.85rem; color:var(--muted); text-align:center; margin-top:8px; font-style:italic;}
.callout{background:var(--cream-2); border-left:4px solid var(--gold); border-radius:0 12px 12px 0; padding:16px 20px; margin:24px 0;}
.callout strong{color:var(--wine);}
.toc{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:18px 22px; margin:24px 0;}
.toc p{font-weight:700; margin:0 0 8px;}
.toc ul{margin:0; padding-left:1.1em;} .toc li{margin-bottom:5px;}
.legal-doc{max-width:780px; margin:0 auto;}
.legal-doc h2{margin-top:1.4em;}
.legal-doc p, .legal-doc li{font-size:1.02rem;}
@media (max-width:640px){ .rform .row2{grid-template-columns:1fr;} }
.hero-card h1{margin-bottom:.25em;}
.hero-card h1 em{font-style:italic; color:var(--wine);}
.hero-actions{display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:22px;}
.hero-meta{display:flex; gap:24px; justify-content:center; flex-wrap:wrap; margin-top:22px; color:var(--muted); font-size:.92rem; font-weight:600;}
.hero-meta b{color:var(--ink);}

/* ---------- Sections ---------- */
section{padding:70px 0;}
.section-head{max-width:720px; margin:0 auto 46px; text-align:center;}
.alt{background:var(--cream-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}

/* ---------- Showcase voiture ---------- */
.showcase{display:grid; grid-template-columns:1.05fr .95fr; gap:46px; align-items:center;}
.showcase .photo{border-radius:var(--r); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); background:#efe7d8;}
.showcase .photo img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/3;}
.price-badge{display:inline-block; background:var(--wine); color:#fff; font-weight:800; padding:8px 18px; border-radius:50px; font-size:1.05rem; margin-bottom:14px;}
.spec-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px 22px; margin:22px 0 26px;}
.spec{display:flex; gap:10px; align-items:flex-start; font-size:.97rem;}
.spec .ico{color:var(--wine); flex:0 0 auto; margin-top:2px;}
.spec b{display:block;}

/* ---------- Atouts ---------- */
.feature-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.feature{background:var(--paper); border:1px solid var(--line); border-radius:var(--r); padding:28px; box-shadow:var(--shadow-s);}
.feature .ico{width:48px; height:48px; border-radius:12px; background:#F3E7D2; display:flex; align-items:center; justify-content:center; color:var(--wine); margin-bottom:14px;}
.feature h3{font-family:var(--sans); font-weight:700; font-size:1.12rem; margin-bottom:.3em;}
.feature p{color:var(--muted); font-size:.96rem; margin:0;}
a.feature{text-decoration:none; color:inherit; display:block; transition:transform .15s ease, box-shadow .15s ease;}
a.feature:hover{transform:translateY(-4px); box-shadow:var(--shadow); text-decoration:none;}
a.feature .more{display:inline-block; margin-top:12px; color:var(--wine); font-weight:700; font-size:.9rem;}
a.place{text-decoration:none; color:inherit; display:flex; flex-direction:column; transition:transform .15s ease, box-shadow .15s ease;}
a.place:hover{transform:translateY(-4px); box-shadow:var(--shadow); text-decoration:none;}

/* ---------- Sites touristiques ---------- */
.places{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.place{position:relative; border-radius:var(--r); overflow:hidden; border:1px solid var(--line); background:var(--paper); box-shadow:var(--shadow-s); display:flex; flex-direction:column;}
.place .top{height:160px; display:flex; align-items:flex-end; padding:14px; color:#fff; text-shadow:0 1px 4px rgba(0,0,0,.4);}
.place .top strong{font-size:1.05rem;}
.place .body{padding:18px 20px 22px;}
.place .body h3{font-family:var(--sans); font-size:1.1rem; margin-bottom:.3em;}
.place .body p{color:var(--muted); font-size:.92rem; margin:0 0 .2em;}
.place .dist{font-size:.82rem; font-weight:700; color:var(--gold); text-transform:uppercase; letter-spacing:.06em;}

/* ---------- Bandeau CTA ---------- */
.cta-band{background:linear-gradient(135deg,var(--wine),var(--wine-d)); color:#fff; border-radius:22px; padding:48px; text-align:center; box-shadow:var(--shadow);}
.cta-band h2{color:#fff;}
.cta-band p{color:rgba(255,255,255,.86); max-width:560px; margin:0 auto 22px;}
.cta-band .btn-primary{background:#fff; color:var(--wine);}
.cta-band .btn-primary:hover{background:var(--cream);}

/* ---------- FAQ ---------- */
.faq{max-width:780px; margin:0 auto;}
.faq details{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:6px 20px; margin-bottom:12px;}
.faq summary{cursor:pointer; font-weight:700; padding:14px 0; list-style:none; display:flex; justify-content:space-between; align-items:center;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; color:var(--wine); font-size:1.4rem; font-weight:400;}
.faq details[open] summary::after{content:"\2013";}
.faq details p{color:var(--muted); margin:0 0 16px;}

/* ---------- Blog ---------- */
.blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.post-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow-s); display:flex; flex-direction:column; transition:transform .15s ease, box-shadow .15s ease;}
.post-card:hover{transform:translateY(-4px); box-shadow:var(--shadow); text-decoration:none;}
.post-card .cover{height:170px;}
.post-card .pc-body{padding:20px 22px 24px;}
.post-card .tag{font-size:.74rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gold);}
.post-card h3{font-size:1.2rem; margin:.4em 0 .3em; color:var(--ink);}
.post-card p{color:var(--muted); font-size:.94rem; margin:0;}
.post-card .more{display:inline-block; margin-top:14px; color:var(--wine); font-weight:700; font-size:.92rem;}

/* ---------- Article ---------- */
.article{max-width:760px; margin:0 auto; padding:50px 22px;}
.article img, .article .cover{max-width:100%;}
.article h1{overflow-wrap:break-word; word-wrap:break-word;}
.article .crumbs{font-size:.86rem; color:var(--muted); margin-bottom:18px;}
.article h1{margin-bottom:.2em;}
.article .meta{color:var(--muted); font-size:.9rem; margin-bottom:26px;}
.article .cover{border-radius:var(--r); overflow:hidden; margin:0 0 30px; border:1px solid var(--line);}
.article h2{margin-top:1.4em;}
.article h3{margin-top:1.2em;}
.article p,.article li{font-size:1.06rem;}
.article ul{padding-left:1.2em;} .article li{margin-bottom:.5em;}
.article blockquote{margin:1.4em 0; padding:14px 22px; border-left:4px solid var(--wine); background:var(--cream-2); border-radius:0 12px 12px 0; color:var(--ink); font-style:italic;}
.article .inline-cta{background:var(--cream-2); border:1px solid var(--line); border-radius:var(--r); padding:26px; text-align:center; margin:34px 0;}

/* gradients décoratifs pour les "top" de cartes lieux/blog (pas d'image externe) */
.g-bord{background:linear-gradient(135deg,#7B1E2B,#9E3340);}
.g-dune{background:linear-gradient(135deg,#E2A86A,#C97D3E);}
.g-vigne{background:linear-gradient(135deg,#5E141F,#7B1E2B);}
.g-pin{background:linear-gradient(135deg,#3E5C4B,#5E7C63);}
.g-eau{background:linear-gradient(135deg,#8FA6A4,#5E807E);}
.g-ville{background:linear-gradient(135deg,#C8893F,#A86E2C);}

/* ---------- Footer ---------- */
.footer{background:var(--ink); color:#E9E1D4; padding:54px 0 28px; margin-top:10px;}
.footer a{color:#E9E1D4;}
.footer .cols{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:34px;}
.footer h4{font-family:var(--sans); font-size:.85rem; letter-spacing:.12em; text-transform:uppercase; color:#C8A772; margin-bottom:14px;}
.footer .brand{color:#fff;}
.footer .brand span{color:#E2A86A;}
.footer ul{list-style:none; padding:0; margin:0;}
.footer li{margin-bottom:9px; font-size:.95rem;}
.footer .legal{border-top:1px solid rgba(255,255,255,.14); margin-top:34px; padding-top:18px; font-size:.82rem; color:#A89B88; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .showcase{grid-template-columns:1fr; gap:28px;}
  .feature-grid,.places,.blog-grid{grid-template-columns:1fr 1fr;}
  .footer .cols{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
  body{font-size:16px;}
  .nav-links{position:absolute; top:70px; left:0; right:0; background:var(--cream-2); border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:0; padding:8px 0; display:none;}
  .nav-links.open{display:flex;}
  .nav-links a{padding:13px 22px;}
  .nav-cta{margin:8px 22px;}
  .nav-burger{display:block;}
  .feature-grid,.places,.blog-grid,.spec-grid,.footer .cols{grid-template-columns:1fr;}
  .hero-inner{padding:34px 16px 42px;}
  .hero-card{padding:28px 22px;}
  .cta-band{padding:34px 22px;}
  .article{padding:34px 18px;}
  h1{font-size:1.9rem;}
  section{padding:52px 0;}
}

/* ---------- Chatbot Mariane (moderne) ---------- */
.mar-launcher{position:fixed; right:22px; bottom:22px; z-index:300; width:64px; height:64px; padding:0; border:0; border-radius:50%; background:var(--wine); cursor:pointer; box-shadow:0 12px 30px rgba(123,30,43,.45); transition:transform .18s ease, box-shadow .18s ease; overflow:visible; animation:marPop .4s ease both; display:flex; align-items:center; justify-content:center;}
.mar-launcher:hover{transform:scale(1.06); box-shadow:0 16px 36px rgba(123,30,43,.55);}
.mar-launcher.hide{transform:scale(0); opacity:0; pointer-events:none;}
.mar-launcher .mar-ico{width:30px; height:30px; fill:#fff;}
.mar-dot{position:absolute; right:3px; bottom:3px; width:14px; height:14px; border-radius:50%; background:#2BD07A; border:2.5px solid #fff; box-shadow:0 0 0 0 rgba(43,208,122,.6); animation:marPulse 2s infinite;}
@keyframes marPop{from{transform:scale(0)}to{transform:scale(1)}}
@keyframes marPulse{0%{box-shadow:0 0 0 0 rgba(43,208,122,.55)}70%{box-shadow:0 0 0 8px rgba(43,208,122,0)}100%{box-shadow:0 0 0 0 rgba(43,208,122,0)}}

.mar-teaser{position:fixed; right:22px; bottom:96px; z-index:300; display:flex; align-items:center; gap:10px; width:250px; background:#fff; border-radius:18px 18px 4px 18px; box-shadow:0 14px 34px rgba(30,10,10,.22); padding:12px 14px 12px 12px; cursor:pointer; transform:translateY(12px) scale(.96); opacity:0; visibility:hidden; pointer-events:none; transition:transform .25s ease, opacity .25s ease;}
.mar-teaser[hidden]{display:flex;}
.mar-teaser.show{transform:translateY(0) scale(1); opacity:1; visibility:visible; pointer-events:auto;}
.mar-teaser img{width:38px; height:38px; border-radius:50%; object-fit:cover; flex:0 0 auto;}
.mar-teaser-txt{font-size:.9rem; line-height:1.35; color:var(--ink); display:flex; flex-direction:column;}
.mar-teaser-txt strong{font-size:.72rem; letter-spacing:.02em; color:var(--wine); text-transform:uppercase; margin-bottom:2px;}
.mar-teaser-x{position:absolute; top:-8px; right:-8px; width:22px; height:22px; border-radius:50%; border:0; background:var(--wine); color:#fff; font-size:.7rem; line-height:1; cursor:pointer; box-shadow:0 2px 6px rgba(0,0,0,.2);}

.mar-panel{position:fixed; right:22px; bottom:22px; z-index:301; width:384px; max-width:calc(100vw - 32px); height:600px; max-height:calc(100vh - 44px); background:#fff; border-radius:22px; box-shadow:0 28px 70px rgba(30,10,10,.4); display:flex; flex-direction:column; overflow:hidden; font-family:var(--sans); transform:translateY(20px) scale(.97); opacity:0; visibility:hidden; pointer-events:none; transition:transform .2s ease, opacity .2s ease; transform-origin:bottom right;}
.mar-panel[hidden]{display:flex;}
.mar-panel.open{transform:translateY(0) scale(1); opacity:1; visibility:visible; pointer-events:auto;}
@media (max-width:520px){ .mar-panel{right:0; bottom:0; width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; border-radius:0;} .mar-launcher{right:16px; bottom:16px;} .mar-teaser{right:16px; bottom:90px;} }

.mar-head{display:flex; align-items:center; gap:12px; background:linear-gradient(135deg,var(--wine),var(--wine-d)); color:#fff; padding:15px 16px;}
.mar-head .mar-ava{width:44px; height:44px; border-radius:50%; object-fit:cover; border:2px solid rgba(255,255,255,.5);}
.mar-id{flex:1; display:flex; flex-direction:column; line-height:1.25;}
.mar-id strong{font-size:1.08rem;}
.mar-id span{font-size:.76rem; opacity:.92; display:flex; align-items:center; gap:6px;}
.mar-id span::before{content:''; width:8px; height:8px; border-radius:50%; background:#2BD07A; box-shadow:0 0 0 2px rgba(43,208,122,.3);}
.mar-close{background:rgba(255,255,255,.15); border:0; color:#fff; width:30px; height:30px; border-radius:50%; font-size:.85rem; cursor:pointer; transition:background .15s;}
.mar-close:hover{background:rgba(255,255,255,.3);}

.mar-body{flex:1; overflow-y:auto; padding:18px 16px; background:var(--cream); display:flex; flex-direction:column; gap:12px;}
.mar-msg{display:flex; gap:8px; align-items:flex-end; max-width:100%; animation:marIn .25s ease both;}
@keyframes marIn{from{opacity:0; transform:translateY(6px)}to{opacity:1; transform:translateY(0)}}
.mar-msg.me{justify-content:flex-end;}
.mar-msg img{width:30px; height:30px; border-radius:50%; object-fit:cover; flex:0 0 auto;}
.mar-bubble{background:#fff; border:1px solid var(--line); border-radius:16px 16px 16px 5px; padding:11px 14px; font-size:.93rem; line-height:1.55; color:var(--ink); max-width:80%; box-shadow:0 2px 8px rgba(30,10,10,.05);}
.mar-msg.me .mar-bubble{background:var(--wine); color:#fff; border:0; border-radius:16px 16px 5px 16px;}
.mar-bubble a{color:var(--wine); font-weight:700;}
.mar-msg.me .mar-bubble a{color:#fff; text-decoration:underline;}
.mar-typing{display:flex; gap:4px;}
.mar-typing span{width:7px; height:7px; border-radius:50%; background:var(--muted); animation:marBlink 1s infinite;}
.mar-typing span:nth-child(2){animation-delay:.2s;} .mar-typing span:nth-child(3){animation-delay:.4s;}
@keyframes marBlink{0%,60%,100%{opacity:.3;} 30%{opacity:1;}}

.mar-chips{display:flex; flex-wrap:wrap; gap:8px; margin:2px 0 2px 38px;}
.mar-chip{background:#7B1E2B; border:0; color:#fff; border-radius:50px; padding:10px 16px; font-size:.86rem; font-weight:600; cursor:pointer; transition:all .15s; white-space:nowrap; box-shadow:0 3px 10px rgba(123,30,43,.28);}
.mar-chip:hover{background:#5E141F; transform:translateY(-1px); box-shadow:0 5px 14px rgba(123,30,43,.4);}

.mar-input{display:flex; gap:8px; padding:10px 12px; border-top:1px solid var(--line); background:#fff;}
.mar-input input{flex:1; border:1px solid var(--line); border-radius:50px; padding:12px 16px; font:inherit; outline:none; transition:border-color .15s;}
.mar-input input:focus{border-color:var(--wine);}
.mar-input button{background:var(--wine); color:#fff; border:0; border-radius:50%; width:44px; height:44px; cursor:pointer; font-size:1rem; flex:0 0 auto; transition:background .15s;}
.mar-input button:hover{background:var(--wine-d);}
.mar-foot{text-align:center; font-size:.7rem; color:var(--muted); padding:6px 0 9px; background:#fff; letter-spacing:.02em;}

.mar-cform{display:flex; flex-direction:column; gap:8px;}
.mar-cform input, .mar-cform textarea{border:1px solid var(--line); border-radius:10px; padding:10px 12px; font:inherit; outline:none; width:100%;}
.mar-cform input:focus, .mar-cform textarea:focus{border-color:var(--wine);}
.mar-cform button{background:var(--wine); color:#fff; border:0; border-radius:10px; padding:11px; font-weight:700; cursor:pointer; transition:background .15s;}
.mar-cform button:hover{background:var(--wine-d);}
