/* offravia — river-light palette */
:root{
  --paper:#F6F2E9; --sheet:#FFFFFF; --sand:#EEE7D8; --mist:#E6EDEA;
  --ink:#1C2622; --muted:#47524D; --line:#D8CFBD; --line2:#C3B89F;
  --cypress:#2D4A3A; --cypress-d:#223A2D; --slate:#36505E; --brass:#7A5B1F;
  --t-cnl:#2D4A3A; --t-swl:#33507A; --t-gulf:#8A3B2A; --t-inland:#5A4778;
  --serif:"Libre Caslon Text",Georgia,"Times New Roman",serif;
  --sans:"Instrument Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --gut:16px; --max:1180px; --r:6px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:16px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17.5px;line-height:1.65;overflow-x:hidden}
img,svg{max-width:100%}
a{color:var(--slate);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--cypress)}
p a,li a,td a,address a{overflow-wrap:anywhere}
:focus-visible{outline:3px solid var(--brass);outline-offset:2px;border-radius:2px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:700;line-height:1.2;color:var(--ink);margin:0 0 .5em}
p{margin:0 0 1em}
.ov-vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ov-skip{position:absolute;left:12px;top:-60px;background:var(--cypress);color:#fff;padding:12px 16px;border-radius:var(--r);z-index:50;font-weight:600}
.ov-skip:focus{top:12px;color:#fff}
.ov-shell{width:100%;max-width:var(--max);margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}
main{display:block;outline:none}

/* buttons */
.ov-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 20px;border-radius:var(--r);font:600 16px/1.2 var(--sans);text-decoration:none;cursor:pointer;border:2px solid var(--cypress);white-space:nowrap}
.ov-btn--fill{background:var(--cypress);color:#fff}
.ov-btn--fill:hover{background:var(--cypress-d);border-color:var(--cypress-d);color:#fff}
.ov-btn--line{background:transparent;color:var(--cypress)}
.ov-btn--line:hover{background:var(--mist);color:var(--cypress-d)}
.ov-textbtn{background:none;border:0;padding:10px 0;min-height:44px;font:inherit;color:var(--slate);text-decoration:underline;text-underline-offset:3px;cursor:pointer}

/* header */
.ov-top{background:var(--paper);border-bottom:1px solid var(--line)}
.ov-top::after{content:"";display:block;height:0;border-bottom:3px dotted var(--line2)}
.ov-top__in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;padding-bottom:12px;flex-wrap:wrap}
.ov-logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);min-height:44px}
.ov-logo__w{font:700 24px/1 var(--serif);letter-spacing:.01em}
.ov-logo__s{font:500 13px/1.2 var(--sans);color:var(--muted);border-left:1px solid var(--line2);padding-left:10px;letter-spacing:.04em;text-transform:uppercase}
.ov-menu ul{list-style:none;margin:0;padding:0;display:flex;gap:4px;flex-wrap:wrap}
.ov-menu a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;color:var(--ink);text-decoration:none;font-weight:500;border-bottom:2px solid transparent}
.ov-menu a:hover,.ov-menu a[aria-current]{border-bottom-color:var(--brass);color:var(--cypress)}

/* kicker / disclosure */
.ov-kicker{font:600 13px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brass);margin:0 0 12px}
.ov-disc{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;margin:0 0 22px;padding:12px 16px;background:var(--sheet);border:1px solid var(--line);border-left:4px solid var(--slate);border-radius:0 var(--r) var(--r) 0;font-size:15px;line-height:1.55;color:var(--ink);max-width:68ch}
.ov-disc__k{font:700 12.5px/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--slate)}
.ov-disc__t{flex:1 1 30ch;min-width:0}

