/* Montserrat Alternates */
@font-face {
  font-family: 'Montserrat Alternates';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/montserrat-alternates-600-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Montserrat Alternates */
@font-face {
  font-family: 'Montserrat Alternates';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/montserrat-alternates-600-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Montserrat Alternates */
@font-face {
  font-family: 'Montserrat Alternates';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/montserrat-alternates-700-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Montserrat Alternates */
@font-face {
  font-family: 'Montserrat Alternates';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/montserrat-alternates-700-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Nunito Sans */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/nunito-sans-400-700-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Nunito Sans */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/nunito-sans-400-700-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* visithurghada.ru — «риф и пустыня».
   Каркас: слева закреплённая «береговая линия» (бухты с севера на юг) и глубиномер прокрутки; на телефоне нижняя панель вкладок.
   Страница: шапка-паспорт (h1, характеристики со шкалами, широкое фото), дальше пронумерованные главы с заметками на полях. */
:root{
  --navy:#0f2437;--navy-2:#16334d;--deep:#0b4f6c;--reef:#13a8a6;--reef-d:#0c7f7d;--reef-2:#cdeeed;--reef-3:#eaf8f7;
  --ochre:#ec7a2a;--ochre-d:#c95e12;--ochre-2:#fde6d3;--sun:#f6b73c;--sun-2:#fff0cc;--rock:#8c5b62;--rock-2:#f3e4e2;
  --sand:#f7f0e4;--sand-2:#ecdfc8;--paper:#fffcf7;
  --ink:#14263a;--ink-2:#405063;--muted:#6a7584;--line:#e2d4ba;--ok:#1f7a55;--ok-bg:#dcf1e7;--warn-bg:#fff2d2;
  --rail:272px;--gut:clamp(18px,4vw,56px);
  --sh-1:0 6px 22px rgba(15,36,55,.08);--sh-2:0 20px 50px rgba(15,36,55,.2);
  --f-head:"Montserrat Alternates","Trebuchet MS",sans-serif;--f-body:"Nunito Sans",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.is-locked{overflow:hidden}
body{margin:0;background:var(--sand);color:var(--ink);font:400 17px/1.65 var(--f-body);overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:var(--deep);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--ochre-d)}
h1,h2,h3{font-family:var(--f-head);font-weight:700;color:var(--navy);line-height:1.18;margin:0 0 .5em;letter-spacing:-.015em}
h1{font-size:clamp(2.1rem,4.8vw,3.6rem)}
h2{font-size:clamp(1.45rem,2.8vw,2.1rem)}
h3{font-size:1.22rem;font-weight:600}
p{margin:0 0 1em}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;z-index:99;background:#fff;padding:8px 12px;border-radius:8px}

/* ── buttons: squared, with a pressed edge ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:48px;padding:.8em 1.4em;border-radius:6px;border:2px solid transparent;
  font:800 .98rem/1.2 var(--f-body);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:transform .15s,background .15s}
.btn--primary{background:var(--ochre);color:#fff;box-shadow:0 4px 0 var(--ochre-d)}
.btn--primary:hover{background:var(--ochre-d);color:#fff;transform:translateY(-1px)}
.btn--sea{background:var(--reef-d);color:#fff;box-shadow:0 4px 0 var(--deep)}
.btn--sea:hover{background:var(--deep);color:#fff}
.btn--ghost{border-color:currentColor;color:var(--navy);background:transparent}
.btn--ghost:hover{background:rgba(15,36,55,.06);color:var(--navy)}
.btn--light{background:#fff;color:var(--navy)}
.btn--lg{min-height:56px;padding:.95em 1.6em;font-size:1.04rem}
.btn--block{width:100%}
.btn__ext{font-size:.9em;opacity:.8}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.3em}

/* ── rail: fixed left navigation (desktop) ── */
.rail{position:fixed;left:0;top:0;bottom:0;width:var(--rail);z-index:40;background:var(--navy);color:#cfe0eb;display:flex;flex-direction:column;gap:18px;
  padding:22px 26px 22px 22px;overflow-y:auto;scrollbar-width:thin}
.rail__logo{color:#fff;display:flex}
.rail__logo .logo{height:40px;width:auto}
.rail__h{font:800 .7rem/1 var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--sun);margin:0 0 12px}
.rail__coast ol,.sheet__coast{list-style:none;margin:0;padding:0 0 0 18px;position:relative}
.rail__coast ol::before,.sheet__coast::before{content:"";position:absolute;left:4px;top:8px;bottom:8px;width:3px;border-radius:2px;background:linear-gradient(180deg,var(--reef),var(--deep))}
.rail__coast li,.sheet__coast li{position:relative}
.rail__coast li::before,.sheet__coast li::before{content:"";position:absolute;left:-19px;top:9px;width:11px;height:11px;border-radius:50%;background:var(--navy);border:2.5px solid var(--reef)}
.rail__coast a,.sheet__coast a{display:block;padding:4px 8px;margin:0 0 2px;border-radius:6px;text-decoration:none;color:#e6f0f6;line-height:1.25}
.rail__coast a b,.sheet__coast a b{display:block;font:700 .98rem/1.3 var(--f-body)}
.rail__coast a span,.sheet__coast a span{display:block;font-size:.76rem;color:#8fa9bd}
.rail__coast a:hover,.rail__coast a[aria-current]{background:rgba(19,168,166,.16);color:#fff}
.rail__coast li:has(a[aria-current])::before{background:var(--ochre);border-color:var(--ochre)}
.rail__more{display:grid;gap:1px;border-top:1px solid rgba(255,255,255,.1);padding-top:14px}
.rail__more a{color:#cfe0eb;text-decoration:none;font-weight:700;font-size:.95rem;padding:5px 8px;border-radius:6px}
.rail__more a:hover,.rail__more a[aria-current]{background:rgba(255,255,255,.08);color:#fff}
.rail__cta{margin-top:auto;box-shadow:0 4px 0 #8f420b}
.depth{position:absolute;right:0;top:0;bottom:0;width:6px;background:rgba(255,255,255,.06)}
.depth__fill{position:absolute;inset:0;transform-origin:top;transform:scaleY(0);background:linear-gradient(180deg,#7fe3dc 0%,var(--reef) 35%,var(--deep) 75%,#06283c 100%)}
.depth__m{position:fixed;left:calc(var(--rail) + 8px);margin-top:-10px;font:800 .7rem/1 var(--f-body);color:var(--deep);background:var(--reef-3);border-radius:4px;padding:4px 6px;white-space:nowrap;box-shadow:0 0 0 1px var(--reef-2)}
.mbar{display:none}
.main{margin-left:var(--rail);min-width:0;counter-reset:ch}

/* ── mobile: top bar + bottom tab bar + menu sheet ── */
.tabbar,.sheet{display:none}
@media (max-width:1023px){
  .rail{display:none}
  .main{margin-left:0}
  .mbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--navy);color:#fff}
  .mbar__logo{display:flex;color:#fff}.mbar__logo .logo{height:34px;width:auto}
  .mbar__link{color:var(--sun);font-weight:800;font-size:.9rem;text-decoration:none;white-space:nowrap}
  .tabbar{display:grid;grid-template-columns:1fr 1fr 1.25fr 1fr 1fr;align-items:stretch;position:fixed;left:0;right:0;bottom:0;z-index:45;background:var(--paper);
    box-shadow:0 -1px 0 var(--line),0 -8px 24px rgba(15,36,55,.1);padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
  .tabbar>a,.tabbar>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;font:800 .7rem/1.1 var(--f-body);color:var(--ink-2);
    text-decoration:none;background:none;border:0;padding:0;cursor:pointer}
  .tabbar svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .tabbar>a[aria-current]{color:var(--reef-d)}
  .tabbar .tabbar__cta{background:var(--ochre);color:#fff;border-radius:8px;margin:0 4px;font-size:.78rem;text-align:center;padding:0 6px;box-shadow:0 3px 0 var(--ochre-d)}
  .tabbar:not(:has(.tabbar__cta)){grid-template-columns:repeat(4,1fr)}
  body{padding-bottom:76px}
  .sheet:not([hidden]){display:block;position:fixed;inset:0;z-index:60;background:rgba(15,36,55,.55)}
  .sheet__panel{position:absolute;left:0;right:0;bottom:0;max-height:88vh;overflow:auto;background:var(--navy);color:#cfe0eb;border-radius:16px 16px 0 0;padding:22px 20px calc(24px + env(safe-area-inset-bottom))}
  .sheet__close{position:absolute;right:12px;top:10px;width:40px;height:40px;border:0;background:rgba(255,255,255,.1);color:#fff;font-size:1.6rem;border-radius:8px;cursor:pointer}
  .sheet__coast{margin-bottom:16px}
  .sheet__more{display:grid;grid-template-columns:1fr 1fr;gap:4px;border-top:1px solid rgba(255,255,255,.12);padding-top:12px}
  .sheet__more a{color:#fff;text-decoration:none;font-weight:700;padding:8px 6px}
}

/* ── page head: datasheet ── */
.dhead{padding:clamp(26px,4vw,52px) var(--gut) 0;max-width:1180px}
.dhead__text{max-width:800px}
.dhead__over{font:800 .78rem/1.3 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--reef-d);margin:0 0 10px}
.dhead__lead{font-size:1.14rem;color:var(--ink-2);max-width:40em}
.spec{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin:26px 0 0;border-top:3px solid var(--navy);border-bottom:1px solid var(--line)}
.spec__row{padding:12px 16px 14px 0;border-right:1px dashed var(--line)}
.spec__row+.spec__row{padding-left:16px}
.spec__row:last-child{border-right:0}
.spec dt{font:800 .7rem/1.2 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.spec dd{margin:0;font-weight:700;color:var(--navy);line-height:1.35}
.meter{display:inline-flex;gap:3px;vertical-align:middle;margin-right:8px;transform:translateY(-1px)}
.meter i{width:13px;height:8px;background:var(--sand-2);transform:skewX(-20deg)}
.meter[data-v="1"] i:nth-child(-n+1),.meter[data-v="2"] i:nth-child(-n+2),.meter[data-v="3"] i:nth-child(-n+3){background:var(--reef-d)}
.dhead__photo{position:relative;margin:26px 0 0;aspect-ratio:21/8;overflow:hidden;background:var(--deep);clip-path:polygon(0 0,100% 0,100% calc(100% - 40px),calc(100% - 40px) 100%,0 100%)}
.dhead__photo img{width:100%;height:100%;object-fit:cover}
.dhead__photo figcaption{position:absolute;left:0;bottom:0;background:var(--navy);color:#cfe0eb;font-size:.8rem;padding:6px 12px}
@media (max-width:700px){.dhead__photo{aspect-ratio:16/10;margin-left:calc(-1 * var(--gut));margin-right:calc(-1 * var(--gut));clip-path:none}.spec{grid-template-columns:1fr 1fr}.spec__row{padding-left:0!important;border-right:0;border-bottom:1px dashed var(--line);padding-right:10px}}

/* crumbs */
.crumbs ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0 0 14px;padding:0;font-size:.86rem}
.crumbs li:not(:last-child)::after{content:"/";margin-left:6px;color:var(--muted)}
.crumbs a{color:var(--ink-2)}
.crumbs span{color:var(--navy);font-weight:700}

/* ── chapters: number | text | margin notes ── */
.ch{display:grid;grid-template-columns:56px minmax(0,1fr) 270px;gap:0 clamp(20px,3vw,40px);padding:clamp(40px,6vw,72px) var(--gut);max-width:1180px;counter-increment:ch;align-items:start}
.ch::before{content:counter(ch,decimal-leading-zero);position:sticky;top:20px;font:700 2.1rem/1 var(--f-head);color:transparent;-webkit-text-stroke:1.5px var(--reef);padding-top:4px}
.ch__body{min-width:0}
.ch:not(:has(>.ch__side)) .ch__body{grid-column:2 / 4}
.ch__side{display:grid;gap:14px;font-size:.95rem}
.ch--plain{counter-increment:none}.ch--plain::before{content:""}
.ch--tint{background:var(--paper);max-width:none;padding-left:max(var(--gut),calc((100% - 1180px)/2 + var(--gut)))}
.ch--night{background:var(--navy);color:#cfe0eb;max-width:none}
.ch--night h2,.ch--night h3{color:#fff}.ch--night a{color:var(--sun)}.ch--night::before{-webkit-text-stroke-color:var(--sun)}
.ch--night .kicker{color:var(--sun)}
@media (max-width:1279px){.ch{grid-template-columns:44px minmax(0,1fr)}.ch::before{font-size:1.6rem}.ch__side{grid-column:2;margin-top:18px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.ch:not(:has(>.ch__side)) .ch__body{grid-column:2}}
@media (max-width:640px){.ch{grid-template-columns:minmax(0,1fr)}.ch::before{position:static;font-size:1.3rem;margin-bottom:10px}.ch__side,.ch:not(:has(>.ch__side)) .ch__body{grid-column:1}}
/* full-width blocks between chapters (widgets, hotel lists, selector) */
.blk{padding:clamp(34px,5vw,60px) var(--gut);max-width:1180px}
.blk--tint{background:var(--paper);max-width:none}
.kicker{display:inline-flex;align-items:center;gap:10px;font:800 .74rem/1 var(--f-body);text-transform:uppercase;letter-spacing:.16em;color:var(--reef-d);margin-bottom:12px}
.kicker::before{content:"";width:30px;height:8px;background:linear-gradient(90deg,var(--sand-2) 0 30%,var(--reef) 30% 62%,var(--deep) 62%);clip-path:polygon(0 100%,30% 100%,45% 0,62% 0,100% 100%)}
.kicker+h2{margin-top:.1em}
.head{max-width:760px;margin-bottom:24px}
.head p{color:var(--ink-2);font-size:1.06rem}

/* prose */
.prose{max-width:740px}
.prose h2{margin-top:1.5em}.prose h3{margin-top:1.3em}
.prose>:first-child{margin-top:0}
.prose ul,.prose ol{padding-left:1.25em;margin:0 0 1.1em}
.prose li{margin:.3em 0}
.prose li::marker{color:var(--reef-d)}
table{width:100%;border-collapse:collapse;font-size:.95rem;background:var(--paper)}
th,td{padding:.65em .85em;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{font:800 .78rem/1.3 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--navy);border-bottom:3px solid var(--navy);background:transparent}
tbody tr:hover td{background:var(--reef-3)}
.table-scroll{overflow-x:auto;margin:1em 0 1.4em;box-shadow:inset 0 -1px 0 var(--line)}
.table-scroll table{min-width:560px}
.cmp td:first-child{font-weight:800;color:var(--navy);white-space:nowrap}

/* buybox: ticket stub in the margin */
.buybox{background:var(--navy);color:#cfe0eb;padding:20px 20px 22px;border-radius:6px;position:relative;box-shadow:var(--sh-1)}
.buybox::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;border-radius:6px 6px 0 0;background:linear-gradient(90deg,var(--sand-2) 0 22%,var(--reef) 22% 60%,var(--ochre) 60%)}
.buybox h3{color:#fff;margin:4px 0 .35em;font-size:1.12rem}
.buybox p{color:#b3c7d6;font-size:.93rem}
.buybox__price{font:700 1.35rem/1.2 var(--f-head);color:var(--sun)!important;margin:.2em 0 .6em;padding-top:10px;border-top:1px dashed rgba(255,255,255,.2)}
.buybox small{display:block;margin-top:10px;color:#93acbf;font-size:.82rem}

/* facts: ruled spec list */
.facts{margin:0 0 1.2em;display:grid}
.facts__row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dotted var(--line)}
.facts dt{color:var(--muted);font-size:.9rem}
.facts dd{margin:0;font-weight:700;color:var(--navy);text-align:right}
.ch--night .facts dd{color:#fff}.ch--night .facts__row{border-color:rgba(255,255,255,.18)}

/* steps: timeline */
.steps{list-style:none;margin:0 0 1.4em;padding:0 0 0 30px;position:relative}
.steps::before{content:"";position:absolute;left:11px;top:8px;bottom:8px;border-left:2px dashed var(--reef)}
.steps__item{position:relative;padding:0 0 18px}
.steps__num{position:absolute;left:-30px;top:2px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:800 .78rem/1 var(--f-body);color:#fff;background:var(--reef-d)}
.steps__item h3{margin:0 0 .2em;font-size:1.08rem}
.steps__item p{margin:0;color:var(--ink-2)}

/* note */
.note{padding:14px 18px;margin:1.2em 0;background:var(--reef-3);border-left:4px solid var(--reef);border-radius:0 6px 6px 0}
.note--warn{background:var(--warn-bg);border-left-color:var(--sun)}
.note--ok{background:var(--ok-bg);border-left-color:var(--ok)}
.note__title{font:800 .98rem/1.3 var(--f-body);color:var(--navy);margin-bottom:6px}
.note p:last-child{margin:0}

.fig{margin:1.4em 0}
.fig img{width:100%;border-radius:4px}
.fig figcaption{font-size:.86rem;color:var(--muted);margin-top:6px;padding-left:10px;border-left:3px solid var(--reef)}

/* ticket macro */
.tickets{display:grid;gap:14px}
.ticket{display:grid;grid-template-columns:1fr 240px;background:var(--paper);border:1px solid var(--line);border-radius:6px}
.ticket--featured{border:2px solid var(--reef)}
.ticket__main{padding:20px 22px}
.ticket__tag{display:inline-block;background:var(--sun-2);color:var(--navy);font-weight:800;font-size:.76rem;padding:.3em .7em;border-radius:4px;margin-bottom:8px}
.ticket__title{margin:.1em 0 .4em}
.ticket__text{color:var(--ink-2)}
.ticket__list{margin:0;padding-left:1.1em;color:var(--ink-2);font-size:.95rem}
.ticket__stub{padding:20px;display:flex;flex-direction:column;justify-content:center;gap:8px;border-left:2px dashed var(--line)}
.ticket__price{font:700 1.4rem/1.2 var(--f-head);color:var(--navy);margin:0}
.ticket__note{font-size:.86rem;color:var(--muted);margin:0 0 6px}
@media (max-width:760px){.ticket{grid-template-columns:1fr}.ticket__stub{border-left:0;border-top:2px dashed var(--line)}}

/* sight: hotels and places — photo flush left, data right */
.sight{display:grid;grid-template-columns:280px minmax(0,1fr);grid-template-areas:"img h" "img tags" "img body" "img tip" "img buy";align-content:start;column-gap:24px;
  background:var(--paper);border:1px solid var(--line);border-radius:6px;overflow:hidden;margin:1.3em 0;scroll-margin-top:24px}
.sight[hidden]{display:none}
.sight>h3{grid-area:h;margin:20px 20px 6px 0;font-size:1.3rem}
.sight>.tags{grid-area:tags;margin:0 20px 10px 0}
.sight__grid{display:contents}
.sight__img{grid-area:img;min-height:100%}
.sight__img img{width:100%;height:100%;min-height:220px;object-fit:cover}
.sight__body{grid-area:body;padding-right:20px}
.sight__body>p{margin:0 0 10px}
.sight__grid--text .sight__body{grid-column:1 / -1;padding-left:20px}
.sight:not(:has(.sight__img)){grid-template-columns:1fr;grid-template-areas:"h" "tags" "body" "tip" "buy";padding-left:20px}
.sight__facts{display:grid;margin:0;font-size:.93rem}
.sight__facts div{display:grid;grid-template-columns:110px 1fr;gap:10px;padding:6px 0;border-top:1px dotted var(--line)}
.sight__facts dt{color:var(--muted)}
.sight__facts dd{margin:0}
.sight__tip{grid-area:tip;background:var(--sun-2);border-radius:4px;padding:9px 12px;margin:12px 20px 0 0;font-size:.93rem}
.sight__buy{grid-area:buy;margin:14px 20px 20px 0}
@media (max-width:760px){.sight{grid-template-columns:1fr;grid-template-areas:"img" "h" "tags" "body" "tip" "buy";padding:0}.sight>h3,.sight>.tags,.sight__body,.sight__tip,.sight__buy{margin-left:16px;margin-right:16px;padding-right:0}.sight__img img{aspect-ratio:16/10;min-height:0}.sight:not(:has(.sight__img)){padding-left:0}.sight__facts div{grid-template-columns:96px 1fr}}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.chip{background:var(--sand);border:1px solid var(--line);border-radius:4px;padding:.2em .6em;font-size:.78rem;font-weight:800;color:var(--ink-2)}
.chip--gold{background:var(--sun-2);border-color:#f2d58f;color:#6e4800}.chip--mint{background:var(--reef-2);border-color:#9fdcd9;color:#075b5a}.chip--pink{background:var(--ochre-2);border-color:#f5c39c;color:#8a3b07}

/* verdict */
.verdict{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:1.4em 0;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.verdict>div{padding:18px 20px}
.verdict__yes{background:var(--ok-bg)}
.verdict__no{background:var(--rock-2)}
.verdict h3{font:800 .82rem/1.3 var(--f-body);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .7em;color:var(--navy)}
.verdict ul{margin:0;padding-left:1.15em}
.verdict li{margin:.25em 0}
@media (max-width:700px){.verdict{grid-template-columns:1fr}}

/* filter bar + tabs */
.filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 18px;padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:6px;position:sticky;top:0;z-index:5}
.filter__label{font:800 .72rem/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.filter button,.tabs__bar button{font:800 .88rem/1.2 var(--f-body);padding:.5em .85em;border-radius:4px;border:1px solid var(--line);background:var(--sand);color:var(--ink-2);cursor:pointer}
.filter button[aria-pressed=true],.tabs__bar button[aria-selected=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.filter__count{margin-left:auto;font-size:.86rem;color:var(--muted)}
.tabs__bar{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px}

/* coast selector */
.coast{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:clamp(16px,3vw,32px);align-items:start}
.coast__map{width:100%;height:auto;display:block;border-radius:6px}
.coast__pin{cursor:pointer;outline:none}
.coast__pin circle{fill:var(--paper);stroke:var(--navy);stroke-width:2.5;transition:r .15s,fill .15s}
.coast__pin text{font:800 12px var(--f-body);fill:var(--navy);paint-order:stroke;stroke:#efe2c9;stroke-width:4px;stroke-linejoin:round}
.coast__pin.is-match circle{fill:var(--reef)}
.coast__pin.is-best circle{fill:var(--ochre);stroke:#fff}
.coast__pin:hover circle,.coast__pin:focus circle,.coast__pin.is-on circle{r:10}
.coast__pin.is-on text{fill:var(--ochre-d)}
.coast__pin:focus-visible circle{stroke:var(--sun);stroke-width:3.5}
.coast__needs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;padding:0;border:0}
.coast__needs legend{font:800 .72rem/1 var(--f-body);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:10px;padding:0}
.coast__needs label{display:inline-flex;align-items:center;gap:6px;padding:.42em .8em;border-radius:4px;background:var(--sand);border:1px solid var(--line);font-weight:800;font-size:.9rem;cursor:pointer;user-select:none}
.coast__needs input{accent-color:var(--reef-d);margin:0}
.coast__needs label:has(input:checked){background:var(--reef-2);border-color:var(--reef)}
.coast__result{font-weight:700;color:var(--deep);margin:0 0 14px;min-height:1.5em}
.coast__card{background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--reef);border-radius:6px;padding:18px 20px;display:flex;flex-direction:column;gap:10px}
.coast__card[hidden]{display:none}
.coast__card h3{margin:0;font-size:1.4rem}
.coast__card p{margin:0;color:var(--ink-2)}
.coast__card dl{margin:0;display:grid}
.coast__card dl div{display:grid;grid-template-columns:130px 1fr;gap:8px;font-size:.93rem;padding:6px 0;border-top:1px dotted var(--line)}
.coast__card dt{color:var(--muted)}
.coast__card dd{margin:0;font-weight:700}
.coast__card .actions{margin-top:4px}
@media (max-width:700px){.coast{grid-template-columns:1fr}.coast__map{max-width:300px;margin:auto}}

/* home opening: selector-first */
.open{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,56px);padding:clamp(30px,5vw,64px) var(--gut) clamp(30px,4vw,48px);max-width:1280px;align-items:start}
.open h1{font-size:clamp(2.6rem,6vw,4.6rem);margin-bottom:.15em}
.open__over{font:800 .78rem/1.3 var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--reef-d);margin:0 0 12px}
.open__lead{font-size:1.15rem;color:var(--ink-2)}
.open__strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:22px}
.open__strip img{aspect-ratio:1;object-fit:cover;width:100%;border-radius:4px}
.open__strip img:nth-child(2){transform:translateY(14px)}
@media (max-width:1100px){.open{grid-template-columns:1fr}}

/* sea calendar: 12 month columns */
.seacal{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;align-items:end;margin:1.2em 0;padding:14px 10px 10px;background:linear-gradient(180deg,var(--reef-3),var(--paper));border:1px solid var(--line);border-radius:6px}
.seacal__m{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;font-size:.72rem;color:var(--ink-2)}
.seacal__bar{width:100%;max-width:34px;height:calc((var(--t,22) - 17) * 11px);min-height:12px;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--reef),var(--deep))}
.seacal__m b{font:800 .82rem/1 var(--f-body);color:var(--navy)}
.seacal__m.is-wind .seacal__bar{background:repeating-linear-gradient(135deg,var(--reef) 0 4px,#7fd6d2 4px 8px)}
.seacal__m.is-best b{color:var(--ochre-d)}
@media (max-width:600px){.seacal{grid-template-columns:repeat(6,1fr);row-gap:14px}}

/* excursions widgets */
.tour-panel{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:clamp(18px,3vw,32px)}
.tour-panel+.tour-panel{margin-top:20px}
.tripster__title{margin:0 0 .35em}
.tripster__text{color:var(--ink-2);max-width:760px;margin:0 0 1em}
.tripster__frame{background:#fff;border-radius:4px;padding:10px 8px 4px}
.tripster iframe{display:block;width:100%;max-width:100%}
.prose .tripster{margin:2em 0}
.tripster--one{margin:1.5em 0}
.tripster--one .tripster__frame{min-height:300px;padding:6px 6px 2px;border:1px solid var(--line)}
.tour-cards{display:grid;gap:16px;margin:1.5em 0}
.tour-cards .tripster--one{margin:0}
.flights{display:grid;grid-template-columns:minmax(0,1fr);gap:10px 32px;align-items:center;margin:1.5em 0}
.flights__title{margin:0}
.flights__text{color:var(--ink-2);margin:0;max-width:760px}
.flights__frame{overflow:hidden;border-radius:4px;background:#fff;border:1px solid var(--line)}
.flights__frame iframe{display:block;border:0;transform-origin:0 0}
.flights__frame--narrow{width:320px;max-width:100%;height:320px;justify-self:center}
.flights__frame--narrow iframe{width:320px;height:320px}
.flights__frame--wide{width:100%;max-width:900px;height:200px}
.flights__frame--wide iframe{width:100%;height:200px}
.flights--both .flights__frame--wide{display:none}
@media (min-width:720px){.flights--both .flights__frame--wide{display:block}.flights--both .flights__frame--narrow{display:none}}
.pay{display:flex;align-items:center;gap:8px;margin-top:8px}
.pay__label{font-size:.82rem;color:var(--muted)}
.pay__logo{display:inline-grid;place-items:center;height:26px;padding:0 8px;background:#fff;border-radius:4px;box-shadow:0 0 0 1px rgba(15,36,55,.1)}
.pay__logo img{height:14px;width:auto}

/* cards: photo tiles with text on a night strip */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:280px;border-radius:6px;overflow:hidden;color:#fff;text-decoration:none;background:var(--navy)}
.card__img{position:absolute;inset:0}
.card__img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,36,55,.92) 0%,rgba(15,36,55,.35) 55%,rgba(15,36,55,0) 80%)}
.card__body{position:relative;z-index:1;padding:16px 18px 18px;display:grid;gap:4px}
.card__body h3{margin:0;color:#fff}
.card__body p{margin:0;color:#d6e4ee;font-size:.93rem}
.card__meta{font-weight:800;color:var(--sun);font-size:.9rem}
a.card:hover{color:#fff}a.card:hover .card__img img{transform:scale(1.05)}
.cards--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.cards--3{grid-template-columns:1fr}}

/* buy band */
.buy-band{background:var(--ochre);color:#fff;margin:0}
.buy-band__inner{padding:clamp(28px,4vw,44px) var(--gut);max-width:1180px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}
.buy-band__title{color:#fff;margin:0 0 .25em}
.buy-band p{color:#fff3e8;margin:0;max-width:36em}
.buy-band__actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.buy-band .btn--primary{background:var(--navy);box-shadow:0 4px 0 #050f19}
.buy-band__how{color:#fff}

/* faq: numbered list, no boxes */
.faq{counter-reset:q}
.faq__list{display:grid;max-width:860px;border-top:3px solid var(--navy)}
.faq__item{border-bottom:1px solid var(--line);counter-increment:q}
.faq__item summary{cursor:pointer;list-style:none;padding:16px 40px 16px 44px;font:800 1.02rem/1.4 var(--f-body);color:var(--navy);position:relative}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::before{content:counter(q,decimal-leading-zero);position:absolute;left:0;top:17px;font:700 .9rem/1.2 var(--f-head);color:var(--reef-d)}
.faq__item summary::after{content:"";position:absolute;right:10px;top:24px;width:9px;height:9px;border:solid var(--ochre);border-width:0 2.5px 2.5px 0;transform:rotate(45deg);transition:transform .2s}
.faq__item[open] summary::after{transform:rotate(-135deg);top:28px}
.faq__answer{padding:0 10px 18px 44px;color:var(--ink-2)}
.faq__answer p{margin:0}

/* related: rows with thumbnails */
.related{padding:clamp(32px,5vw,56px) var(--gut);max-width:1180px}
.related__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:0 28px;border-top:3px solid var(--navy)}
.related__card{display:grid;grid-template-columns:96px 1fr;grid-template-rows:auto 1fr;column-gap:14px;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.related__card img{grid-row:span 2;width:96px;height:72px;object-fit:cover;border-radius:4px}
.related__card:not(:has(img)){grid-template-columns:1fr}
.related__title{font:700 1.02rem/1.25 var(--f-head);color:var(--navy)}
.related__text{color:var(--ink-2);font-size:.9rem;line-height:1.45}
.related__card:hover .related__title{color:var(--ochre-d)}
.blog-card__date{font-size:.82rem;color:var(--muted)}
.related__more{margin-top:14px}
.toc{border-left:3px solid var(--reef);padding:4px 0 4px 14px}
.toc__title{font:800 .78rem/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px;color:var(--muted)}
.toc ol{margin:0;padding-left:1.1em;display:grid;gap:4px;font-size:.93rem}
.toc-inline{display:none}
.post-meta{display:flex;gap:14px;color:var(--ink-2);font-size:.9rem}
@media (max-width:960px){.toc-inline{display:block;margin-bottom:1.4em}.post-aside .toc{display:none}}

/* weather month tiles */
.months{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:0;margin:1em 0 1.5em;border-top:3px solid var(--navy)}
.month{padding:12px 14px;border-bottom:1px solid var(--line);border-right:1px dashed var(--line)}
.month b{display:block;font:700 1.05rem/1.2 var(--f-head);color:var(--navy)}
.month span{display:block;font-size:.88rem;color:var(--ink-2)}
.month--good{background:var(--reef-3)}
.month--hot{background:var(--ochre-2)}
.month--wind{background:#eef2f6}

/* distances: big numbers */
.dist{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;margin-top:18px}
.dist div{border-top:3px solid var(--reef);padding-top:8px}
.dist b{display:block;font:700 1.45rem/1.15 var(--f-head);color:var(--navy)}
.dist span{font-size:.88rem;color:var(--ink-2)}
.ch--night .dist b{color:#fff}.ch--night .dist span{color:#b3c7d6}

/* gallery */
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:220px;gap:8px}
.gallery figure{margin:0;position:relative;overflow:hidden;border-radius:4px}
.gallery figure:first-child{grid-row:span 2}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery figcaption{position:absolute;left:0;bottom:0;background:var(--navy);color:#fff;font-size:.8rem;font-weight:700;padding:5px 10px}
@media (max-width:700px){.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:160px}.gallery figure:first-child{grid-column:span 2;grid-row:auto}}

/* footer */
.end{margin-top:40px;background:var(--navy);color:#b3c7d6}
.end__coast{padding:30px var(--gut) 24px;border-bottom:1px solid rgba(255,255,255,.1)}
.end__coast ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0;position:relative}
.end__coast li{display:flex;align-items:center}
.end__coast li+li::before{content:"";width:34px;height:3px;background:linear-gradient(90deg,var(--reef),var(--deep));margin:0 8px}
.end__coast a{color:#fff;text-decoration:none;font:700 1.05rem/1.4 var(--f-head)}
.end__coast a:hover{color:var(--sun)}
.end__cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;padding:36px var(--gut) 24px;max-width:1180px}
.end__logo{color:#fff;display:inline-flex;margin-bottom:14px}
.end__logo .logo{height:40px;width:auto}
.end p{font-size:.94rem}
.end__h{font:800 .74rem/1 var(--f-body);text-transform:uppercase;letter-spacing:.16em;color:var(--sun);margin:0 0 14px}
.end a{color:#e3eef5;text-decoration:none}
.end a:hover{color:var(--sun)}
.end__links{display:grid;gap:8px}
.end__legal{border-top:1px solid rgba(255,255,255,.1);padding:18px var(--gut) 26px;font-size:.82rem;color:#89a2b6;max-width:1180px}
.end__legal p{margin:.3em 0}
@media (max-width:860px){.end__cols{grid-template-columns:1fr}}

@media (max-width:600px){body{font-size:16px}}

/* Tripster widgetbar: 41px bar on top from 768px, 49px bar at the bottom below that */
@media (min-width:1024px){body.tripster-widgetbar-visible .rail{top:41px}}
@media (max-width:767px){body.tripster-widgetbar-visible .tabbar{bottom:49px}body.tripster-widgetbar-visible{padding-bottom:125px}}
p:empty{display:none}
main>.faq{padding:clamp(32px,5vw,56px) var(--gut);max-width:1180px}
.kicker+h2,.prose .kicker+h2{margin-top:.1em}
.sight:not(:has(.sight__img)) .sight__body{padding-left:0}
.coast__label{font:800 9px var(--f-body);fill:#7a6648;letter-spacing:.08em;text-transform:uppercase}
.coast__label--sea{font:600 italic 13px var(--f-head);fill:#e3f4f7;letter-spacing:.04em;text-transform:none}
.coast__airport{fill:var(--navy)}
.coast__map{max-height:620px}
.coast>div{min-width:0}.coast__card dl div{grid-template-columns:minmax(80px,130px) minmax(0,1fr)}.open>div{min-width:0}
@media (max-width:760px){.filter{position:static;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.filter::-webkit-scrollbar{display:none}.filter button,.filter__label,.filter__count{flex:none;white-space:nowrap}.tabs__bar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.tabs__bar button{flex:none;white-space:nowrap}}
/* home opening v2: intro row (text + photo strip), selector full width below */
.open{grid-template-columns:minmax(0,1fr);gap:28px}
.open>div:first-child{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);grid-template-areas:"over strip" "h1 strip" "lead strip" "act strip";column-gap:clamp(24px,4vw,56px);align-content:start}
.open__over{grid-area:over}.open h1{grid-area:h1}.open__lead{grid-area:lead}.open .actions{grid-area:act}
.open__strip{grid-area:strip;margin-top:0;align-self:center}
.open__strip img{aspect-ratio:3/4}
.open>div:last-child{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:clamp(14px,2.5vw,26px)}
@media (max-width:860px){.open>div:first-child{grid-template-columns:1fr;grid-template-areas:"over" "h1" "lead" "act" "strip"}.open__strip{margin-top:20px}.open__strip img{aspect-ratio:1}}
