/* ==========================================================================
   Purulia Travels theme
   Brand: forest green + warm cream. Fonts: Poppins (headings), Inter (text), Noto Sans Bengali.
   Sections: 1 tokens  2 base (same safe reset the old theme used)  3 layout  4 header  5 buttons
             6 hero + breadcrumbs  7 cards + grid  8 blog post  9 footer  10 404 / empty / search
             11 comments  12 Elementor + plugin pages  13 utilities
   ========================================================================== */

/* 1 ---- tokens */
:root {
  --pt-green: #2e9e3e;
  --pt-green-dark: #1e7a2f;
  --pt-deep: #12391f;
  --pt-cream: #f3eedd;
  --pt-leaf: #e6f4e8;
  --pt-ink: #14201a;
  --pt-text: #33443a;
  --pt-muted: #6b7a72;
  --pt-line: #dfe7e1;
  --pt-bg: #f7f9f7;
  --pt-gold: #f0a500;
  --pt-wa: #1faa59;
  --pt-radius: 14px;
  --pt-shadow: 0 6px 24px rgba(20, 40, 28, .08);
  --pt-shadow-lg: 0 14px 40px rgba(20, 40, 28, .14);
  --pt-head: 'Poppins', 'Noto Sans Bengali', system-ui, sans-serif;
  --pt-body: 'Inter', 'Noto Sans Bengali', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --pt-container: 1180px;
  --pt-header-h: 72px;
}