/* hero */
.ov-hero{padding:44px 0 36px;border-bottom:1px solid var(--line)}
.ov-hero__in{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:48px;align-items:center}
.ov-hero h1{font-size:clamp(40px,6vw,68px);letter-spacing:-.01em;margin-bottom:18px}
.ov-hero h1 em{font-style:italic;font-weight:400;color:var(--cypress)}
.ov-hero__lede{font-size:19px;max-width:60ch;color:var(--ink)}
.ov-hero__links{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.ov-hero__card{background:var(--sheet);border:1px solid var(--line);border-radius:var(--r);padding:24px;box-shadow:6px 6px 0 var(--sand)}
.ov-badge{display:block;width:168px;height:auto;margin:0 0 12px}
.ov-hero__upd{font-size:15px;color:var(--muted);margin:0 0 14px}
.ov-hero__reg{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.ov-hero__reg li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:15.5px}
.ov-hero__reg b{font-family:var(--serif);color:var(--cypress)}

/* blocks */
.ov-block{padding-top:52px;padding-bottom:12px}
.ov-h2{font-size:clamp(28px,3.4vw,38px);padding-bottom:12px;border-bottom:3px double var(--line2);margin-bottom:22px}
.ov-sublede{max-width:68ch;color:var(--muted)}
.ov-intro__cols,.ov-method__cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px}
.ov-intro__cols p,.ov-method__cols p{max-width:62ch}
.ov-intro__h{font:700 14px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--slate);margin-bottom:8px}
.ov-ticks{margin:0;padding:0;list-style:none}
.ov-ticks li{padding:6px 0 6px 26px;position:relative;border-bottom:1px solid var(--line)}
.ov-ticks li::before{content:"";position:absolute;left:4px;top:15px;width:9px;height:9px;border:2px solid var(--brass);border-radius:50%}
.ov-intro__own{margin-top:22px;padding:14px 18px;background:var(--mist);border-radius:var(--r);max-width:none}

