/* DIESSE Transfer & Tour: charcoal, warm cream and one gold. Real photos only. */
:root{
  --dark:#121417; --dark-2:#1B1E23; --dark-3:#262A31;
  --cream:#F6F2EB; --cream-2:#EFE8DC; --card:#FFFFFF; --line:#E6DED0;
  --ink:#16191E; --text:#353A43; --muted:#697079;
  --on-dark:#F4EFE6; --on-dark-2:rgba(244,239,230,.72); --line-dark:rgba(255,255,255,.13);
  --gold:#D6B47C; --gold-2:#C79F60; --gold-3:#A8823F;
  --wa:#1FAF55;
  --serif:"EB Garamond", Garamond, Georgia, serif;
  --sans:"Source Sans 3", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --r:10px; --r-sm:6px;
  --wrap:1240px; --pad:clamp(16px, 4vw, 40px);
  --hh:76px;
}
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; scroll-padding-top:var(--hh); -webkit-text-size-adjust:100%; }
body{ background:var(--cream); color:var(--text); font-family:var(--sans); font-size:1.0625rem; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
body.lock{ overflow:hidden; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; height:auto; display:block; }
button,input,select,textarea{ font:inherit; color:inherit; }
button{ cursor:pointer; background:none; border:0; }
fieldset{ border:0; min-width:0; }
:focus-visible{ outline:2px solid var(--gold-2); outline-offset:2px; }
.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 var(--pad); }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
h1,h2,h3{ font-family:var(--serif); font-weight:500; color:var(--ink); line-height:1.1; letter-spacing:-.005em; }
h2{ font-size:clamp(2.1rem, 3.6vw, 3rem); }
.eyebrow{ display:block; font-size:.74rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-bottom:.7rem; }
.on-dark .eyebrow{ color:var(--gold); }
svg.i{ width:20px; height:20px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }

/* buttons */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.55rem; min-height:48px; padding:0 1.4rem; border-radius:var(--r-sm); font-weight:600; font-size:.97rem; border:1px solid transparent; transition:background .2s, color .2s, border-color .2s; white-space:nowrap; }
.btn svg{ width:17px; height:17px; }
.btn--gold{ background:var(--gold); color:var(--ink); }
.btn--gold:hover{ background:var(--gold-2); }
.btn--dark{ background:var(--dark); color:#fff; }
.btn--dark:hover{ background:var(--dark-3); }
.btn--line{ border-color:var(--ink); color:var(--ink); }
.btn--line:hover{ background:var(--ink); color:#fff; }
.btn--ghost{ border-color:rgba(255,255,255,.55); color:#fff; }
.btn--ghost:hover{ background:#fff; color:var(--ink); }
.btn--wa{ background:var(--wa); color:#fff; }
.btn--wa:hover{ filter:brightness(.93); }
.more{ display:inline-flex; align-items:center; gap:.4rem; font-weight:600; font-size:.93rem; color:var(--ink); }
.more svg{ width:16px; height:16px; transition:transform .2s; }
.more:hover svg{ transform:translateX(3px); }

/* header */
.hdr{ position:fixed; inset:0 0 auto; z-index:50; height:var(--hh); color:#fff; transition:background .3s, box-shadow .3s; }
.hdr.scrolled{ background:rgba(18,20,23,.97); box-shadow:0 8px 24px -16px rgba(0,0,0,.6); }
.hdr .wrap{ height:100%; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.brand{ display:flex; flex-direction:column; line-height:1; }
.brand b{ font-family:var(--serif); font-weight:600; font-size:1.65rem; letter-spacing:.1em; }
.brand img{ display:block; height:clamp(40px,5vw,50px); width:auto; }
.footer .brand img{ height:62px; }
.brand small{ margin-top:.28rem; font-size:.62rem; font-weight:600; letter-spacing:.24em; text-transform:uppercase; opacity:.8; }
.nav{ display:flex; gap:clamp(1rem, 2vw, 1.9rem); font-size:.96rem; }
.nav a{ padding:.3rem 0; opacity:.88; border-bottom:1px solid transparent; transition:opacity .2s, border-color .2s; }
.nav a:hover{ opacity:1; border-bottom-color:var(--gold); }
.hdr__r{ display:flex; align-items:center; gap:.9rem; }
.hdr__tel{ display:flex; align-items:center; gap:.4rem; font-weight:600; font-size:.95rem; opacity:.9; }
.hdr__tel:hover{ opacity:1; }
.lang{ display:inline-flex; border:1px solid rgba(255,255,255,.3); border-radius:var(--r-sm); overflow:hidden; }
.lang button, .lang a{ padding:.35rem .55rem; font-size:.78rem; font-weight:700; letter-spacing:.06em; opacity:.7; }
.lang button[aria-pressed="true"], .lang a[aria-current="page"]{ opacity:1; background:rgba(255,255,255,.14); }
.hdr .btn{ min-height:42px; padding:0 1.1rem; font-size:.92rem; }
.burger{ display:none; width:44px; height:44px; position:relative; }
.burger span{ position:absolute; left:11px; right:11px; height:2px; background:currentColor; transition:transform .25s; }
.burger span:first-child{ top:17px; } .burger span:last-child{ top:25px; }
.burger[aria-expanded="true"] span:first-child{ transform:translateY(4px) rotate(45deg); }
.burger[aria-expanded="true"] span:last-child{ transform:translateY(-4px) rotate(-45deg); }
.mnav{ position:fixed; inset:0; z-index:49; background:var(--dark); color:var(--on-dark); padding:calc(var(--hh) + 20px) var(--pad) 28px; display:flex; flex-direction:column; opacity:0; visibility:hidden; transition:opacity .25s, visibility .25s; overflow-y:auto; }
.mnav.open{ opacity:1; visibility:visible; }
.mnav > a{ font-family:var(--serif); font-size:1.85rem; padding:.55rem 0; border-bottom:1px solid var(--line-dark); }
.mnav__foot{ margin-top:auto; padding-top:1.6rem; display:grid; gap:.8rem; }
.mnav__foot .lang{ width:max-content; }
body.menu-open .hdr{ background:var(--dark); }

/* hero */
.hero{ position:relative; min-height:max(700px, 100svh); display:flex; align-items:center; background:var(--dark); color:var(--on-dark); padding:calc(var(--hh) + 36px) 0 48px; overflow:hidden; }
.hero__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:58% 55%; }
.hero::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg, rgba(12,13,16,.9) 0%, rgba(12,13,16,.7) 40%, rgba(12,13,16,.12) 68%, rgba(12,13,16,.3) 100%), linear-gradient(0deg, rgba(12,13,16,.6), rgba(12,13,16,0) 35%); }
.hero .wrap{ position:relative; z-index:2; width:100%; display:grid; grid-template-columns:minmax(0, 1.15fr) minmax(0, .85fr); gap:40px; align-items:center; }
.hero h1{ color:#fff; font-size:clamp(2.8rem, 5.6vw, 4.8rem); line-height:1; margin-bottom:1.3rem; }
.hero__sub{ font-size:1.12rem; color:rgba(244,239,230,.86); max-width:48ch; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.8rem; }
.hero__trust{ display:flex; flex-wrap:wrap; gap:.8rem 1.3rem; margin-top:2.4rem; padding-top:1.4rem; border-top:1px solid var(--line-dark); font-size:.9rem; color:rgba(244,239,230,.85); }
.hero__trust > span{ display:inline-flex; align-items:center; gap:.5rem; }
.hero__trust svg{ color:var(--gold); width:22px; height:22px; }

/* booking card */
.book{ justify-self:end; width:100%; max-width:440px; background:var(--card); color:var(--text); border-radius:var(--r); padding:18px; box-shadow:0 30px 60px -24px rgba(0,0,0,.6); }
.book__tabs{ display:grid; grid-template-columns:repeat(3, 1fr); background:var(--cream-2); border-radius:var(--r-sm); padding:3px; margin-bottom:14px; }
.book__tabs label{ cursor:pointer; }
.book__tabs input{ position:absolute; opacity:0; pointer-events:none; }
.book__tabs span{ display:block; text-align:center; padding:.5rem .3rem; border-radius:4px; font-size:.86rem; font-weight:600; color:var(--muted); transition:all .2s; }
.book__tabs input:checked + span{ background:#fff; color:var(--ink); box-shadow:0 1px 4px rgba(0,0,0,.12); }
.book__tabs input:focus-visible + span{ outline:2px solid var(--gold-2); }
.book__grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.bf label{ display:block; font-size:.78rem; font-weight:600; color:var(--muted); margin:0 0 .25rem 1px; }
.bf input, .bf select{ width:100%; height:44px; padding:0 .75rem; border:1px solid var(--line); border-radius:var(--r-sm); background:#fff; font-size:.97rem; color:var(--ink); appearance:none; }
.bf select{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2316191E' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .7rem center; background-size:11px; }
.bf input:focus, .bf select:focus{ outline:none; border-color:var(--ink); }
.bf--3{ display:grid; grid-template-columns:1.25fr 1fr .9fr; gap:10px; grid-column:1/-1; }
.bf__check{ grid-column:1/-1; display:flex; align-items:center; gap:.5rem; font-size:.88rem; font-weight:600; color:var(--ink); cursor:pointer; margin:-2px 0 2px; }
.bf__check input{ width:17px; height:17px; accent-color:var(--ink); }
.book .btn{ grid-column:1/-1; width:100%; margin-top:4px; }
.book__multi{ display:flex; flex-direction:column; gap:12px; }
.book__multi p{ margin:0; font-size:.92rem; line-height:1.5; color:var(--text); }
.book__note{ display:flex; align-items:center; gap:.4rem; margin-top:.7rem; font-size:.84rem; color:var(--muted); }
.book__note svg{ width:15px; height:15px; color:var(--gold-3); }
.book__grid[hidden], .book__multi[hidden], .book__note[hidden], .bf__check[hidden]{ display:none; }

/* sections */
.sec{ padding:clamp(64px, 8vw, 100px) 0; }
.sh{ display:flex; justify-content:space-between; align-items:flex-end; gap:1rem 2rem; flex-wrap:wrap; margin-bottom:32px; }
.sh p{ color:var(--muted); max-width:58ch; margin-top:.5rem; }

/* services */
.svc{ display:grid; grid-template-columns:repeat(6, 1fr); gap:14px; }
.svc__c{ display:flex; flex-direction:column; background:var(--card); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; transition:box-shadow .25s, transform .25s; }
.svc__c:hover{ box-shadow:0 16px 34px -20px rgba(22,25,30,.45); transform:translateY(-2px); }
.svc__img{ aspect-ratio:4/3; overflow:hidden; background:var(--cream-2); }
.svc__img img{ width:100%; height:100%; object-fit:cover; }
.svc__b{ position:relative; padding:14px 40px 16px 16px; flex:1; }
.svc__b h3{ font-size:1.18rem; font-weight:600; line-height:1.2; }
.svc__b p{ font-size:.9rem; color:var(--muted); line-height:1.45; margin-top:.3rem; }
.svc__b svg{ position:absolute; right:14px; bottom:16px; width:18px; height:18px; color:var(--ink); transition:transform .2s; }
.svc__c:hover .svc__b svg{ transform:translateX(3px); }

/* destinations band */
.band{ position:relative; background:var(--dark); color:var(--on-dark); overflow:hidden; }
.band__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.35; }
.band::before{ content:""; position:absolute; inset:0; z-index:1; background:rgba(12,13,16,.45); }
.band .wrap{ position:relative; z-index:2; display:grid; grid-template-columns:minmax(0, .85fr) minmax(0, 1.6fr); gap:clamp(28px, 4vw, 56px); align-items:center; }
.band h2{ color:#fff; }
.band__t p{ color:var(--on-dark-2); margin:1rem 0 1.6rem; }
.dest-wrap{ position:relative; min-width:0; }
.dest{ display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding-bottom:4px; }
.dest::-webkit-scrollbar{ display:none; }
.dest a{ position:relative; flex:0 0 calc((100% - 48px) / 5); min-width:150px; aspect-ratio:3/4.4; border-radius:var(--r); overflow:hidden; border:1px solid var(--line-dark); scroll-snap-align:start; }
.dest img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.dest a:hover img{ transform:scale(1.05); }
.dest a::after{ content:""; position:absolute; inset:50% 0 0; background:linear-gradient(0deg, rgba(10,11,13,.85), rgba(10,11,13,0)); }
.dest a > span{ position:absolute; z-index:1; left:12px; right:12px; bottom:12px; display:flex; align-items:flex-end; justify-content:space-between; gap:.5rem; }
.dest b{ display:block; font-family:var(--serif); font-weight:500; font-size:1.2rem; line-height:1.1; color:#fff; }
.dest small{ display:block; font-size:.76rem; color:rgba(255,255,255,.78); margin-top:.15rem; }
.dest svg{ width:16px; height:16px; color:#fff; }
.dest-nav{ display:flex; gap:.5rem; margin-top:14px; justify-content:flex-end; }
.dest-nav button{ width:40px; height:40px; border-radius:50%; border:1px solid var(--line-dark); color:#fff; display:grid; place-items:center; transition:background .2s; }
.dest-nav button:hover{ background:rgba(255,255,255,.12); }
.dest-nav svg{ width:16px; height:16px; }

/* fleet */
.fleet{ display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; }
.car{ text-align:center; }
.car__img{ position:relative; height:190px; display:flex; align-items:flex-end; justify-content:center; padding:0 10px; }
.car__img::after{ content:""; position:absolute; left:12%; right:12%; bottom:-6px; height:18px; border-radius:50%; background:radial-gradient(ellipse at center, rgba(0,0,0,.28), rgba(0,0,0,0) 70%); }
.car__img img{ position:relative; z-index:1; max-height:100%; width:auto; max-width:100%; object-fit:contain; }
.car h3{ font-family:var(--sans); font-size:1.05rem; font-weight:700; margin-top:22px; }
.car__meta{ display:flex; justify-content:center; gap:1.3rem; margin-top:.5rem; font-size:.92rem; color:var(--muted); }
.car__meta span{ display:inline-flex; align-items:center; gap:.35rem; }
.car__meta svg{ width:17px; height:17px; }
.car p{ font-size:.92rem; color:var(--muted); margin-top:.35rem; }
.fleet-note{ margin-top:34px; padding-top:18px; border-top:1px solid var(--line); font-size:.92rem; color:var(--muted); text-align:center; }

/* why band */
.why{ background:var(--dark); color:var(--on-dark); padding:clamp(44px, 5vw, 60px) 0; }
.why .wrap{ display:grid; grid-template-columns:2fr repeat(5, 1fr) auto; align-items:center; }
.why h2{ color:#fff; font-size:clamp(1.7rem, 2.3vw, 2.1rem); padding-right:24px; }
.why__i{ text-align:center; padding:0 12px; border-left:1px solid var(--line-dark); font-size:.9rem; line-height:1.35; color:var(--on-dark-2); }
.why__i svg{ display:block; margin:0 auto .6rem; width:30px; height:30px; color:var(--gold); stroke-width:1.3; }
.why__i b{ display:block; color:var(--on-dark); font-weight:600; }
.why .btn{ margin-left:24px; }

/* more than a transfer */
.more-t{ display:grid; grid-template-columns:minmax(0, .8fr) minmax(0, 1.2fr); background:var(--cream); }
.more-t__img{ position:relative; min-height:520px; }
.more-t__img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.more-t__b{ padding:clamp(40px, 5vw, 72px) clamp(20px, 5vw, 64px); }
.more-t__b > p{ color:var(--muted); margin:1rem 0 1.6rem; max-width:56ch; }
.more-t__cta{ display:flex; flex-wrap:wrap; gap:.7rem; margin-bottom:2.2rem; }
.aud{ display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; }
.aud a{ position:relative; display:block; background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:18px 18px 44px; transition:box-shadow .25s; }
.aud a:hover{ box-shadow:0 14px 30px -20px rgba(22,25,30,.5); }
.aud svg.ic{ width:28px; height:28px; color:var(--gold-3); }
.aud b{ display:block; margin:.7rem 0 .3rem; color:var(--ink); font-size:1rem; }
.aud a > span{ display:block; font-size:.9rem; color:var(--muted); line-height:1.45; }
.aud svg.ar{ position:absolute; left:18px; bottom:16px; width:18px; height:18px; color:var(--ink); }

/* about */
.about{ display:grid; grid-template-columns:1.2fr .9fr; gap:clamp(32px, 5vw, 72px); align-items:start; }
.about .lead{ font-size:1.1rem; margin-top:1rem; }
.about blockquote{ margin:1.7rem 0; padding-left:1.2rem; border-left:3px solid var(--gold); font-family:var(--serif); font-style:italic; font-size:1.45rem; line-height:1.35; color:var(--ink); }
.about blockquote cite{ display:block; margin-top:.4rem; font-family:var(--sans); font-style:normal; font-size:.9rem; color:var(--muted); }
.checks{ list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:.55rem 1.4rem; }
.checks li{ display:flex; gap:.55rem; align-items:flex-start; }
.checks svg{ color:var(--gold-3); margin-top:.2rem; width:18px; height:18px; }
.incl h3{ font-family:var(--sans); font-size:1rem; font-weight:700; margin:1.8rem 0 .8rem; }
.facts{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:26px 26px 10px; }
.facts h3{ font-size:1.45rem; }
.facts > p{ color:var(--muted); font-size:.94rem; margin:.3rem 0 .7rem; }
.facts dl div{ display:grid; grid-template-columns:128px 1fr; gap:1rem; padding:.78rem 0; border-top:1px solid var(--line); font-size:.96rem; }
.facts dt{ color:var(--muted); }
.facts dd{ color:var(--ink); font-weight:500; }
.facts dd a{ text-decoration:underline; text-underline-offset:2px; }

/* faq */
.faq-sec{ background:var(--cream-2); }
.faq{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(28px, 5vw, 72px); }
.faq__side p{ color:var(--muted); margin:.8rem 0 1.4rem; }
.qa details{ border-bottom:1px solid var(--line); }
.qa details:first-child{ border-top:1px solid var(--line); }
.qa summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.05rem 0; font-weight:600; font-size:1.04rem; color:var(--ink); }
.qa summary::-webkit-details-marker{ display:none; }
.qa summary svg{ width:18px; height:18px; transition:transform .25s; color:var(--gold-3); }
.qa details[open] summary svg{ transform:rotate(45deg); }
.qa details p{ padding:0 2rem 1.15rem 0; color:var(--muted); }

/* contact */
.cgrid{ display:grid; grid-template-columns:1.4fr .9fr; gap:clamp(28px, 4vw, 56px); align-items:start; }
.who{ display:inline-flex; padding:4px; background:var(--cream-2); border-radius:999px; margin:6px 0 22px; }
.who label{ cursor:pointer; }
.who input{ position:absolute; opacity:0; pointer-events:none; }
.who span{ display:inline-block; padding:.5rem 1.1rem; border-radius:999px; font-weight:600; font-size:.94rem; color:var(--muted); transition:all .2s; }
.who input:checked + span{ background:#fff; color:var(--ink); box-shadow:0 2px 8px rgba(0,0,0,.1); }
.who input:focus-visible + span{ outline:2px solid var(--gold-2); }
.form{ display:grid; grid-template-columns:1fr 1fr; gap:16px 18px; }
.field{ display:flex; flex-direction:column; gap:.35rem; }
.field--full{ grid-column:1/-1; }
.field label{ font-size:.9rem; font-weight:600; color:var(--ink); }
.field label small{ font-weight:400; color:var(--muted); }
.field input, .field select, .field textarea{ width:100%; min-height:48px; padding:.7rem .9rem; border:1px solid var(--line); border-radius:var(--r-sm); background:#fff; font-size:1rem; color:var(--ink); appearance:none; }
.field select{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2316191E' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .9rem center; background-size:12px; padding-right:2.4rem; }
.field textarea{ min-height:110px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--ink); box-shadow:0 0 0 3px rgba(22,25,30,.08); }
.field [aria-invalid="true"]{ border-color:#B3261E; }
[data-trade-only]{ display:none; }
.is-trade [data-trade-only]{ display:flex; }
.form:not(.is-trade) .field--svc{ grid-column:1/-1; }
.form .hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.form__foot{ grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:center; gap:.8rem 1.4rem; margin-top:.3rem; }
.note{ font-size:.9rem; color:var(--muted); max-width:52ch; }
.note a{ text-decoration:underline; }
.note.err{ color:#B3261E; font-weight:600; }
.qok{ grid-column:1/-1; background:#fff; border:1px solid var(--line); border-left:4px solid var(--gold); border-radius:var(--r); padding:26px; }
.qok h3{ font-size:1.8rem; }
.qok p{ color:var(--muted); margin-top:.3rem; }
.ccard{ background:var(--dark); color:var(--on-dark); border-radius:var(--r); padding:28px; position:sticky; top:calc(var(--hh) + 20px); }
.ccard h3{ color:#fff; font-size:1.7rem; }
.ccard > p{ color:var(--on-dark-2); margin:.4rem 0 1.2rem; }
.ccard .btn{ width:100%; }
.crow{ display:flex; gap:.8rem; align-items:flex-start; padding:.9rem 0; border-top:1px solid var(--line-dark); }
.ccard .btn + .crow{ margin-top:1.2rem; }
.crow svg{ color:var(--gold); margin-top:.15rem; }
.crow small{ display:block; font-size:.8rem; color:rgba(244,239,230,.6); }
.crow a:hover{ text-decoration:underline; }

/* footer */
.footer{ background:var(--dark); color:var(--on-dark-2); padding:64px 0 28px; font-size:.95rem; }
.ft{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1fr 1.2fr; gap:32px; padding-bottom:36px; border-bottom:1px solid var(--line-dark); }
.footer .brand{ color:#fff; }
.ft > div:first-child p{ margin-top:1rem; max-width:34ch; }
.fcol{ display:flex; flex-direction:column; gap:.48rem; }
.fcol b{ color:#fff; font-weight:700; font-size:.93rem; margin-bottom:.35rem; }
.fcol a:hover{ color:#fff; }
.ftalk .btn{ margin-top:.4rem; width:100%; }
.legal{ padding-top:22px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:.6rem 2rem; font-size:.85rem; }
.legal a{ text-decoration:underline; }

/* floating WhatsApp (desktop) + bottom bar (phones) */
.fab{ position:fixed; right:20px; bottom:20px; z-index:30; width:56px; height:56px; border-radius:50%; background:var(--wa); color:#fff; display:grid; place-items:center; box-shadow:0 10px 26px -8px rgba(0,0,0,.4); transition:opacity .25s, transform .25s; }
.fab svg{ width:28px; height:28px; }
.fab.hide{ opacity:0; pointer-events:none; transform:scale(.85); }
.mbar{ display:none; }

@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } *{ transition:none !important; } }

/* ---------- responsive ---------- */
@media (max-width:1200px){
  .nav{ display:none; }
  .burger{ display:block; }
  .svc{ grid-template-columns:repeat(3, 1fr); gap:18px; }
  .why .wrap{ grid-template-columns:repeat(5, 1fr); row-gap:28px; }
  .why .wrap > div:first-child{ grid-column:1/-1; }
  .why h2{ padding:0; }
  .why .btn{ grid-column:1/-1; justify-self:start; margin:0; }
  .why__i:nth-of-type(1){ border-left:0; }
  .ft{ grid-template-columns:1fr 1fr 1fr; }
  .ft > div:first-child{ grid-column:1/-1; }
}
@media (max-width:1200px) and (min-width:981px){
  .bf--3{ grid-template-columns:1fr 1fr; }
  .bf--3 .bf:last-child{ grid-column:1/-1; }
}
@media (max-width:980px){
  .hdr__tel span{ display:none; }
  .hero{ min-height:0; padding-top:calc(var(--hh) + 28px); }
  .hero .wrap{ grid-template-columns:1fr; gap:32px; }
  .book{ justify-self:stretch; max-width:none; }
  .band .wrap, .more-t, .about, .faq, .cgrid{ grid-template-columns:1fr; }
  .more-t__img{ min-height:300px; }
  .ccard{ position:static; }
  .dest a{ flex-basis:180px; }
}
@media (max-width:760px){
  :root{ --hh:64px; }
  body{ font-size:1rem; padding-bottom:calc(64px + env(safe-area-inset-bottom)); }
  .hdr .btn, .hdr .lang, .hdr__tel{ display:none; }
  .hero::before{ background:rgba(12,13,16,.62); }
  .hero__trust{ gap:.7rem 1.2rem; }
  .svc{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; margin:0 calc(var(--pad) * -1); padding:0 var(--pad) 6px; scroll-padding:0 var(--pad); scrollbar-width:none; }
  .svc::-webkit-scrollbar{ display:none; }
  .svc__c{ flex:0 0 72%; scroll-snap-align:start; }
  .fleet{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:16px; margin:0 calc(var(--pad) * -1); padding:0 var(--pad) 6px; scrollbar-width:none; }
  .fleet::-webkit-scrollbar{ display:none; }
  .car{ flex:0 0 78%; scroll-snap-align:center; }
  .car__img{ height:150px; }
  .why .wrap{ grid-template-columns:1fr 1fr; }
  .why__i{ border-left:0; text-align:left; padding:0; display:flex; gap:.7rem; align-items:flex-start; }
  .why__i svg{ margin:0; width:26px; height:26px; }
  .aud{ grid-template-columns:1fr; }
  .checks{ grid-template-columns:1fr; }
  .form{ grid-template-columns:1fr; }
  .who{ display:flex; }
  .who label{ flex:1; text-align:center; }
  .who span{ display:block; padding:.5rem .6rem; font-size:.9rem; }
  .facts dl div{ grid-template-columns:1fr; gap:.1rem; }
  .qa details p{ padding-right:0; }
  .ft{ grid-template-columns:1fr 1fr; }
  .ftalk{ grid-column:1/-1; }
  .fab{ display:none; }
  .mbar{ display:grid; grid-template-columns:1fr 1fr 1.3fr; position:fixed; left:0; right:0; bottom:0; z-index:45; background:var(--dark); border-top:1px solid var(--line-dark); padding:8px 10px calc(8px + env(safe-area-inset-bottom)); gap:8px; }
  .mbar a{ display:flex; align-items:center; justify-content:center; gap:.4rem; min-height:46px; border-radius:var(--r-sm); font-weight:600; font-size:.93rem; color:#fff; border:1px solid var(--line-dark); }
  .mbar a.wa{ background:var(--wa); border-color:var(--wa); }
  .mbar a.q{ background:var(--gold); border-color:var(--gold); color:var(--ink); }
  .mbar svg{ width:18px; height:18px; }
}
@media (max-width:420px){
  .bf--3{ grid-template-columns:1fr 1fr; }
  .bf--3 .bf:last-child{ grid-column:1/-1; }
  .hero__cta .btn{ flex:1; }
}

/* fleet: 7 vehicles, all facing left */
.fleet{ display:flex; flex-wrap:wrap; justify-content:center; gap:34px 28px; }
.car{ flex:0 0 calc((100% - 84px) / 4); min-width:0; }
.car__ask{ display:inline-block; margin-top:.7rem; font-size:.9rem; font-weight:600; color:var(--ink); border-bottom:1px solid var(--gold-2); }
.car__ask:hover{ color:var(--gold-3); }
@media (max-width:1000px) and (min-width:761px){ .car{ flex-basis:calc((100% - 28px) / 2); } }
@media (max-width:760px){
  .fleet{ display:grid; grid-template-columns:1fr 1fr; gap:28px 14px; margin:0; padding:0; overflow:visible; }
  .car{ flex:none; }
  .car:last-child{ grid-column:1 / -1; }
  .car__img{ height:100px; padding:0 4px; }
  .car:last-child .car__img{ height:120px; }
  .car h3{ font-size:.96rem; margin-top:16px; }
  .car__meta{ font-size:.86rem; margin-top:.3rem; }
  .car p{ font-size:.86rem; line-height:1.4; }
  .car__ask{ font-size:.86rem; }
}

/* destination pages */
html:not([lang="it"]) [data-l="it"], html[lang="it"] [data-l="en"]{ display:none !important; }
.dhero{ position:relative; background:var(--dark); color:var(--on-dark); padding:calc(var(--hh) + clamp(48px, 9vw, 110px)) 0 clamp(48px, 7vw, 84px); overflow:hidden; }
.dhero > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.dhero::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg, rgba(12,13,16,.82), rgba(12,13,16,.35)); }
.dhero .wrap{ position:relative; z-index:2; }
.dhero h1{ color:#fff; font-size:clamp(2.4rem, 5.4vw, 4.2rem); max-width:16ch; }
.dhero__p{ max-width:56ch; margin:1.1rem 0 1.8rem; color:var(--on-dark-2); font-size:1.12rem; }
.dhero__cta{ display:flex; flex-wrap:wrap; gap:12px; }
.crumb{ display:flex; flex-wrap:wrap; gap:.5rem; font-size:.85rem; color:var(--on-dark-2); margin-bottom:1.6rem; }
.crumb a:hover{ color:#fff; }
.dp-glance{ background:var(--dark); border-top:1px solid var(--line-dark); color:var(--on-dark); }
.dp-glance .wrap{ display:grid; grid-template-columns:repeat(4, 1fr); }
.dp-glance .wrap > div{ padding:22px 20px; border-left:1px solid var(--line-dark); }
.dp-glance .wrap > div:first-child{ border-left:0; padding-left:0; }
.dp-glance small{ display:block; font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.dp-glance b{ display:block; margin-top:.3rem; font-weight:600; line-height:1.35; }
.dp-sec{ padding:clamp(48px, 7vw, 88px) 0; }
.dp-alt{ background:var(--cream-2); }
.dp-hl{ list-style:none; display:grid; grid-template-columns:repeat(2, 1fr); gap:0 clamp(28px, 5vw, 64px); margin-top:2rem; }
.dp-hl li{ display:flex; gap:18px; padding:22px 0; border-top:1px solid var(--line); }
.dp-n{ font-family:var(--serif); font-size:1.7rem; color:var(--gold-3); line-height:1; min-width:2.2rem; }
.dp-hl h3{ font-size:1.35rem; }
.dp-hl p{ margin-top:.35rem; color:var(--muted); font-size:.98rem; }
.dp-gal{ display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:14px; }
.dp-gal figure{ aspect-ratio:4/3; border-radius:var(--r); overflow:hidden; }
.dp-gal img{ width:100%; height:100%; object-fit:cover; }
.dp-two{ display:grid; grid-template-columns:1.4fr 1fr; gap:clamp(28px, 5vw, 64px); align-items:start; }
.dp-ways{ margin-top:1.6rem; display:grid; gap:14px; }
.dp-way{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:18px 20px; }
.dp-way h3{ font-size:1.3rem; }
.dp-way p{ color:var(--muted); font-size:.96rem; margin-top:.3rem; }
.dp-tips{ background:var(--dark); color:var(--on-dark); border-radius:var(--r); padding:26px 24px; }
.dp-tips h3{ color:#fff; font-size:1.5rem; margin-bottom:1rem; }
.dp-tips ul{ list-style:none; display:grid; gap:14px; }
.dp-tips li{ display:flex; gap:12px; font-size:.97rem; color:var(--on-dark-2); }
.dp-tips svg{ color:var(--gold); margin-top:.15rem; }
.dp-cta{ background:var(--dark-2); color:var(--on-dark); padding:clamp(48px, 7vw, 84px) 0; text-align:center; }
.dp-cta h2{ color:#fff; }
.dp-cta p{ max-width:56ch; margin:1rem auto 1.8rem; color:var(--on-dark-2); }
.dp-cta .dhero__cta{ justify-content:center; }
.dp-more{ display:grid; grid-template-columns:repeat(6, 1fr); gap:12px; margin-top:1rem; }
.dp-more a{ position:relative; aspect-ratio:3/4; border-radius:var(--r); overflow:hidden; }
.dp-more img{ width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.dp-more a:hover img{ transform:scale(1.05); }
.dp-more a::after{ content:""; position:absolute; inset:45% 0 0; background:linear-gradient(0deg, rgba(10,11,13,.85), rgba(10,11,13,0)); }
.dp-more span{ position:absolute; z-index:1; left:10px; right:10px; bottom:10px; display:flex; justify-content:space-between; align-items:flex-end; color:#fff; }
.dp-more b{ font-family:var(--serif); font-weight:500; font-size:1.1rem; line-height:1.1; }
.dp-more svg{ width:15px; height:15px; }
body.dp .footer{ padding-top:28px; }
@media (max-width:980px){ .dp-glance .wrap{ grid-template-columns:1fr 1fr; } .dp-glance .wrap > div:nth-child(3){ border-left:0; padding-left:0; } .dp-two{ grid-template-columns:1fr; } .dp-more{ grid-template-columns:repeat(3, 1fr); } }
@media (max-width:760px){ .dp-hl{ grid-template-columns:1fr; } .dp-more{ grid-template-columns:repeat(2, 1fr); } .dhero__cta .btn{ flex:1 1 100%; } body.dp{ padding-bottom:calc(64px + env(safe-area-inset-bottom)); } }

/* services: 4 columns, 8th card is a direct quote card */
.svc{ grid-template-columns:repeat(4, 1fr); }
.svc__c--cta{ background:var(--dark); border-color:var(--dark); color:var(--on-dark); }
.svc__c--cta .svc__b{ display:flex; flex-direction:column; justify-content:center; padding:24px 22px; }
.svc__c--cta h3{ color:#fff; font-size:1.55rem; }
.svc__c--cta p{ color:var(--on-dark-2); margin:.5rem 0 1.2rem; }
.svc__c--cta .eyebrow{ color:var(--gold); }
.svc__c--cta .btn{ align-self:flex-start; }
.svc__c--cta .btn svg{ position:static; color:inherit; }
@media (max-width:980px) and (min-width:761px){ .svc{ grid-template-columns:repeat(2, 1fr); } }

/* service detail sheet */
dialog.sheet{ padding:0; border:0; border-radius:14px; width:min(940px, calc(100vw - 48px)); max-width:none; max-height:min(88vh, 720px); margin:auto; background:var(--cream); color:var(--text); overflow:hidden; box-shadow:0 30px 80px -20px rgba(0,0,0,.55); }
dialog.sheet::backdrop{ background:rgba(10,11,13,.62); }
dialog.sheet[open]{ animation:sheetIn .25s ease; }
@keyframes sheetIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.sheet__in{ display:grid; grid-template-columns:minmax(0, .85fr) minmax(0, 1.15fr); }
.sheet__img{ position:relative; }
.sheet__img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.sheet__b{ padding:34px 34px 28px; overflow-y:auto; max-height:min(88vh, 720px); overscroll-behavior:contain; }
.sheet__x{ position:absolute; top:12px; right:12px; z-index:3; width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.94); color:var(--ink); display:grid; place-items:center; box-shadow:0 2px 12px rgba(0,0,0,.18); }
.sheet__x svg{ transform:rotate(45deg); width:22px; height:22px; }
.sheet h2{ font-size:clamp(1.9rem, 3vw, 2.4rem); padding-right:36px; }
.sheet__lead{ margin:.8rem 0 1.4rem; }
.sheet h3{ font-family:var(--sans); font-size:.76rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:.6rem; }
.sheet .checks{ list-style:none; display:grid; grid-template-columns:1fr; gap:.5rem; }
.sheet .checks li{ display:flex; gap:.6rem; align-items:flex-start; font-size:.97rem; }
.sheet .checks svg{ color:var(--gold-3); margin-top:.15rem; }
.sheet__veh{ display:flex; gap:.6rem; align-items:flex-start; margin-top:1.2rem; padding-top:1rem; border-top:1px solid var(--line); font-size:.95rem; }
.sheet__veh b{ color:var(--ink); }
.sheet__dest{ display:flex; flex-wrap:wrap; gap:8px; margin-top:1rem; }
.sheet__dest[hidden]{ display:none; }
.sheet__dest a{ padding:.38rem .85rem; border:1px solid var(--line); border-radius:999px; font-size:.88rem; background:var(--card); transition:border-color .2s; }
.sheet__dest a:hover{ border-color:var(--ink); }
.sheet__cta{ display:flex; flex-wrap:wrap; gap:10px; margin-top:1.5rem; }
.sheet__note{ font-size:.85rem; color:var(--muted); margin-top:.8rem; }
@media (max-width:760px){
  dialog.sheet{ width:100%; max-height:92dvh; margin:auto 0 0; border-radius:18px 18px 0 0; }
  dialog.sheet[open]{ animation:sheetUp .3s cubic-bezier(.2, .8, .2, 1); }
  .sheet__in{ display:block; max-height:92dvh; overflow-y:auto; overscroll-behavior:contain; }
  .sheet__img{ height:180px; }
  .sheet__b{ max-height:none; overflow:visible; padding:22px var(--pad) calc(22px + env(safe-area-inset-bottom)); }
  .sheet__cta .btn{ flex:1 1 100%; }
}
@keyframes sheetUp{ from{ transform:translateY(100%); } to{ transform:none; } }
@media (prefers-reduced-motion: reduce){ dialog.sheet[open]{ animation:none; } }

/* route preview (route.js) */
.book__route{ display:inline-flex; align-items:center; gap:.45rem; margin-top:12px; font-size:.92rem; font-weight:600; color:var(--ink); border-bottom:1px solid var(--gold-2); padding-bottom:1px; }
.book__route[hidden]{ display:none; }
.book__route svg, .field__route svg{ width:17px; height:17px; color:var(--gold-3); }
.book__route:hover, .field__route:hover{ color:var(--gold-3); }
.field__route{ display:inline-flex; align-items:center; gap:.4rem; align-self:flex-start; margin-top:.45rem; font-size:.88rem; font-weight:600; color:var(--ink); }
dialog.rt{ padding:0; border:0; border-radius:14px; width:min(980px, calc(100vw - 48px)); max-width:none; max-height:min(92vh, 860px); margin:auto; background:var(--cream); color:var(--text); overflow:hidden; box-shadow:0 30px 80px -20px rgba(0,0,0,.55); }
dialog.rt::backdrop{ background:rgba(10,11,13,.62); }
dialog.rt[open]{ animation:sheetIn .25s ease; }
.rt__in{ display:flex; flex-direction:column; max-height:min(92vh, 860px); overflow-y:auto; overscroll-behavior:contain; }
.rt__hd{ display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; padding:22px 24px 12px; }
.rt__hd h2{ font-size:clamp(1.6rem, 2.6vw, 2.1rem); }
.rt__hd .eyebrow{ margin-bottom:.35rem; }
.sheet__x.rt__x{ position:static; flex:0 0 auto; }
.rt__form{ display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto; gap:10px; align-items:end; padding:0 24px 16px; }
.rt__f{ position:relative; display:flex; flex-direction:column; gap:.3rem; min-width:0; }
.rt__f label{ font-size:.74rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.rt__f input{ height:48px; width:100%; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--card); padding:0 .9rem; font-size:1rem; }
.rt__f input:focus{ outline:2px solid var(--gold-2); outline-offset:0; border-color:var(--gold-2); }
.rt__f ul{ position:absolute; z-index:1000; top:100%; left:0; right:0; margin-top:4px; list-style:none; background:var(--card); border:1px solid var(--line); border-radius:var(--r-sm); box-shadow:0 16px 34px -18px rgba(22,25,30,.45); max-height:300px; overflow-y:auto; }
.rt__f ul[hidden]{ display:none; }
.rt__f li{ padding:.55rem .85rem; cursor:pointer; display:flex; flex-direction:column; line-height:1.3; }
.rt__f li b{ font-weight:600; color:var(--ink); font-size:.95rem; }
.rt__f li small{ color:var(--muted); font-size:.82rem; }
.rt__f li[aria-selected="true"], .rt__f li[role="option"]:hover{ background:var(--cream-2); }
.rt__f li.rt__lh{ padding:.55rem .85rem .2rem; font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); cursor:default; }
.rt__swap{ width:44px; height:48px; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--card); display:grid; place-items:center; color:var(--ink); }
.rt__swap svg{ transform:rotate(90deg); }
.rt__go{ height:48px; }
.rt__map{ padding:0 24px; }
#rtMap .leaflet-tile-pane{ filter:grayscale(.6) sepia(.14) contrast(.95) brightness(1.03); }
#rtMap{ height:clamp(260px, 42vh, 420px); border-radius:var(--r); border:1px solid var(--line); background:#e9e5dc; z-index:0; }
.rt__res{ padding:14px 24px 0; min-height:1.5rem; }
.rt__stats{ display:flex; flex-wrap:wrap; gap:12px 36px; }
.rt__stats div{ display:flex; flex-direction:column; }
.rt__stats b{ font-family:var(--serif); font-size:2rem; font-weight:500; color:var(--ink); line-height:1.1; }
.rt__stats span{ font-size:.85rem; color:var(--muted); }
.rt__note{ font-size:.86rem; color:var(--muted); margin-top:.5rem; }
.rt__msg{ font-size:.95rem; }
.rt__msg--err{ color:#B3261E; }
.rt__msg--busy{ color:var(--muted); }
.rt__cta{ display:flex; flex-wrap:wrap; gap:10px; padding:16px 24px 24px; }
.rt__cta[hidden]{ display:none; }
.rt__pin{ background:none; border:0; }
.rt__pin span{ display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:var(--ink); color:#fff; font-weight:700; font-size:.85rem; border:2px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.35); }
@media (max-width:760px){
  dialog.rt{ width:100%; max-height:94dvh; margin:auto 0 0; border-radius:18px 18px 0 0; }
  dialog.rt[open]{ animation:sheetUp .3s cubic-bezier(.2, .8, .2, 1); }
  .rt__in{ max-height:94dvh; }
  .rt__hd{ padding:18px var(--pad) 10px; }
  .rt__form{ grid-template-columns:minmax(0,1fr) auto; padding:0 var(--pad) 12px; }
  .rt__f[data-field="from"]{ grid-column:1; grid-row:1; }
  .rt__f[data-field="to"]{ grid-column:1; grid-row:2; }
  .rt__swap{ grid-column:2; grid-row:1 / span 2; align-self:center; }
  .rt__swap svg{ transform:none; }
  .rt__go{ grid-column:1 / -1; }
  .rt__map{ padding:0 var(--pad); }
  #rtMap{ height:240px; }
  .rt__res{ padding:12px var(--pad) 0; }
  .rt__cta{ padding:14px var(--pad) calc(18px + env(safe-area-inset-bottom)); }
  .rt__cta .btn{ flex:1 1 100%; }
}
@media (prefers-reduced-motion: reduce){ dialog.rt[open]{ animation:none; } }

/* service and route pages (tools/pages.py) */
.dp-routes{ list-style:none; display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:10px; margin:1rem 0 1.2rem; }
.dp-routes li{ display:flex; flex-direction:column; gap:.15rem; background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:14px 16px; }
.dp-routes b{ font-family:var(--serif); font-weight:500; font-size:1.2rem; color:var(--ink); }
.dp-routes span{ font-size:.9rem; color:var(--muted); }
.dp-faq{ display:grid; grid-template-columns:minmax(0, .8fr) minmax(0, 1.4fr); gap:clamp(24px, 5vw, 64px); align-items:start; }
.dp-links{ display:flex; flex-wrap:wrap; gap:10px; margin-top:1rem; }
.dp-links a{ display:inline-flex; align-items:center; gap:.5rem; padding:.7rem 1rem; background:var(--card); border:1px solid var(--line); border-radius:var(--r-sm); font-weight:600; color:var(--ink); transition:border-color .2s; }
.dp-links a:hover{ border-color:var(--ink); }
.dp-links svg{ width:16px; height:16px; color:var(--gold-3); }
@media (max-width:980px){ .dp-faq{ grid-template-columns:1fr; } }

.sheet__more{ display:inline-flex; align-items:center; gap:.4rem; margin-top:1rem; font-weight:600; font-size:.93rem; color:var(--ink); border-bottom:1px solid var(--gold-2); }
.sheet__more[hidden]{ display:none; }
.sheet__more svg{ width:16px; height:16px; }

/* ---------- reviews (home): a guest book, and a dark card that asks for the stars ---------- */
.rv-sec{ background:var(--cream-2); }
.rv-sec [hidden]{ display:none !important; }
.rv-grid{ display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 7fr); gap:clamp(36px, 6vw, 88px); align-items:start; }
.rv-sum{ display:flex; align-items:center; gap:1rem; margin-top:1.1rem; }
.rv-sum__n{ font-family:var(--serif); font-weight:500; font-size:3.4rem; line-height:1; color:var(--ink); }
.rv-sum__r{ display:flex; flex-direction:column; gap:.3rem; font-size:.92rem; color:var(--muted); }
.rv-stars{ display:inline-flex; gap:2px; color:#D9CDB8; font-size:1rem; line-height:1; }
.rv-stars .on{ color:var(--gold-2); }
.rv-sum .rv-stars{ font-size:1.15rem; }

.rv-card{ margin-top:30px; background:var(--dark); color:var(--on-dark); border-radius:var(--r); padding:clamp(22px, 3vw, 34px); }
.rv-card__h{ display:block; font-family:var(--serif); font-weight:500; font-size:clamp(1.45rem, 2.2vw, 1.75rem); line-height:1.2; color:#fff; }
.rv-rate{ border:0; }
.rv-rate__stars{ display:inline-flex; flex-direction:row-reverse; justify-content:flex-end; gap:4px; margin:16px 0 0 -6px; }
.rv-rate__stars input{ position:absolute; opacity:0; width:1px; height:1px; }
.rv-rate__stars label{ cursor:pointer; width:52px; height:52px; display:grid; place-items:center; color:rgba(255,255,255,.3); font-size:2.6rem; line-height:1; transition:color .15s, transform .15s; }
.rv-rate__stars label::before{ content:"★"; }
.rv-rate__stars input:checked ~ label,
.rv-rate__stars label:hover, .rv-rate__stars label:hover ~ label{ color:var(--gold); }
.rv-rate__stars label:active{ transform:scale(.92); }
.rv-rate__stars input:focus-visible + label{ outline:2px solid var(--gold); outline-offset:-2px; border-radius:var(--r-sm); }
.rv-card__hint{ margin-top:8px; font-size:.92rem; color:var(--on-dark-2); }
.rv-fields{ margin-top:24px; padding-top:24px; border-top:1px solid var(--line-dark); }
.rv-card .field label{ color:var(--on-dark); }
.rv-card .field label small{ color:var(--on-dark-2); }
.rv-card .field input, .rv-card .field select, .rv-card .field textarea{ border-color:transparent; }
.rv-card .field input:focus, .rv-card .field select:focus, .rv-card .field textarea:focus{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(214,180,124,.35); }
.rv-card .field [aria-invalid="true"]{ border-color:#FF8F80; }
.rv-ok{ display:flex; gap:.65rem; align-items:flex-start; font-size:.92rem; color:var(--on-dark-2); }
.rv-ok input{ width:20px; height:20px; margin-top:.15rem; flex:0 0 auto; accent-color:var(--gold); }
.rv-ok a{ color:var(--on-dark); text-decoration:underline; }
.rv-card .note{ color:var(--on-dark-2); }
.rv-card .note.err{ color:#FFB4A9; }
.rv-thanks p{ margin-top:.5rem; color:var(--on-dark-2); }
.rv-thanks:focus{ outline:none; }

.rv-steps{ list-style:none; counter-reset:rvs; border-top:1px solid var(--line); }
.rv-steps li{ counter-increment:rvs; display:grid; grid-template-columns:3.2rem 1fr; column-gap:1rem; padding:24px 0; border-bottom:1px solid var(--line); }
.rv-steps li::before{ content:counter(rvs); grid-row:span 2; font-family:var(--serif); font-size:2.6rem; line-height:.9; color:var(--gold-3); }
.rv-steps b{ font-family:var(--serif); font-weight:500; font-size:1.4rem; color:var(--ink); line-height:1.25; }
.rv-steps span{ color:var(--muted); max-width:46ch; margin-top:.2rem; }

.rv-list{ list-style:none; }
.rv{ padding:28px 0; border-top:1px solid var(--line); }
.rv:first-child{ padding-top:4px; border-top:0; }
.rv__top{ display:flex; align-items:center; gap:.9rem; }
.rv__top time{ font-size:.85rem; color:var(--muted); }
.rv__t{ margin:.8rem 0 1rem; font-family:var(--serif); font-size:1.32rem; line-height:1.5; color:var(--ink); white-space:pre-line; overflow-wrap:anywhere; max-width:62ch; }
.rv__by{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem .8rem; font-size:.93rem; color:var(--muted); }
.rv__by b{ color:var(--ink); font-weight:600; }
.rv__src{ font-size:.8rem; color:var(--gold-3); border:1px solid #D9C39B; border-radius:99px; padding:0 .55rem; }
.rv-more{ margin-top:8px; }

@media (max-width:980px){ .rv-grid{ grid-template-columns:1fr; } .rv-card{ max-width:640px; } }
@media (max-width:420px){ .rv-rate__stars label{ width:48px; height:48px; font-size:2.35rem; } .rv__t{ font-size:1.2rem; } }