/* 2 ---- base (matches the previous theme's reset so existing pages do not shift) */
html { line-height: 1.15; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; }
*, :after, :before { box-sizing: border-box; }
body { background: #fff; color: var(--pt-text); font-family: var(--pt-body); font-size: 1rem; font-weight: 400; line-height: 1.5; margin: 0; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: clip; }
h1, h2, h3, h4, h5, h6 { color: inherit; font-family: inherit; font-weight: 500; line-height: 1.2; margin-block-end: 1rem; margin-block-start: .5rem; }
h1 { font-size: 2.5rem; } h2 { font-size: 2rem; } h3 { font-size: 1.75rem; } h4 { font-size: 1.5rem; } h5 { font-size: 1.25rem; } h6 { font-size: 1rem; }
p { margin-block-end: .9rem; margin-block-start: 0; }
hr { box-sizing: content-box; height: 0; overflow: visible; }
pre { font-family: monospace; font-size: 1em; white-space: pre-wrap; }
a { background-color: transparent; color: var(--pt-green-dark); text-decoration: none; }
a:active, a:hover { color: var(--pt-green); }
a:not([href]):not([tabindex]), a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover { color: inherit; text-decoration: none; }
abbr[title] { border-block-end: none; text-decoration: underline dotted; }
b, strong { font-weight: bolder; }
code, kbd, samp { font-family: monospace; font-size: 1em; }
small { font-size: 80%; }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -.25em; } sup { top: -.5em; }
img { border-style: none; height: auto; max-width: 100%; }
details { display: block; } summary { display: list-item; }
figcaption { color: var(--pt-muted); font-size: 14px; font-style: italic; line-height: 1.4; }
[hidden], template { display: none; }
label { display: inline-block; line-height: 1; vertical-align: middle; }
button, input, optgroup, select, textarea { font-family: inherit; font-size: 1rem; line-height: 1.5; margin: 0; }
input[type=date], input[type=email], input[type=number], input[type=password], input[type=search], input[type=tel], input[type=text], input[type=time], input[type=url], select, textarea { border: 1px solid #666; border-radius: 3px; padding: .5rem 1rem; transition: all .3s; width: 100%; }
input[type=date]:focus, input[type=email]:focus, input[type=number]:focus, input[type=password]:focus, input[type=search]:focus, input[type=tel]:focus, input[type=text]:focus, input[type=time]:focus, input[type=url]:focus, select:focus, textarea:focus { border-color: var(--pt-green); }
button, input { overflow: visible; } button, select { text-transform: none; }
[type=button], [type=reset], [type=submit], button { -webkit-appearance: button; width: auto; }
[type=button], [type=submit], button { background-color: transparent; border: 1px solid var(--pt-green); border-radius: 3px; color: var(--pt-green-dark); display: inline-block; font-size: 1rem; font-weight: 400; padding: .5rem 1rem; text-align: center; transition: all .3s; -webkit-user-select: none; user-select: none; white-space: nowrap; }
[type=button]:focus, [type=button]:hover, [type=submit]:focus, [type=submit]:hover, button:focus, button:hover { background-color: var(--pt-green); color: #fff; text-decoration: none; }
[type=button]:not(:disabled), [type=submit]:not(:disabled), button:not(:disabled) { cursor: pointer; }
fieldset { padding: .35em .75em .625em; }
legend { box-sizing: border-box; color: inherit; display: table; max-width: 100%; padding: 0; white-space: normal; }
textarea { overflow: auto; resize: vertical; }
[type=checkbox], [type=radio] { box-sizing: border-box; padding: 0; }
[type=search] { -webkit-appearance: textfield; outline-offset: -2px; }
[type=search]::-webkit-search-decoration { -webkit-appearance: none; }
select { display: block; }
table { background-color: transparent; border-collapse: collapse; border-spacing: 0; font-size: .9em; margin-block-end: 15px; width: 100%; }
table td, table th { border: 1px solid hsla(0, 0%, 50%, .502); line-height: 1.5; padding: 15px; vertical-align: top; }
table th { font-weight: 700; }
table tbody > tr:nth-child(odd) > td, table tbody > tr:nth-child(odd) > th { background-color: hsla(0, 0%, 50%, .071); }
table tbody tr:hover > td, table tbody tr:hover > th { background-color: hsla(0, 0%, 50%, .102); }
dd, dl, dt, li, ol, ul { background: transparent; border: 0; font-size: 100%; margin-block-end: 0; margin-block-start: 0; outline: 0; vertical-align: baseline; }
[tabindex]:not([tabindex="-1"]):focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { box-shadow: 0 0 0 4px #fff; outline: 2px solid var(--pt-green-dark); outline-offset: 2px; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.pt-skip { position: absolute; left: 8px; top: -60px; z-index: 1000; background: var(--pt-deep); color: #fff; padding: 10px 16px; border-radius: 0 0 10px 10px; transition: top .2s; }
.pt-skip:focus { top: 0; color: #fff; }
.pt-i { display: inline-block; vertical-align: -.2em; flex: 0 0 auto; }

/* 3 ---- layout */
.pt-container { width: 100%; max-width: var(--pt-container); margin: 0 auto; padding: 0 20px; }
.pt-container--narrow { max-width: 820px; }
.pt-main { display: block; min-height: 50vh; }
.ptx-section { padding: 56px 0; }
.ptx-section--soft { background: var(--pt-bg); }
.ptx-section__h { font-family: var(--pt-head); font-size: 1.7rem; font-weight: 700; color: var(--pt-ink); margin: 0 0 24px; }

/* 4 ---- header */
.pt-topbar { background: var(--pt-deep); color: #d7ead9; font-size: 13px; }
.pt-topbar a { color: #fff; }
.pt-topbar a:hover { color: #bfeac6; }
.pt-topbar__in { display: flex; justify-content: space-between; gap: 16px; padding-top: 8px; padding-bottom: 8px; }
.pt-topbar__l, .pt-topbar__r { display: flex; gap: 20px; flex-wrap: wrap; align-items: center; }
.pt-topbar .pt-i { margin-right: 4px; color: #8fdc9b; }
.pt-header { position: sticky; top: 0; z-index: 100; background: rgba(255, 255, 255, .97); backdrop-filter: saturate(1.4) blur(8px); border-bottom: 1px solid var(--pt-line); transition: box-shadow .2s; }
.pt-header.is-stuck { box-shadow: 0 6px 20px rgba(20, 40, 28, .09); }
body.admin-bar .pt-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .pt-header { top: 46px; } }
.pt-header__in { display: flex; align-items: center; gap: 22px; height: var(--pt-header-h); }
.pt-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--pt-ink); font-family: var(--pt-head); font-size: 1.28rem; line-height: 1; text-decoration: none; }
.pt-logo:hover { color: var(--pt-ink); }
.pt-logo__mark { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 12px; background: linear-gradient(145deg, var(--pt-green), var(--pt-green-dark)); color: #fff; box-shadow: 0 4px 12px rgba(46, 158, 62, .35); }
.pt-logo__text strong { font-weight: 800; letter-spacing: -.2px; }
.pt-logo__text span { font-weight: 500; color: var(--pt-green-dark); }
.pt-logo--light, .pt-logo--light:hover { color: #fff; }
.pt-logo--light .pt-logo__text span { color: #9fe2a9; }
.pt-logo--img img { max-height: 52px; width: auto; }
.pt-nav { margin-left: auto; display: flex; align-items: center; gap: 18px; }
.pt-menu { display: flex; list-style: none; padding: 0; margin: 0; gap: 2px; align-items: center; }
.pt-menu li { position: relative; }
.pt-menu a { display: block; padding: 10px 14px; border-radius: 10px; font-weight: 600; font-size: .95rem; color: var(--pt-ink); }
.pt-menu a:hover, .pt-menu .current-menu-item > a, .pt-menu .current-menu-ancestor > a { background: var(--pt-leaf); color: var(--pt-green-dark); }
.pt-menu .menu-item-has-children > a::after { content: ""; display: inline-block; margin-left: 7px; width: 6px; height: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-3px) rotate(45deg); }
.pt-menu .sub-menu { position: absolute; left: 0; top: 100%; min-width: 220px; list-style: none; margin: 0; padding: 8px; background: #fff; border: 1px solid var(--pt-line); border-radius: 14px; box-shadow: var(--pt-shadow-lg); opacity: 0; visibility: hidden; transform: translateY(6px); transition: all .16s; z-index: 5; }
.pt-menu li:hover > .sub-menu, .pt-menu li:focus-within > .sub-menu, .pt-menu li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.pt-menu .sub-menu a { padding: 9px 12px; font-weight: 500; }
.pt-nav .pt-nav__cta { display: none; }
.pt-header__tools { display: flex; align-items: center; gap: 10px; }
.pt-burger { display: none; width: 46px; height: 46px; padding: 0; border: 1px solid var(--pt-line); border-radius: 12px; background: #fff; color: var(--pt-ink); align-items: center; justify-content: center; }
.pt-burger:hover, .pt-burger:focus { background: var(--pt-leaf); color: var(--pt-green-dark); }
.pt-burger__close { display: none; }
.pt-burger[aria-expanded="true"] .pt-burger__open { display: none; }
.pt-burger[aria-expanded="true"] .pt-burger__close { display: inline; }
@media (max-width: 960px) {
  :root { --pt-header-h: 64px; }
  .pt-topbar__r { display: none; }
  .pt-burger { display: inline-flex; }
  .pt-header__cta { display: none; }
  .pt-nav { position: absolute; left: 0; right: 0; top: 100%; margin: 0; flex-direction: column; align-items: stretch; gap: 8px; background: #fff; padding: 14px 20px 22px; border-bottom: 1px solid var(--pt-line); box-shadow: var(--pt-shadow-lg); max-height: calc(100vh - 120px); overflow-y: auto; display: none; }
  .pt-nav.is-open { display: flex; }
  .pt-menu { flex-direction: column; align-items: stretch; }
  .pt-menu a { padding: 12px 10px; font-size: 1.02rem; }
  .pt-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 4px 14px; display: none; }
  .pt-menu li.is-open > .sub-menu { display: block; }
  .pt-nav .pt-nav__cta { display: inline-flex; justify-content: center; margin-top: 6px; }
}

/* 5 ---- buttons */
.pt-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 20px; border-radius: 12px; border: 1px solid var(--pt-green-dark); background: var(--pt-green); color: #fff; font-family: var(--pt-head); font-weight: 600; font-size: .95rem; line-height: 1.2; text-decoration: none; white-space: nowrap; transition: transform .15s, background .15s, box-shadow .15s; box-shadow: 0 6px 16px rgba(46, 158, 62, .25); }
.pt-btn:hover, .pt-btn:focus { background: var(--pt-green-dark); color: #fff; transform: translateY(-1px); }
.pt-btn--wa { background: var(--pt-wa); border-color: #148a46; box-shadow: 0 6px 16px rgba(31, 170, 89, .28); }
.pt-btn--wa:hover { background: #148a46; }
.pt-btn--ghost { background: #fff; color: var(--pt-green-dark); border-color: var(--pt-green); box-shadow: none; }
.pt-btn--ghost:hover { background: var(--pt-leaf); color: var(--pt-green-dark); }
.pt-btn--light { background: #fff; color: var(--pt-deep); border-color: #fff; box-shadow: none; }
.pt-btn--light:hover { background: var(--pt-cream); color: var(--pt-deep); }

/* 6 ---- hero + breadcrumbs */
.ptx-hero { background: radial-gradient(1100px 380px at 85% -20%, rgba(255, 255, 255, .16), transparent 60%), linear-gradient(135deg, var(--pt-deep) 0%, var(--pt-green-dark) 100%); color: #fff; padding: 52px 0 56px; }
.ptx-hero h1 { font-family: var(--pt-head); font-weight: 800; font-size: clamp(1.9rem, 4.2vw, 3rem); letter-spacing: -.5px; margin: 6px 0 12px; max-width: 18em; }
.ptx-hero--page { padding: 40px 0 44px; }
.ptx-hero__lead { font-size: 1.1rem; color: #d9efdc; max-width: 40em; margin-bottom: 22px; }
.pt-kicker { display: inline-block; font-family: var(--pt-head); font-weight: 600; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: #9fe2a9; margin: 0; }
.ptx-hero .pt-search { margin-top: 6px; }
.pt-crumbs { font-size: 13px; color: var(--pt-muted); margin: 0 0 14px; }
.pt-crumbs ol { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; gap: 4px 0; }
.pt-crumbs li + li::before { content: "/"; margin: 0 8px; color: #a9b8af; }
.pt-crumbs a { color: var(--pt-green-dark); } .pt-crumbs a:hover { text-decoration: underline; }
.pt-crumbs--light { color: #bfe2c5; }
.pt-crumbs--light a { color: #fff; }
.pt-crumbs--light li + li::before { color: #7fb98a; }

/* search form */
.pt-search { display: flex; max-width: 560px; background: #fff; border-radius: 14px; box-shadow: var(--pt-shadow); overflow: hidden; border: 1px solid var(--pt-line); }
.pt-search input[type=search] { border: 0; border-radius: 0; padding: 14px 18px; font-size: 1rem; color: var(--pt-ink); background: transparent; }
.pt-search input[type=search]:focus { outline: 0; box-shadow: none; }
.pt-search button { border: 0; border-radius: 0; background: var(--pt-green); color: #fff; padding: 0 20px; }
.pt-search button:hover { background: var(--pt-green-dark); }

/* 7 ---- cards + grid */
.pt-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 28px; padding: 0; }
.pt-chip-link { display: inline-block; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--pt-line); background: #fff; color: var(--pt-text); font-weight: 600; font-size: .9rem; }
.pt-chip-link span { color: var(--pt-muted); font-weight: 400; }
.pt-chip-link:hover, .pt-chip-link.is-active { background: var(--pt-green); border-color: var(--pt-green); color: #fff; }
.pt-chip-link:hover span, .pt-chip-link.is-active span { color: #d6f1da; }
.ptx-chip { display: inline-block; background: var(--pt-leaf); color: var(--pt-green-dark); font-family: var(--pt-head); font-weight: 600; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; padding: 4px 11px; border-radius: 999px; margin-bottom: 10px; }
a.ptx-chip:hover { background: var(--pt-green); color: #fff; }
.pt-grid, .pt-grid--3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 26px; }
.pt-grid__feature { grid-column: 1 / -1; }
.ptx-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius); overflow: hidden; box-shadow: 0 2px 8px rgba(20, 40, 28, .04); transition: transform .18s, box-shadow .18s; }
.ptx-card:hover { transform: translateY(-4px); box-shadow: var(--pt-shadow-lg); }
.ptx-card__media { display: block; aspect-ratio: 3 / 2; background: var(--pt-cream); overflow: hidden; }
.ptx-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; display: block; }
.ptx-card:hover .ptx-card__media img { transform: scale(1.04); }
.ptx-card__ph { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; color: #b9ad86; }
.ptx-card__body { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.ptx-card__title { font-family: var(--pt-head); font-weight: 700; font-size: 1.14rem; line-height: 1.3; margin: 0 0 8px; }
.ptx-card__title a { color: var(--pt-ink); } .ptx-card__title a:hover { color: var(--pt-green-dark); }
.ptx-card__excerpt { color: var(--pt-text); font-size: .95rem; margin: 0 0 14px; }
.ptx-card__meta { margin: auto 0 0; color: var(--pt-muted); font-size: .85rem; }
.pt-more { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--pt-green-dark); }
.ptx-card--featured { flex-direction: row; }
.ptx-card--featured .ptx-card__media { flex: 1.25; aspect-ratio: auto; min-height: 340px; }
.ptx-card--featured .ptx-card__body { flex: 1; padding: 34px 36px; justify-content: center; }
.ptx-card--featured .ptx-card__title { font-size: 1.7rem; }
.ptx-card--featured .ptx-card__excerpt { font-size: 1.02rem; }
@media (max-width: 960px) { .ptx-card--featured { flex-direction: column; } .ptx-card--featured .ptx-card__media { min-height: 0; aspect-ratio: 3 / 2; } .ptx-card--featured .ptx-card__body { padding: 20px; } }
@media (max-width: 700px) { .pt-grid, .pt-grid--3 { grid-template-columns: 1fr; gap: 20px; } .ptx-section { padding: 40px 0; } }
.pt-pagination { margin-top: 40px; }
.pt-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; list-style: none; padding: 0; margin: 0; }
.pt-pagination .page-numbers { display: inline-flex; min-width: 42px; height: 42px; align-items: center; justify-content: center; padding: 0 14px; border: 1px solid var(--pt-line); border-radius: 12px; background: #fff; color: var(--pt-text); font-weight: 600; }
.pt-pagination .page-numbers:hover, .pt-pagination .current { background: var(--pt-green); border-color: var(--pt-green); color: #fff; }
.pt-pagination .dots { border: 0; background: transparent; }

/* call-to-action band */
.pt-cta { background: linear-gradient(135deg, var(--pt-deep), var(--pt-green-dark)); color: #fff; padding: 44px 0; }
.pt-cta__in { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.pt-cta h2 { font-family: var(--pt-head); font-weight: 800; font-size: 1.6rem; margin: 0 0 6px; }
.pt-cta p { margin: 0; color: #d3ecd7; max-width: 38em; }
.pt-cta__btns { display: flex; gap: 12px; flex-wrap: wrap; }

/* 8 ---- blog post */
.pt-post__head { padding: 36px 0 8px; background: linear-gradient(#fff, var(--pt-bg)); }
.pt-post__title { font-family: var(--pt-head); font-weight: 800; font-size: clamp(1.8rem, 4vw, 2.7rem); line-height: 1.18; letter-spacing: -.4px; color: var(--pt-ink); margin: 6px 0 14px; }
.pt-post__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; color: var(--pt-muted); font-size: .9rem; margin: 0 0 22px; }
.pt-post__hero { margin: 0 auto 8px; max-width: 1040px; }
.pt-post__hero img { width: 100%; height: auto; max-height: 520px; object-fit: cover; border-radius: 22px; box-shadow: var(--pt-shadow-lg); display: block; }
.pt-post__layout { display: grid; grid-template-columns: 240px minmax(0, 760px); gap: 48px; justify-content: center; padding-top: 36px; padding-bottom: 20px; }
.pt-post__layout:not(:has(.pt-toc:not([hidden]))) { grid-template-columns: minmax(0, 760px); }
.pt-toc { position: sticky; top: 100px; align-self: start; font-size: .9rem; border-left: 3px solid var(--pt-leaf); padding-left: 16px; max-height: calc(100vh - 140px); overflow-y: auto; }
.pt-toc__h { font-family: var(--pt-head); font-weight: 700; color: var(--pt-ink); margin: 0 0 8px; }
.pt-toc ol { list-style: none; padding: 0; margin: 0; }
.pt-toc li { margin: 0 0 7px; }
.pt-toc a { color: var(--pt-text); display: block; line-height: 1.35; }
.pt-toc a:hover, .pt-toc a.is-active { color: var(--pt-green-dark); font-weight: 600; }
.pt-toc .pt-toc--h3 { padding-left: 12px; font-size: .86rem; }
@media (max-width: 1060px) { .pt-post__layout { grid-template-columns: minmax(0, 760px); } .pt-toc { display: none; } }
.pt-progress { position: fixed; left: 0; top: 0; height: 3px; width: 0; background: var(--pt-green); z-index: 200; }
.pt-post__elementor { padding-top: 10px; }

/* readable text (blog posts, plain pages) */
.pt-prose { font-size: 1.08rem; line-height: 1.8; color: #26352c; }
.pt-prose > * + * { margin-top: 1.2em; }
.pt-prose h2, .pt-prose h3, .pt-prose h4 { font-family: var(--pt-head); color: var(--pt-ink); font-weight: 700; line-height: 1.25; margin-top: 2em; margin-bottom: .5em; }
.pt-prose h2 { font-size: 1.75rem; } .pt-prose h3 { font-size: 1.35rem; } .pt-prose h4 { font-size: 1.12rem; }
.pt-prose a { color: var(--pt-green-dark); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(46, 158, 62, .45); }
.pt-prose a:hover { text-decoration-color: var(--pt-green); }
.pt-prose ul, .pt-prose ol { padding-left: 1.4em; }
.pt-prose ul { list-style: disc; } .pt-prose ol { list-style: decimal; }
.pt-prose li { margin: .35em 0; }
.pt-prose li::marker { color: var(--pt-green); }
.pt-prose img, .pt-prose figure { border-radius: 14px; }
.pt-prose figure { margin: 1.6em 0; } .pt-prose figure img { display: block; max-width: 100%; height: auto; }
.pt-prose blockquote { margin: 1.6em 0; padding: 18px 24px; border-left: 4px solid var(--pt-green); background: var(--pt-leaf); border-radius: 0 14px 14px 0; font-size: 1.12rem; color: var(--pt-ink); }
.pt-prose blockquote p:last-child { margin-bottom: 0; }
.pt-prose table { font-size: .95rem; border-radius: 12px; overflow: hidden; }
.pt-prose table td, .pt-prose table th { border-color: var(--pt-line); padding: 12px 14px; }
.pt-prose table th { background: var(--pt-leaf); color: var(--pt-ink); }
.pt-prose hr { border: 0; border-top: 1px solid var(--pt-line); margin: 2.2em 0; }
.pt-prose .alignwide { max-width: none; }
.pt-prose .wp-block-image figcaption { text-align: center; }
.pt-post__foot { padding-top: 24px; padding-bottom: 36px; }
.pt-tags { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 20px; padding: 0; }
.pt-tags a { display: inline-block; padding: 5px 12px; border-radius: 999px; background: var(--pt-bg); border: 1px solid var(--pt-line); color: var(--pt-text); font-size: .88rem; }
.pt-share { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 16px 0; border-top: 1px solid var(--pt-line); border-bottom: 1px solid var(--pt-line); margin-bottom: 26px; font-weight: 600; color: var(--pt-ink); }
.pt-share a, .pt-share button { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--pt-line); background: #fff; color: var(--pt-text); font-size: .9rem; font-weight: 600; }
.pt-share a:hover, .pt-share button:hover { background: var(--pt-green); color: #fff; border-color: var(--pt-green); }
.pt-author { display: flex; gap: 16px; align-items: flex-start; background: var(--pt-cream); border-radius: 18px; padding: 20px 22px; }
.pt-author__mark { display: inline-flex; width: 52px; height: 52px; flex: 0 0 52px; align-items: center; justify-content: center; border-radius: 50%; background: var(--pt-green); color: #fff; }
.pt-author p { margin: 0; font-size: .95rem; } .pt-author__n { font-family: var(--pt-head); font-weight: 700; color: var(--pt-ink); margin-bottom: 4px !important; }
.pt-pages { margin-top: 2em; font-weight: 600; }

/* 9 ---- footer */
.pt-footer { background: var(--pt-deep); color: #c9dfcd; margin-top: 0; }
.pt-footer a { color: #e6f4e8; } .pt-footer a:hover { color: #9fe2a9; }
.pt-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1.2fr 1.2fr; gap: 40px; padding-top: 60px; padding-bottom: 44px; }
.pt-footer__brand p { margin: 16px 0 18px; max-width: 26em; color: #b6d2bb; font-size: .95rem; }
.pt-footer__h { font-family: var(--pt-head); font-weight: 700; font-size: 1rem; color: #fff; letter-spacing: .02em; margin: 0 0 16px; }
.pt-flinks, .pt-contact { list-style: none; margin: 0; padding: 0; }
.pt-flinks li { margin: 0 0 10px; } .pt-flinks a { font-size: .95rem; }
.pt-contact li { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 12px; font-size: .95rem; }
.pt-contact .pt-i { color: #8fdc9b; margin-top: 2px; }
.pt-social { display: flex; gap: 10px; list-style: none; margin: 0; padding: 0; }
.pt-social a { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 12px; background: rgba(255, 255, 255, .09); color: #fff; }
.pt-social a:hover { background: var(--pt-green); color: #fff; }
.pt-footer__bar { border-top: 1px solid rgba(255, 255, 255, .12); background: rgba(0, 0, 0, .14); font-size: .85rem; }
.pt-footer__barin { display: flex; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; padding-top: 16px; padding-bottom: 16px; }
.pt-footer__barin p { margin: 0; color: #9fbfa5; }
.pt-footer__barin ul { display: flex; flex-wrap: wrap; gap: 6px 20px; list-style: none; margin: 0; padding: 0; }
@media (max-width: 960px) { .pt-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; } }
@media (max-width: 560px) { .pt-footer__grid { grid-template-columns: 1fr; padding-top: 44px; } }

/* floating contact buttons (hidden where a page has its own sticky "Send inquiry" bar) */
.pt-float { position: fixed; right: 16px; bottom: 18px; z-index: 90; display: flex; flex-direction: column; gap: 10px; }
.pt-float a { display: inline-flex; width: 52px; height: 52px; align-items: center; justify-content: center; border-radius: 50%; color: #fff; box-shadow: 0 8px 22px rgba(0, 0, 0, .25); transition: transform .15s; }
.pt-float a:hover { transform: scale(1.07); color: #fff; }
.pt-float__wa { background: var(--pt-wa); } .pt-float__call { background: var(--pt-green-dark); display: none !important; }
@media (max-width: 960px) { .pt-float__call { display: inline-flex !important; } }
body:has(.mobile-cta) .pt-float, body.pt-has-booking .pt-float { display: none; }
@media (min-width: 961px) { body.pt-has-booking .pt-float, body:has(.mobile-cta) .pt-float { display: flex; } }

/* 10 ---- 404 / empty states */
.pt-404 { background: radial-gradient(900px 340px at 50% -10%, var(--pt-leaf), transparent 70%), #fff; padding: 56px 0 48px; text-align: center; }
.pt-404__art { width: min(480px, 92%); height: auto; margin: 0 auto 18px; display: block; filter: drop-shadow(0 14px 24px rgba(20, 40, 28, .12)); }
.pt-404 h1 { font-family: var(--pt-head); font-weight: 800; font-size: clamp(1.8rem, 4vw, 2.6rem); color: var(--pt-ink); letter-spacing: -.4px; margin: 6px auto 12px; max-width: 20em; }
.pt-404 .pt-kicker { color: var(--pt-green-dark); }
.pt-404__lead { color: var(--pt-muted); max-width: 34em; margin: 0 auto 22px; font-size: 1.05rem; }
.pt-404 .pt-search { margin: 0 auto 22px; }
.ptx-empty { text-align: center; padding: 56px 20px; color: var(--pt-muted); border: 1px dashed var(--pt-line); border-radius: 20px; background: var(--pt-bg); }
.ptx-empty .pt-i { color: var(--pt-green); }
.ptx-empty h2 { font-family: var(--pt-head); font-weight: 700; color: var(--pt-ink); font-size: 1.5rem; margin: 12px 0 8px; }
.ptx-empty__links { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 18px 0 0; }

/* 11 ---- comments */
.pt-comments-wrap { padding-bottom: 40px; }
.pt-comments__h, .comment-reply-title { font-family: var(--pt-head); font-weight: 700; font-size: 1.4rem; color: var(--pt-ink); margin: 0 0 16px; }
.pt-comments__list { list-style: none; padding: 0; margin: 0 0 28px; }
.pt-comments__list .comment { padding: 16px 0; border-bottom: 1px solid var(--pt-line); }
.pt-comments__list .avatar { border-radius: 50%; float: left; margin-right: 14px; }
.pt-comments__list .children { list-style: none; padding-left: 28px; }
.comment-form p { margin-bottom: 14px; } .comment-form label { display: block; margin-bottom: 6px; font-weight: 600; font-size: .9rem; }

/* 12 ---- Elementor + plugin-rendered pages */
.pt-elementor-page { display: block; }
.pt-elementor-page > .elementor { width: 100%; }
#pt-tour-page, #prc-hotel-page, #prc-car-page, #prc-activity-page { display: block; }

/* 13 ---- utilities / motion / print */
@media (prefers-reduced-motion: reduce) { *, :after, :before { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
@media print { .pt-topbar, .pt-header, .pt-footer, .pt-float, .pt-cta, .pt-share, .pt-toc, .pt-progress { display: none !important; } }