/* filters */
.ov-filter{display:grid;gap:14px;margin-bottom:18px}
.ov-filter__h{font:700 13px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.ov-filter__row{display:flex;flex-wrap:wrap;gap:8px}
.ov-chip{min-height:44px;padding:8px 16px;border-radius:999px;border:1.5px solid var(--line2);background:var(--sheet);color:var(--ink);font:500 15px/1.2 var(--sans);cursor:pointer}
.ov-chip:hover{border-color:var(--cypress)}
.ov-chip[aria-pressed="true"]{background:var(--cypress);border-color:var(--cypress);color:#fff}
.ov-filter__count{font-weight:600;color:var(--cypress);margin:0}
.ov-jump ol{list-style:none;margin:0 0 28px;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.ov-jump a{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 10px;background:var(--sheet);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink);font-size:14.5px;line-height:1.25}
.ov-jump a b{font-family:var(--serif);color:var(--brass);min-width:1.4em}
.ov-jump a:hover{border-color:var(--slate)}
.ov-empty{padding:18px;background:var(--sheet);border:1px dashed var(--line2);border-radius:var(--r)}

/* entries */
.ov-entries{display:grid;gap:34px}
.ov-entry{position:relative;background:var(--sheet);border:1px solid var(--line);border-radius:var(--r);padding:34px 24px 0;--tc:var(--t-cnl)}
.ov-entry--swl{--tc:var(--t-swl)}.ov-entry--gulf{--tc:var(--t-gulf)}.ov-entry--inland{--tc:var(--t-inland)}
.ov-entry[hidden]{display:none}
.ov-entry__tag{position:absolute;top:-13px;left:18px;margin:0;padding:3px 12px;background:var(--tc);color:#fff;font:600 13px/1.5 var(--sans);letter-spacing:.04em;border-radius:3px;max-width:calc(100% - 36px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-entry--own{border:2px solid var(--brass);padding-top:0}
.ov-entry--own .ov-entry__tag{background:var(--brass)}
.ov-ribbon{margin:0 -24px 24px;padding:24px 24px 12px;background:var(--sand);border-bottom:1px solid var(--line2);font:600 15px/1.5 var(--sans);color:var(--ink)}
.ov-entry__grid{display:grid;grid-template-columns:132px minmax(0,1.55fr) minmax(0,1fr);gap:26px;align-items:start}
.ov-entry__plate{position:relative;aspect-ratio:1/1;border:1px solid var(--line2);border-radius:4px;background:var(--paper);display:grid;place-items:center}
.ov-entry__plate::before{content:"";position:absolute;inset:6px;border:1px solid var(--line)}
.ov-entry__rank{position:absolute;top:-1px;left:-1px;background:var(--ink);color:#fff;font:700 15px/1 var(--serif);padding:8px 9px;border-radius:4px 0 4px 0}
.ov-entry__mono{font:700 40px/1 var(--serif);color:var(--tc);letter-spacing:.04em}
.ov-entry__lamp{position:absolute;bottom:12px;left:50%;width:34px;height:2px;margin-left:-17px;background:var(--brass)}
.ov-entry__name{font-size:clamp(22px,2.4vw,27px);margin-bottom:4px}
.ov-entry__loc{color:var(--muted);font-size:15.5px;margin-bottom:12px}
.ov-entry__rooms{max-width:62ch}
.ov-entry__sub{font:700 13px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--slate);margin:0 0 8px}
.ov-entry__fac{margin:0 0 16px;padding:0;list-style:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 20px}
.ov-entry__fac li{position:relative;padding-left:16px;font-size:16px;line-height:1.5}
.ov-entry__fac li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;background:var(--tc);border-radius:1px}
.ov-entry__hi{margin:0 0 14px;padding:12px 16px;border:1px solid var(--line);border-top:3px solid var(--tc);background:var(--paper);font-size:16px}
.ov-entry__hi span{display:block;font:700 12.5px/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--brass);margin-bottom:2px}
.ov-entry__best{font-size:16.5px}
.ov-entry__side{border-left:1px solid var(--line);padding-left:22px}
.ov-entry__notes{margin:0 0 18px;padding:0 0 0 18px;font-size:15.5px;line-height:1.55;color:var(--ink)}
.ov-entry__notes li{margin-bottom:6px}
.ov-cta{width:100%}
.ov-entry__src{font-size:13px;color:var(--muted);margin:6px 0 0;text-align:center}
.ov-entry__more{margin:22px -24px 0;border-top:1px solid var(--line)}
.ov-entry__more summary{min-height:48px;display:flex;align-items:center;padding:0 24px;cursor:pointer;font-weight:600;color:var(--cypress);list-style:none}
.ov-entry__more summary::-webkit-details-marker{display:none}
.ov-entry__more summary::after{content:"+";margin-left:auto;font:400 22px/1 var(--serif)}
.ov-entry__more[open] summary::after{content:"\2013"}
.ov-entry__drawer{padding:0 24px 20px}
.ov-entry__drawer p{max-width:68ch}
.ov-entry__trips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.ov-entry__trips li{font-size:13.5px;padding:3px 10px;border:1px solid var(--line2);border-radius:999px;color:var(--muted)}

/* tables */
.ov-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--sheet)}
.ov-table{width:100%;border-collapse:collapse;font-size:15.5px;line-height:1.45}
.ov-table caption{text-align:left;padding:14px 16px;font-weight:600;color:var(--muted);caption-side:top;border-bottom:1px solid var(--line)}
.ov-table th,.ov-table td{padding:12px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.ov-table thead th{font:700 13px/1.3 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--slate);background:var(--paper)}
.ov-table tbody th{font-weight:600}
.ov-table tbody tr:nth-child(even){background:#FBF9F4}
.ov-table tbody tr:last-child>*{border-bottom:0}

/* faq */
.ov-faq__list{display:grid;gap:10px;max-width:820px}
.ov-q{background:var(--sheet);border:1px solid var(--line);border-radius:var(--r)}
.ov-q summary{cursor:pointer;min-height:48px;padding:12px 48px 12px 18px;font:700 18px/1.4 var(--serif);position:relative;list-style:none}
.ov-q summary::-webkit-details-marker{display:none}
.ov-q summary::after{content:"+";position:absolute;right:18px;top:10px;font:400 24px/1 var(--serif);color:var(--brass)}
.ov-q[open] summary::after{content:"\2013"}
.ov-q p{padding:0 18px 16px;margin:0;max-width:68ch}
.ov-method{padding-bottom:56px}

/* inner pages */
.ov-paper{padding-top:44px;padding-bottom:64px}
.ov-paper__head{max-width:820px;padding-bottom:26px;border-bottom:3px double var(--line2);margin-bottom:34px}
.ov-paper__head h1{font-size:clamp(34px,5vw,52px)}
.ov-paper__lead{font-size:19px;max-width:60ch}
.ov-paper__rev{font-size:14px;color:var(--muted);margin:0}
.ov-paper__grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:48px;align-items:start}
.ov-index{grid-column:2;grid-row:1;position:sticky;top:16px;background:var(--sheet);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.ov-index__h{font:700 12.5px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--brass);margin:0 0 8px}
.ov-index ol{list-style:none;margin:0;padding:0}
.ov-index a{display:flex;gap:10px;align-items:center;min-height:44px;padding:4px 0;text-decoration:none;color:var(--ink);font-size:15px;line-height:1.3;border-bottom:1px solid var(--line)}
.ov-index li:last-child a{border-bottom:0}
.ov-index a span{font:700 13px/1 var(--serif);color:var(--slate)}
.ov-paper__text{grid-column:1;grid-row:1;min-width:0}
.ov-part{display:grid;grid-template-columns:52px minmax(0,1fr);gap:16px;padding:0 0 26px;margin-bottom:26px;border-bottom:1px solid var(--line)}
.ov-part:last-child{border-bottom:0}
.ov-part__n{font:400 26px/1.1 var(--serif);color:var(--brass);margin:0;padding-top:2px}
.ov-part__body{max-width:68ch;min-width:0}
.ov-part h2{font-size:26px}
.ov-part ul{padding-left:20px}
.ov-part li{margin-bottom:6px}
.ov-addr{list-style:none;padding:0!important}

