/*
Theme Name: Dream Travel Live 2.0
Theme URI: https://dream-travel-live.ru
Description: Современная редакционная тема для Dream Travel Live.
Author: Dream Travel Live
Template: twentytwentyfive
Version: 2.0.0
Text Domain: dream-travel-live
*/

:root {
  --dtl-ink: #19364b;
  --dtl-text: #385064;
  --dtl-muted: #71808c;
  --dtl-paper: #fbfaf7;
  --dtl-card: #ffffff;
  --dtl-teal: #148b83;
  --dtl-teal-dark: #0d6f69;
  --dtl-mint: #e7f4f0;
  --dtl-sand: #f5eadc;
  --dtl-coral: #f27c62;
  --dtl-line: rgba(25, 54, 75, .09);
  --dtl-shadow: 0 18px 45px rgba(22, 54, 74, .10);
  --dtl-radius: 18px;
  --dtl-radius-sm: 12px;
  --dtl-radius-pill: 999px;
}

@font-face {
  font-family: "Onest";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("assets/fonts/Onest-Cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Onest";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("assets/fonts/Onest-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;
}
@font-face {
  font-family: "Literata";
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("assets/fonts/Literata-Cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Literata";
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("assets/fonts/Literata-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;
}

html { scroll-behavior: smooth; background: var(--dtl-paper); }
body {
  overflow-x: hidden;
  background: var(--dtl-paper);
  color: var(--dtl-text);
  font-family: Onest, Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-rendering: optimizeLegibility;
}
.wp-site-blocks { background: var(--dtl-paper); }
.wp-site-blocks > main,
.wp-site-blocks > .dtl-footer,
main > .alignfull { margin-block-start: 0 !important; }
body.admin-bar .dtl-header { top: 32px; }

a { color: var(--dtl-teal); text-underline-offset: .16em; text-decoration-thickness: .08em; }
a:hover { color: var(--dtl-teal-dark); }
:focus-visible { outline: 3px solid var(--dtl-coral); outline-offset: 4px; border-radius: 5px; }
::selection { background: #bde9e1; color: var(--dtl-ink); }

h1, h2, h3, h4, h5, h6, .wp-block-heading {
  color: var(--dtl-ink);
  font-family: Onest, Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: -.025em;
  text-wrap: balance;
}
p, li { color: var(--dtl-text); line-height: 1.78; }
img { max-width: 100%; height: auto; }

/* Header */
.dtl-header {
  position: sticky;
  top: 0;
  z-index: 999;
  border-bottom: 1px solid rgba(255,255,255,.1);
  background: rgba(14,45,61,.96) !important;
  box-shadow: 0 10px 32px rgba(7,31,45,.16);
  backdrop-filter: blur(16px) saturate(120%);
}
.dtl-header__inner { min-height: 78px; }
.dtl-header .wp-block-site-title { white-space: nowrap; }
.dtl-header .wp-block-site-title a {
  color: #fff !important;
  font-size: clamp(1.2rem, 2vw, 1.48rem);
  font-weight: 820;
  letter-spacing: -.04em;
  text-decoration: none;
}
.dtl-brand-dot { color: var(--dtl-coral); }
.dtl-header .wp-block-navigation a,
.dtl-header .wp-block-navigation-item__content {
  color: #eaf5f3 !important;
  font-size: .9rem;
  font-weight: 650;
  text-decoration: none;
}
.dtl-header .wp-block-navigation a {
  min-height: 44px;
  padding: .55rem .25rem;
  display: inline-flex;
  align-items: center;
}
.dtl-header .wp-block-navigation a:hover { color: #ff9b83 !important; }
.dtl-header .wp-block-navigation__submenu-container {
  min-width: 210px !important;
  padding: .55rem !important;
  border: 1px solid var(--dtl-line) !important;
  border-radius: var(--dtl-radius-sm) !important;
  background: rgba(255,255,255,.98) !important;
  box-shadow: 0 20px 50px rgba(39,65,78,.14);
}
.dtl-header .wp-block-navigation__submenu-container a { padding: .68rem .8rem !important; border-radius: 9px; color: var(--dtl-ink) !important; }
.dtl-header .wp-block-navigation__submenu-container a:hover { background: var(--dtl-mint); }
.dtl-header .wp-block-navigation__submenu-icon svg { stroke: #d8ebe8; }
.wp-block-navigation__responsive-container.is-menu-open {
  padding: 6rem 1.5rem 2rem !important;
  background: #0e2d3d !important;
}
.wp-block-navigation__responsive-container.is-menu-open a { color: #fff !important; font-size: 1.12rem; }
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close { color: #fff !important; }

/* Hero */
.dtl-hero {
  position: relative;
  isolation: isolate;
  display: flex;
  min-height: min(760px, calc(100vh - 74px));
  align-items: center;
  overflow: hidden;
  border-radius: 0;
  background:
    linear-gradient(90deg, rgba(15,42,56,.82) 0%, rgba(15,55,64,.61) 44%, rgba(15,55,64,.12) 73%, rgba(15,55,64,.02) 100%),
    linear-gradient(0deg, rgba(7,31,45,.18), rgba(7,31,45,.02)),
    url("assets/images/phuket.webp") center center / cover no-repeat !important;
}
.dtl-hero::after {
  position: absolute;
  z-index: -1;
  inset: auto 0 0;
  height: 160px;
  background: linear-gradient(180deg, transparent, rgba(5,25,36,.34));
  content: "";
}
.dtl-hero__content { width: 100%; }
.dtl-eyebrow {
  display: inline-flex;
  width: fit-content;
  padding: .45rem .75rem;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--dtl-radius-pill);
  background: rgba(255,255,255,.09);
  color: #d9f5f0 !important;
  font-size: .76rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.dtl-hero h1 {
  max-width: 720px;
  margin: .8rem 0 1rem;
  color: #fff !important;
  font-size: clamp(2.55rem, 5.1vw, 4.55rem);
  font-weight: 820;
  line-height: 1.01;
  letter-spacing: -.055em;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
.dtl-hero__lead { max-width: 650px; color: #edf7f6 !important; font-size: clamp(1rem, 2vw, 1.2rem); text-shadow: 0 2px 20px rgba(0,0,0,.22); }
.dtl-hero__postcard { width: fit-content; margin-top: 2.1rem !important; padding-bottom: .35rem; border-bottom: 1px solid rgba(255,255,255,.34); color: #d8efec !important; font-family: Literata, Georgia, serif; font-size: .82rem; font-style: italic; letter-spacing: .02em; }
.dtl-button .wp-block-button__link {
  padding: .88rem 1.2rem;
  border-radius: 999px;
  background: var(--dtl-coral);
  box-shadow: 0 10px 26px rgba(243,107,77,.25);
  color: #fff;
  font-size: .9rem;
  font-weight: 750;
}
.dtl-button.is-style-outline .wp-block-button__link { border-color: rgba(255,255,255,.35); background: rgba(255,255,255,.06); color: #fff; }
/* Home sections */
.dtl-section { padding-top: clamp(3rem, 6vw, 5.75rem); padding-bottom: clamp(3rem, 6vw, 5.75rem); }
.dtl-section-kicker { color: var(--dtl-teal) !important; font-size: .8rem; font-weight: 800; letter-spacing: .085em; text-transform: uppercase; }
.dtl-section-title { max-width: 760px; margin-top: .3rem; font-size: clamp(2rem, 4vw, 3.35rem); line-height: 1.05; }
.dtl-section-intro { max-width: 650px; color: var(--dtl-muted) !important; }
.dtl-destination-grid {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: 220px;
  gap: clamp(.9rem, 1.8vw, 1.25rem);
}
.dtl-destination {
  position: relative;
  isolation: isolate;
  display: flex;
  min-height: 220px;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  border-radius: var(--dtl-radius);
  padding: clamp(1.35rem, 3vw, 2.1rem) !important;
  background-position: center !important;
  background-size: cover !important;
  box-shadow: 0 14px 34px rgba(22,54,74,.15);
  cursor: pointer;
  transition: transform .3s ease, box-shadow .3s ease;
}
.dtl-destination::before { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgba(10,32,47,.01) 18%, rgba(10,39,50,.68) 100%); content: ""; transition: background .3s ease; }
.dtl-destination:hover { transform: translateY(-4px); box-shadow: 0 21px 42px rgba(18,48,74,.21); }
.dtl-destination:hover::before { background: linear-gradient(180deg, rgba(0,124,120,.01) 8%, rgba(8,38,53,.73) 100%); }
.dtl-destination--thailand { grid-column: span 6; grid-row: span 2; background-image: url("assets/images/phuket.webp") !important; }
.dtl-destination--malaysia { grid-column: span 6; background-image: url("assets/images/kuala-lumpur.webp") !important; }
.dtl-destination--philippines { grid-column: span 3; background-image: url("assets/images/boracay.webp") !important; }
.dtl-destination--indonesia { grid-column: span 3; background-image: url("assets/images/gili-meno.webp") !important; }
.dtl-destination h3, .dtl-destination p { z-index: 1; margin: 0; color: #fff !important; }
.dtl-destination p { position: relative; }
.dtl-destination h3 { position: static; margin-top: .35rem; font-size: clamp(1.55rem, 2.7vw, 2.5rem); line-height: 1.02; }
.dtl-destination a { color: #fff !important; text-decoration: none; }
.dtl-destination h3 a::after { position: absolute; z-index: 3; inset: 0; content: ""; }
.dtl-destination h3 span { display: inline-block; margin-left: .2em; transition: transform .25s ease; }
.dtl-destination:hover h3 span { transform: translateX(6px); }
.dtl-destination > p:not(.dtl-destination__tag) { max-width: 520px; margin-top: .65rem; color: rgba(255,255,255,.84) !important; font-size: .9rem; line-height: 1.5; }
.dtl-destination__tag { color: #c7f2eb !important; font-size: .76rem !important; font-weight: 780; letter-spacing: .07em; text-transform: uppercase; }
.dtl-trust-strip { border-block: 1px solid var(--dtl-line); background: rgba(255,255,255,.52); }
.dtl-stat strong { display: block; color: var(--dtl-ink); font-size: 1.45rem; }
.dtl-stat span { color: var(--dtl-muted); font-size: .88rem; }

/* Cards */
.dtl-post-grid { gap: 1.6rem !important; }
.dtl-post-grid > li.wp-block-post {
  overflow: hidden;
  border: 1px solid var(--dtl-line);
  border-radius: var(--dtl-radius);
  background: var(--dtl-card);
  box-shadow: 0 10px 28px rgba(39,65,78,.06);
  transition: transform .25s ease, box-shadow .25s ease;
}
.dtl-post-grid > li.wp-block-post:hover { transform: translateY(-4px); box-shadow: var(--dtl-shadow); }
.dtl-post-grid > li.wp-block-post:first-child { grid-column: span 2; }
.dtl-post-grid .wp-block-post-featured-image { overflow: hidden; margin: 0; }
.dtl-post-grid .wp-block-post-featured-image img { width: 100%; height: 235px; object-fit: cover; transition: transform .5s ease; }
.dtl-post-grid > li.wp-block-post:first-child .wp-block-post-featured-image img { height: 330px; }
.dtl-post-grid > li.wp-block-post:first-child .wp-block-post-title { max-width: 720px; font-size: clamp(1.45rem, 2.3vw, 2rem); }
.dtl-post-grid > li.wp-block-post:first-child .dtl-card-body { padding: 1.45rem 1.55rem 1.6rem; }
.dtl-post-grid > li:hover .wp-block-post-featured-image img { transform: scale(1.045); }
.dtl-card-body { padding: 1.2rem 1.25rem 1.35rem; }
.dtl-card-body .wp-block-post-terms a { color: var(--dtl-teal); font-size: .76rem; font-weight: 800; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
.dtl-card-body .wp-block-post-title { margin: .45rem 0 .6rem; font-size: 1.13rem; line-height: 1.3; }
.dtl-card-body .wp-block-post-title a { color: var(--dtl-ink); text-decoration: none; }
.dtl-card-body .wp-block-post-excerpt { color: var(--dtl-muted); font-size: .9rem; }
.dtl-card-body .wp-block-post-excerpt p { margin: 0; color: var(--dtl-muted); line-height: 1.58; }
.dtl-card-meta { color: var(--dtl-muted); font-size: .82rem; }
.wp-block-query-pagination { margin-top: 2.5rem; }
.wp-block-query-pagination a,
.wp-block-query-pagination-numbers .page-numbers {
  padding: .55rem .8rem;
  border: 1px solid var(--dtl-line);
  border-radius: 999px;
  background: #fff;
  font-size: .84rem;
  font-weight: 700;
  text-decoration: none;
}

/* Single article */
.dtl-article-head { position: relative; padding-top: clamp(3rem, 7vw, 6rem); }
.dtl-article-head .wp-block-post-terms a { color: var(--dtl-teal); font-size: .76rem; font-weight: 800; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.dtl-article-title { max-width: 980px; margin-inline: auto; font-size: clamp(2.15rem, 5.2vw, 4.7rem) !important; font-weight: 820 !important; line-height: 1.02 !important; letter-spacing: -.055em !important; }
.dtl-article-meta { color: var(--dtl-muted); font-size: .82rem; }
.dtl-reading-time::before { content: "·"; margin-right: .55rem; }
.dtl-hero-image { overflow: hidden; border-radius: 18px !important; background: transparent; box-shadow: var(--dtl-shadow); line-height: 0; }
.dtl-hero-image img { display: block; width: 100%; height: auto !important; max-height: none; object-fit: contain !important; vertical-align: top; }
.dtl-article-content {
  margin-top: clamp(2.4rem, 6vw, 5rem) !important;
  margin-bottom: 4rem;
  font-size: clamp(1rem, 1.5vw, 1.075rem);
}
.dtl-article-content > p:first-of-type { color: #18394c; font-size: clamp(1.12rem, 2vw, 1.28rem); line-height: 1.7; }
.dtl-article-content h2 { margin-top: 3.8rem; margin-bottom: 1.1rem; font-size: clamp(1.65rem, 3vw, 2.3rem); line-height: 1.14; }
.dtl-article-content h3 { margin-top: 2.4rem; margin-bottom: .8rem; font-size: clamp(1.25rem, 2vw, 1.55rem); }
.dtl-article-content h4 { margin-top: 1.8rem; font-size: 1.08rem; }
.dtl-article-content p, .dtl-article-content li { line-height: 1.82; }
.dtl-article-content ul, .dtl-article-content ol { padding-left: 1.35rem; }
.dtl-article-content li { margin-bottom: .45rem; }
.dtl-article-content img { border-radius: 18px; }
.dtl-article-content figcaption { color: var(--dtl-muted); font-size: .78rem; text-align: center; }
.dtl-article-content .wp-block-group.has-background {
  border: 1px solid rgba(0,124,120,.12);
  border-radius: 18px !important;
  box-shadow: 0 10px 30px rgba(23,54,74,.04);
}
.dtl-article-content .has-accent-2-background-color { background: var(--dtl-mint) !important; }
.dtl-article-content .has-accent-5-background-color { background: #f7eadb !important; }
.wp-block-pullquote {
  margin-block: 2.5rem !important;
  padding: 1.5rem 1.7rem !important;
  border: 0 !important;
  border-left: 5px solid var(--dtl-coral) !important;
  border-radius: 0 18px 18px 0;
  background: linear-gradient(135deg, #fff 0%, #f7eadb 100%) !important;
  text-align: left !important;
}
.wp-block-pullquote p { margin: 0; color: var(--dtl-ink) !important; font-family: Literata, Georgia, serif; font-size: 1.08rem !important; font-style: italic; font-weight: 560; }
.wp-block-separator { width: 90px !important; margin-block: 3.5rem !important; border-color: var(--dtl-coral) !important; opacity: .85; }
.dtl-toc {
  margin: 1rem 0 3rem;
  padding: 1rem 1.2rem;
  border: 1px solid var(--dtl-line);
  border-radius: 18px;
  background: #fff;
}
.dtl-toc summary { cursor: pointer; color: var(--dtl-ink); font-weight: 800; }
.dtl-toc ol { columns: 2; column-gap: 2.5rem; margin: 1rem 0 .2rem; padding-left: 1.2rem; }
.dtl-toc li { break-inside: avoid; margin: .35rem 0; font-size: .86rem; line-height: 1.45; }
.dtl-toc a { text-decoration: none; }
.dtl-post-nav { border-top: 1px solid var(--dtl-line); }
.dtl-post-nav a { font-weight: 700; text-decoration: none; }

/* Footer */
.dtl-footer { background: #102d43 !important; }
.dtl-footer h2, .dtl-footer h3, .dtl-footer p, .dtl-footer li { color: #d8e7e9 !important; }
.dtl-footer .wp-block-site-title a { color: #fff !important; font-weight: 800; text-decoration: none; }
.dtl-footer a { color: #bce4df !important; text-decoration: none; }
.dtl-footer a:hover { color: #fff !important; }
.dtl-footer__note { color: #9fb8bf !important; font-size: .78rem; }

.reading-progress { position: fixed; top: 0; left: 0; z-index: 10000; width: 100%; height: 3px; pointer-events: none; background: linear-gradient(90deg, var(--dtl-coral) var(--scroll, 0%), transparent var(--scroll, 0%)); }
.back-to-top { position: fixed; right: 22px; bottom: 22px; z-index: 990; display: grid; width: 46px; height: 46px; place-items: center; border-radius: 50%; background: var(--dtl-ink); box-shadow: 0 12px 30px rgba(18,48,74,.25); color: #fff !important; font-weight: 800; text-decoration: none; opacity: 0; visibility: hidden; transform: translateY(8px); transition: .25s ease; }
.back-to-top.visible { opacity: 1; visibility: visible; transform: none; }

@media (max-width: 1100px) {
  .dtl-header .wp-block-navigation a { font-size: .82rem; }
  .dtl-destination-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 270px; }
  .dtl-destination--thailand, .dtl-destination--malaysia, .dtl-destination--philippines, .dtl-destination--indonesia { grid-column: auto; grid-row: auto; }
  .dtl-post-grid > li.wp-block-post:first-child { grid-column: auto; }
  .dtl-post-grid > li.wp-block-post:first-child .wp-block-post-featured-image img { height: 235px; }
}
@media (max-width: 781px) {
  body.admin-bar .dtl-header { top: 46px; }
  .dtl-header__inner { min-height: 66px; }
  .dtl-hero { min-height: 720px; border-radius: 0; background: linear-gradient(90deg, rgba(15,42,56,.82), rgba(15,55,64,.42)), url("assets/images/phuket.webp") 62% center / cover no-repeat !important; }
  .dtl-hero h1 { font-size: clamp(2.05rem, 9.6vw, 3.4rem); letter-spacing: -.05em; }
  .dtl-section { padding-inline: 1rem; }
  .dtl-destination-grid { grid-template-columns: 1fr; grid-auto-rows: 280px; }
  .dtl-destination { min-height: 280px; }
  .dtl-post-grid { grid-template-columns: 1fr !important; }
  .dtl-post-grid > li.wp-block-post:first-child { grid-column: auto; }
  .dtl-post-grid > li.wp-block-post:first-child .wp-block-post-featured-image img { height: 235px; }
  .dtl-article-head { padding-inline: 1rem; }
  .dtl-article-title { font-size: clamp(2rem, 10.5vw, 3.3rem) !important; overflow-wrap: anywhere; }
  .dtl-article-meta { gap: .35rem !important; }
  .dtl-hero-image { border-radius: 12px !important; }
  .dtl-article-content { padding-inline: 1.15rem; }
  .dtl-article-content .wp-block-columns { flex-direction: column; }
  .dtl-toc ol { columns: 1; }
  .dtl-footer { padding-inline: 1rem; }
}
@media (max-width: 480px) {
  .dtl-button-group { align-items: stretch !important; flex-direction: column; }
  .dtl-button .wp-block-button__link { width: 100%; text-align: center; }
  .dtl-stat strong { font-size: 1.15rem; }
  .dtl-card-body { padding: 1.05rem; }
  .dtl-post-grid .wp-block-post-featured-image img { height: 210px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; transition-delay: 0ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