/* form */
.ov-form{background:var(--sheet);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.ov-form__two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.ov-field label{display:block;font-weight:600;margin-bottom:4px;font-size:15.5px}
.ov-field input,.ov-field select,.ov-field textarea{width:100%;min-height:46px;padding:10px 12px;border:1.5px solid var(--line2);border-radius:4px;background:#fff;font:16px/1.4 var(--sans);color:var(--ink)}
.ov-field input:focus,.ov-field select:focus,.ov-field textarea:focus{border-color:var(--cypress)}
.ov-check{display:flex;gap:10px;align-items:flex-start;font-size:15.5px}
.ov-check input{width:22px;height:22px;margin-top:2px;flex:0 0 auto;accent-color:var(--cypress)}
.ov-form__err{color:#8A2A1C;font-weight:600}
.ov-form__ok{color:var(--cypress);font-weight:600}
.ov-form__hint{font-size:14px;color:var(--muted);margin:12px 0 0}

/* footer (light) */
.ov-base{background:var(--sand);border-top:1px solid var(--line2);padding:40px 0 24px;font-size:15.5px;line-height:1.6}
.ov-base__cols{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.8fr) minmax(0,1.3fr);gap:36px}
.ov-base__h{font:700 13px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin:0 0 10px}
.ov-base ul{list-style:none;margin:0;padding:0}
.ov-base__links a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink)}
.ov-base__links li{line-height:1.2}
.ov-base__op{margin:12px 0}
.ov-base__note{color:var(--muted);font-size:14.5px}
.ov-base__aff{padding:10px 14px;background:var(--paper);border-left:3px solid var(--brass);font-size:14.5px}
.ov-base__end{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;margin:28px 0 0;padding-top:16px;border-top:1px solid var(--line2);font-size:14px;color:var(--muted)}
.ov-lost{min-height:50vh}

/* cookie bar */
.ov-ck{position:fixed;left:12px;right:12px;bottom:12px;z-index:40;max-width:760px;margin:0 auto;display:flex;align-items:center;gap:12px 18px;padding:12px 14px;background:var(--sheet);border:1px solid var(--line2);border-radius:var(--r);box-shadow:0 4px 18px rgba(28,38,34,.16)}
.ov-ck[hidden]{display:none}
.ov-ck__t{margin:0;font-size:14.5px;line-height:1.45;flex:1 1 auto;min-width:0}
.ov-ck__b{display:flex;gap:8px;flex:0 0 auto}
.ov-ck .ov-btn{min-height:44px;padding:8px 12px;font-size:14.5px}
.ov-pref{border:1px solid var(--line2);border-radius:var(--r);padding:0;max-width:520px;width:calc(100% - 32px);background:var(--sheet);color:var(--ink)}
.ov-pref::backdrop{background:rgba(28,38,34,.35)}
.ov-pref__in{padding:22px}
.ov-pref h2{font-size:24px}
.ov-sw{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}
.ov-sw small{display:block;font-size:14.5px;color:var(--muted);line-height:1.5;margin-top:2px}
.ov-sw input{width:24px;height:24px;flex:0 0 auto;accent-color:var(--cypress);margin-top:4px}
.ov-gpc{color:var(--t-gulf)!important;font-weight:600}
.ov-pref__b{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}

/* responsive */
@media (max-width:1024px){
  .ov-entry__grid{grid-template-columns:110px minmax(0,1fr)}
  .ov-entry__side{grid-column:1 / -1;border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:16px}
  .ov-cta{width:auto}
  .ov-entry__src{text-align:left}
  .ov-jump ol{grid-template-columns:repeat(5,minmax(0,1fr))}
  .ov-paper__grid{grid-template-columns:minmax(0,1fr) 220px;gap:32px}
}
@media (max-width:860px){
  .ov-hero__in{grid-template-columns:minmax(0,1fr);gap:28px}
  .ov-hero__card{max-width:420px}
  .ov-intro__cols,.ov-method__cols,.ov-base__cols{grid-template-columns:minmax(0,1fr);gap:22px}
  .ov-jump ol{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ov-paper__grid{grid-template-columns:minmax(0,1fr)}
  .ov-index{grid-column:1;grid-row:1;position:static}
  .ov-paper__text{grid-row:2}
  .ov-logo__s{display:none}
}
@media (max-width:640px){
  body{font-size:17px}
  .ov-hero{padding:30px 0 28px}
  .ov-hero__card{padding:18px}
  .ov-badge{width:150px}
  .ov-top__in{padding-top:10px;padding-bottom:8px}
  .ov-menu{width:100%}
  .ov-menu ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}
  .ov-menu a{padding:0 6px;font-size:15px;justify-content:center}
  .ov-jump ol{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ov-entry{padding:30px 16px 0}
  .ov-entry--own{padding-top:0}
  .ov-ribbon{margin:0 -16px 18px;padding:24px 16px 12px;font-size:14.5px}
  .ov-entry__more{margin-left:-16px;margin-right:-16px}
  .ov-entry__more summary{padding:0 16px}
  .ov-entry__drawer{padding:0 16px 18px}
  .ov-entry__grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .ov-entry__plate{width:96px}
  .ov-entry__mono{font-size:30px}
  .ov-entry__fac{grid-template-columns:minmax(0,1fr)}
  .ov-cta{width:100%}
  .ov-form__two{grid-template-columns:minmax(0,1fr)}
  .ov-part{grid-template-columns:minmax(0,1fr);gap:4px}
  .ov-part__n{font-size:20px}
  .ov-tablewrap{overflow:visible;border:0;background:transparent}
  .ov-table,.ov-table tbody,.ov-table tr,.ov-table th,.ov-table td{display:block;width:100%}
  .ov-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .ov-table caption{display:block;padding:0 0 10px;border:0}
  .ov-table tr{background:var(--sheet)!important;border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px;padding:6px 0}
  .ov-table th,.ov-table td{border:0;padding:6px 14px;display:grid;grid-template-columns:minmax(0,40%) minmax(0,1fr);gap:10px}
  .ov-table th::before,.ov-table td::before{content:attr(data-label);font:700 12.5px/1.6 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--slate)}
  .ov-ck{left:8px;right:8px;bottom:8px;flex-direction:column;align-items:stretch;gap:8px;padding:10px}
  .ov-ck__t{font-size:13.5px}
  .ov-ck__b{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .ov-ck .ov-btn{padding:6px 4px;font-size:13px;white-space:normal;text-align:center;line-height:1.15}
}
@media (max-width:360px){
  .ov-hero h1{font-size:36px}
  .ov-menu a{font-size:14px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
.ov-disc__sig{color:var(--muted);font-style:italic;white-space:nowrap}
