/*
Theme Name:   Pine Creek Railway Resort
Theme URI:    https://www.pinecreekrailwayresort.com.au/
Description:  Child theme of Hello Elementor for Pine Creek Railway Resort. Layout is built in Elementor; colours and fonts live in Elementor Site Settings. This file only styles the pieces Elementor widgets cannot draw on their own (cards from the content types, signposts, booking strip, event tickets).
Author:       Concept Marketing
Author URI:   https://conceptmarketing.com.au/
Template:     hello-elementor
Version:      1.0.0
Text Domain:  pine-creek
*/

/* Colours and fonts point at the Elementor global tokens, so changing them in Site Settings updates these components too. */
:root {
	--pc-ink: var(--e-global-color-primary, #1F1C19);
	--pc-gum: var(--e-global-color-secondary, #3D5A4A);
	--pc-text: var(--e-global-color-text, #4B453E);
	--pc-ochre: var(--e-global-color-accent, #D58C2B);
	--pc-gum-dk: var(--e-global-color-pc_gum_dark, #263A2F);
	--pc-ochre-dk: var(--e-global-color-pc_ochre_dark, #A8681A);
	--pc-rust: var(--e-global-color-pc_rust, #8C3A21);
	--pc-paper: var(--e-global-color-pc_paper, #FBFAF7);
	--pc-sand: var(--e-global-color-pc_sand, #F1EADF);
	--pc-line: var(--e-global-color-pc_line, #DDD3C3);
	--pc-muted: var(--e-global-color-pc_muted, #7A7166);
	--pc-display: var(--e-global-typography-primary-font-family, "Big Shoulders Display"), "Arial Narrow", sans-serif;
	--pc-body: var(--e-global-typography-text-font-family, "Figtree"), system-ui, sans-serif;
	--pc-radius: 4px;
}

body { background: var(--pc-paper); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6 { text-wrap: balance; overflow-wrap: break-word; }
a:focus-visible, button:focus-visible, .elementor-button:focus-visible { outline: 3px solid var(--pc-ochre); outline-offset: 2px; }

/* ---------- Shared bits ---------- */
.pc-eyebrow .elementor-heading-title { letter-spacing: .16em; }
.pc-on-dark .pc-eyebrow .elementor-heading-title { color: var(--pc-ochre); }

/* Text link with ochre underline (Elementor button widget with class pc-link) */
.pc-link .elementor-button {
	background: transparent !important; padding: 0 0 3px !important; border-radius: 0 !important;
	border-bottom: 2px solid var(--pc-ochre) !important; color: var(--pc-ink);
}
.pc-link .elementor-button:hover { color: var(--pc-ochre-dk); }
.pc-on-dark .pc-link .elementor-button, .pc-link--light .elementor-button { color: #fff; }

/* Ghost / light button variants */
.pc-btn-light .elementor-button { background: transparent !important; color: #fff !important; border: 2px solid #fff; }
.pc-btn-light .elementor-button:hover { background: #fff !important; color: var(--pc-ink) !important; }
.pc-btn-ghost .elementor-button, .pc-btn-light .elementor-button { white-space: nowrap; }
.pc-btn-ghost .elementor-button { background: transparent !important; color: var(--pc-ink) !important; border: 2px solid currentColor; }
.pc-btn-ghost .elementor-button:hover { background: var(--pc-ink) !important; color: #fff !important; border-color: var(--pc-ink); }

/* Hero parallax uses the container's Background › Motion Effects › Vertical Scroll (Elementor Pro). */

/* ---------- Booking strip ---------- */
.pc-book-strip { position: relative; z-index: 3; margin-top: -64px; }
.pc-strip-box { box-shadow: 0 30px 60px -36px rgba(31, 28, 25, .5); }
.pc-grow { flex: 1 1 0; min-width: 0; }
.pc-book-strip .pc-cell { border-right: 1px solid var(--pc-line); }
.pc-book-strip .pc-cell:last-child { border-right: 0; }
@media (max-width: 860px) {
	.pc-book-strip .pc-cell { border-right: 0; border-bottom: 1px solid var(--pc-line); }
	.pc-book-strip .pc-cell:last-child { border-bottom: 0; }
	.pc-book-strip .pc-cell:last-child .elementor-button { width: 100%; }
}

/* ---------- Welcome split: images fill their grid cell ----------
   Each photo sits in its own container (Overflow: Hidden in Elementor) and uses the
   Image widget's Hover Animation, so the zoom stays inside the frame. */
.pc-fill-img, .pc-fill-img .elementor-widget-container, .pc-fill-img img { height: 100%; }
.pc-fill-img { width: 100%; }
.pc-fill-img img { width: 100%; object-fit: cover; display: block; min-height: 260px; }
.pc-fill-img img.elementor-animation-grow { transition-duration: .6s; transition-timing-function: cubic-bezier(.2, .7, .2, 1); }
.pc-fill-img img.elementor-animation-grow:hover { transform: scale(1.06); }
@media (prefers-reduced-motion: reduce) { .pc-fill-img img.elementor-animation-grow:hover { transform: none; } }
@media (max-width: 1024px) {
	.pc-split3 > .pc-photo:last-child { display: none; }
	.pc-split3 .pc-fill-img img { height: 320px; min-height: 0; }
}
@media (max-width: 600px) { .pc-split3 .pc-fill-img img { height: 220px; } }

/* ---------- Header (Theme Builder template "Site header") ---------- */
.pc-site-header .pc-header-logo { flex: none; }
.pc-site-header .pc-header-cta { width: auto; flex: none; }
.pc-site-header .pc-main-nav .elementor-nav-menu--main .elementor-item { white-space: nowrap; }
.pc-site-header .pc-main-nav .sub-menu { min-width: 260px; border: 1px solid var(--pc-line); box-shadow: 0 18px 40px -20px rgba(31, 28, 25, .35); }
.pc-site-header .pc-main-nav .elementor-nav-menu--dropdown .sub-menu .elementor-sub-item { text-transform: none; }
.pc-site-header .pc-main-nav .elementor-menu-toggle { border: 2px solid var(--pc-ink); border-radius: var(--pc-radius); padding: 8px 10px; }
.pc-site-header .pc-main-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container { border-top: 1px solid var(--pc-line); max-height: calc(100vh - 72px) !important; overflow: auto; }
.pc-site-header .pc-main-nav .elementor-nav-menu--dropdown .elementor-item { text-transform: uppercase; letter-spacing: .06em; font-weight: 600; border-bottom: 1px solid var(--pc-line); }
@media (max-width: 1480px) { .pc-header-phone { display: none; } }
.elementor-sticky--effects.pc-site-header { box-shadow: 0 10px 30px -20px rgba(31, 28, 25, .5); }

/* ---------- Footer (Theme Builder template "Site footer") ---------- */
.pc-site-footer { font-size: 15px; }
.elementor-widget.pc-track-rule-wrap { width: 100vw; max-width: 100vw !important; margin-left: calc(50% - 50vw); }
.pc-track-rule { height: 14px; background: repeating-linear-gradient(90deg, #5B5148 0 6px, transparent 6px 26px), linear-gradient(#8A8076, #8A8076) 0 2px / 100% 2px no-repeat, linear-gradient(#8A8076, #8A8076) 0 10px / 100% 2px no-repeat; }
.pc-foot-text p { margin: 0; }
.pc-foot-text a { text-decoration: none; }
.pc-foot-email { font-size: 14px; overflow-wrap: anywhere; }

/* Social icons ([pc_social]); light on the dark footer, dark elsewhere */
.pc-social { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.pc-social a { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--pc-line); border-radius: 50%; color: var(--pc-ink); font-size: 16px; text-decoration: none; transition: background .15s, color .15s, border-color .15s; }
.pc-site-footer .pc-social a, .pc-on-dark .pc-social a { border-color: #5A534B; color: #BDB5A9; }
.pc-social a:hover, .pc-social a:focus-visible { background: var(--pc-ochre); border-color: var(--pc-ochre); color: var(--pc-ink); }
.pc-social svg { display: block; width: 16px; height: 16px; fill: currentColor; }
.pc-foot-menu .elementor-nav-menu--main .elementor-item { justify-content: flex-start; }

/* Sticky booking bar, tablet and mobile only (hidden on desktop in Elementor) */
@media (max-width: 1024px) {
	.pc-book-bar { position: fixed !important; left: 0; right: 0; bottom: 0; z-index: 55; padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important; }
	body { padding-bottom: 76px; }
}
.pc-book-bar .pc-bar-book { flex: 1 1 auto; }
.pc-book-bar .pc-bar-book .elementor-button { width: 100%; padding: 14px 12px; }
.pc-book-bar .pc-bar-call .elementor-button { background: transparent !important; color: #fff !important; border: 2px solid #5A534B; padding: 14px 18px; }

/* ---------- Image hover zoom ---------- */
.pc-ph { position: relative; overflow: hidden; aspect-ratio: 3 / 2; background: var(--pc-sand); }
.pc-ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.pc-cabin:hover .pc-ph img, .pc-special:hover .pc-ph img, .pc-card:hover .pc-ph img { transform: scale(1.06); }
@media (prefers-reduced-motion: reduce) { .pc-ph img { transition: none; } .pc-cabin:hover .pc-ph img, .pc-special:hover .pc-ph img, .pc-card:hover .pc-ph img { transform: none; } }

/* ---------- Cabins ---------- */
.pc-carousel-head { display: flex; justify-content: flex-end; gap: 8px; margin-bottom: 20px; }
.pc-carousel .pc-car-btn { width: 48px; height: 48px; border: 2px solid var(--pc-ink); background: transparent; border-radius: var(--pc-radius); cursor: pointer; color: var(--pc-ink); display: grid; place-items: center; padding: 0; }
.pc-carousel .pc-car-btn:hover, .pc-carousel .pc-car-btn:focus { background: var(--pc-ink); color: #fff; }
.pc-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 3); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.pc-track::-webkit-scrollbar { display: none; }
.pc-track > * { scroll-snap-align: start; min-width: 0; }
@media (max-width: 900px) { .pc-track { grid-auto-columns: calc((100% - 24px) / 2); } }
@media (max-width: 600px) { .pc-track { grid-auto-columns: 86%; } }
.pc-cabin-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 40px 28px; }
.pc-cabin { display: flex; flex-direction: column; gap: 14px; text-decoration: none; color: inherit; }
.pc-cabin h3 { font-size: 28px; margin: 0; }
.pc-specs { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 14px; }
.pc-specs span { display: inline-flex; align-items: center; gap: 6px; }
.pc-specs svg { color: var(--pc-gum); }
.pc-rate { display: flex; align-items: baseline; gap: 8px; border-top: 1px solid var(--pc-line); padding-top: 12px; margin-top: auto; }
.pc-rate b { font-family: var(--pc-display); font-size: 28px; color: var(--pc-ink); font-weight: 800; }
.pc-rate span { font-size: 13px; color: var(--pc-muted); }

/* ---------- Specials ---------- */
.pc-specials { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 900px) { .pc-specials { grid-template-columns: 1fr; } }
.pc-special { background: var(--pc-paper); border: 1px solid var(--pc-line); display: flex; flex-direction: column; }
.pc-special .pc-body { padding: 24px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.pc-special h3 { margin: 0; font-size: 26px; }
.pc-special p { margin: 0; }
.pc-special .pc-price { font-family: var(--pc-display); font-size: 34px; font-weight: 800; color: var(--pc-rust); line-height: 1; }
.pc-special .pc-valid { font-size: 13px; color: var(--pc-muted); }
.pc-special .pc-btn { align-self: flex-start; margin-top: auto; }
.pc-tag { position: absolute; top: 12px; left: 12px; z-index: 2; background: var(--pc-paper); color: var(--pc-ink); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding: 5px 8px; border-radius: 3px; }
.pc-tag--inline { position: static; display: inline-block; margin-bottom: 8px; background: #FCE9C9; color: #7A4A0E; }
.pc-empty { padding: 28px; border: 1px dashed var(--pc-line); display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; }

/* Button used inside shortcode cards, matched to the Elementor booking button */
.pc-btn { display: inline-flex; align-items: center; justify-content: center; font: 600 15px/1 var(--pc-body); letter-spacing: .04em; text-transform: uppercase; text-decoration: none; padding: 16px 26px; border-radius: var(--pc-radius); background: var(--pc-ochre); color: var(--pc-ink); transition: background .15s, color .15s; }
.pc-btn:hover { background: var(--pc-ochre-dk); color: #fff; }

/* Text link inside cards and single pages, matches the Elementor "pc-link" buttons */
.pc-text-link { align-self: flex-start; margin-top: auto; font-family: var(--pc-body); font-weight: 600; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; border-bottom: 2px solid var(--pc-ochre); padding-bottom: 3px; color: var(--pc-ink); }
.pc-text-link:hover { color: var(--pc-ochre-dk); }
.pc-plain { text-decoration: none; color: inherit; }
.pc-plain:hover { color: var(--pc-rust); }
.pc-special-img { position: relative; display: block; }

/* ---------- Things to do cards ---------- */
.pc-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 32px 24px; }
.pc-card { display: flex; flex-direction: column; gap: 12px; min-width: 0; text-decoration: none; color: inherit; }
a.pc-card:hover h3, a.pc-card:hover h4, a.pc-event:hover h3 { color: var(--pc-rust); }
a.pc-card:hover .pc-ph img { transform: scale(1.06); }
.pc-card h4 { margin: 0; font-size: 20px; }
.pc-card--post h3 { margin: 0; font-size: 24px; }
.pc-card p { margin: 0; font-size: 15px; }
.pc-meta { font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--pc-rust); }

/* ---------- Events ---------- */
.pc-event { display: grid; grid-template-columns: 96px 1fr; gap: 20px; padding: 22px 0; border-top: 1px solid var(--pc-line); align-items: start; text-decoration: none; color: inherit; }
.pc-event:last-child { border-bottom: 1px solid var(--pc-line); }
.pc-event h3 { font-size: 24px; margin: 0 0 6px; }
.pc-event p { margin: 0; }
.pc-where { font-size: 14px; color: var(--pc-muted); margin-bottom: 8px; }
.pc-ticket { border: 2px solid var(--pc-ink); text-align: center; padding: 8px 4px; font-family: var(--pc-display); text-transform: uppercase; color: var(--pc-ink); line-height: 1; }
.pc-ticket b { display: block; font-size: 34px; font-weight: 800; }
.pc-ticket span { font-size: 15px; font-weight: 700; letter-spacing: .06em; }
.pc-ticket--text b { font-size: 20px; padding-block: 6px; overflow-wrap: anywhere; }

/* ---------- Reviews placeholder ---------- */
.pc-reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 900px) { .pc-reviews { grid-template-columns: 1fr; } }
.pc-review { border: 1px dashed #5E7A69; padding: 26px; display: flex; flex-direction: column; gap: 14px; min-height: 200px; justify-content: center; }
.pc-review .pc-stars { letter-spacing: 4px; color: var(--pc-ochre); font-size: 18px; }
.pc-review p { margin: 0; font-size: 15px; color: var(--e-global-color-pc_on_dark, #E7E1D6); opacity: .85; }

/* ---------- Crossroads signposts ---------- */
.pc-signs { position: relative; padding-left: 22px; }
.pc-signs::before { content: ""; position: absolute; left: 0; top: -12px; bottom: -12px; width: 8px; background: #5B5148; border-radius: 2px; }
.pc-sign .elementor-heading-title {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding: 14px 44px 14px 22px; background: var(--pc-ochre); color: var(--pc-ink) !important;
	clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 50%, calc(100% - 22px) 100%, 0 100%);
	transform-origin: left center; transition: transform .45s cubic-bezier(.34, 1.56, .64, 1), filter .3s;
}
.pc-sign:nth-child(even) .elementor-heading-title { background: #EBDCC3; margin-left: 28px; }
.pc-sign .elementor-heading-title:hover { transform: rotate(-2.5deg) translateX(10px); filter: brightness(1.06); }
.pc-sign:nth-child(even) .elementor-heading-title:hover { transform: rotate(2.5deg) translateX(10px); }
.pc-sign small { font-family: var(--pc-body); font-size: 14px; font-weight: 600; text-transform: none; white-space: nowrap; }
/* Phones: stack the place name over the drive time and let it wrap. With nowrap the drive time ran past the screen edge, widened the page and made mobile browsers load the home page zoomed out. */
@media (max-width: 767px) {
	.pc-sign .elementor-heading-title { flex-direction: column; align-items: flex-start; gap: 4px; padding-right: 36px; }
	.pc-sign:nth-child(even) .elementor-heading-title { margin-left: 14px; }
	.pc-sign small { white-space: normal; font-size: 13px; min-width: 0; }
}
@media (prefers-reduced-motion: reduce) { .pc-sign .elementor-heading-title, .pc-sign .elementor-heading-title:hover { transform: none !important; } }

/* Facility icon boxes on the dark band */
.pc-facility .elementor-icon-box-title { color: #fff; font-family: var(--pc-body); font-size: 16px; font-weight: 600; text-transform: none; margin: 0 0 2px; }
.pc-facility .elementor-icon-box-description { font-size: 14px; color: #E7E1D6; }

/* "To confirm" tag (missing rate or guest count) */
.pc-tbc { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; background: #FCE9C9; color: #7A4A0E; padding: 3px 7px; border-radius: 3px; vertical-align: middle; }
.pc-rate .pc-tbc { font-family: var(--pc-body); }

/* ---------- Cabin card (Loop Item template "Cabin card") ---------- */
.pc-loop-card { height: 100%; text-decoration: none; color: inherit; }
.pc-loop-card .pc-loop-img { overflow: hidden; aspect-ratio: 3 / 2; background: var(--pc-sand); }
.pc-loop-card .pc-loop-img img { width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.pc-loop-card:hover .pc-loop-img img { transform: scale(1.06); }
@media (prefers-reduced-motion: reduce) { .pc-loop-card .pc-loop-img img { transition: none; } .pc-loop-card:hover .pc-loop-img img { transform: none; } }
.pc-loop-card .pc-card-rate { margin-top: auto; }
.pc-card-rate .pc-rate, .pc-aside-rate .pc-rate { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; }
.pc-card-rate .pc-rate { border-top: 1px solid var(--pc-line); padding-top: 12px; }
.pc-card-rate .elementor-widget-container p, .pc-aside-rate p { margin: 0; }
.pc-aside-rate .pc-rate b { font-size: 34px; }
.pc-specs-list .elementor-icon-list-icon svg { width: 16px; }

/* ---------- Special card (Loop Item template "Special card") ---------- */
.pc-special-card { height: 100%; text-decoration: none; color: inherit; }
.pc-special-card .pc-special-photo { position: relative; overflow: hidden; }
.pc-special-card .pc-loop-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.pc-special-card:hover .pc-loop-img img { transform: scale(1.06); }
.pc-special-card:hover .elementor-widget-theme-post-title .elementor-heading-title { color: var(--pc-rust); }
.pc-special-card .pc-example-slot { position: absolute; top: 0; left: 0; z-index: 2; }
.pc-special-card .pc-example-slot p { margin: 0; }
.pc-special-card .pc-dates-slot p { margin: 0; }
.pc-special-card .pc-card-body { flex-grow: 1; }
.pc-special-card .pc-view-link { margin-top: auto; }
.pc-view-link .elementor-heading-title { display: inline-block; border-bottom: 2px solid var(--pc-ochre); padding-bottom: 3px; }
.pc-special-card:hover .pc-view-link .elementor-heading-title { color: var(--pc-ochre-dk); }
@media (prefers-reduced-motion: reduce) { .pc-special-card .pc-loop-img img { transition: none; } .pc-special-card:hover .pc-loop-img img { transform: none; } }
.e-loop-nothing-found-message__text { padding: 28px; border: 1px dashed var(--pc-line); margin: 0; }

/* ---------- Thing to Do card (Loop Item template "Thing card") ---------- */
.pc-thing-card { height: 100%; text-decoration: none; color: inherit; }
/* The photo frame keeps its 3:2 sand box even when a place has no photo yet. */
.pc-thing-card .pc-thing-photo { aspect-ratio: 3 / 2; background: var(--pc-sand); }
.pc-thing-card .pc-loop-img, .pc-thing-card .pc-loop-img .elementor-widget-container { height: 100%; }
.pc-thing-card .pc-loop-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.pc-thing-card:hover .pc-loop-img img { transform: scale(1.06); }
.pc-thing-card:hover .elementor-widget-theme-post-title .elementor-heading-title { color: var(--pc-rust); }
.pc-thing-card .pc-view-link { margin-top: auto; }
.pc-thing-card:hover .pc-view-link .elementor-heading-title { color: var(--pc-ochre-dk); }
@media (prefers-reduced-motion: reduce) { .pc-thing-card .pc-loop-img img { transition: none; } .pc-thing-card:hover .pc-loop-img img { transform: none; } }

/* Event card (Loop Item template "Event card") reuses the Thing card styles */
.pc-thing-card .pc-thing-photo { position: relative; }
.pc-thing-card .pc-example-slot { position: absolute; top: 0; left: 0; z-index: 2; }
.pc-thing-card .pc-example-slot p { margin: 0; }

/* ---------- Event row (Loop Item template "Event row", home page What's On) ---------- */
.pc-event-row { text-decoration: none; color: inherit; border-top: 1px solid var(--pc-line); }
.pc-event-rows .e-loop-item:last-child .pc-event-row { border-bottom: 1px solid var(--pc-line); }
.pc-event-row:hover .elementor-widget-theme-post-title .elementor-heading-title { color: var(--pc-rust); }
.pc-event-row .pc-ticket-day .pc-day-text { font-size: 20px; display: block; padding-block: 6px; }
.pc-event-row .pc-example-inline p { margin: 0; }
.pc-event-row .pc-example-inline .pc-tag { position: static; display: inline-block; margin: 0; background: #FCE9C9; color: #7A4A0E; }
.pc-event-row .pc-example-inline:not(:has(.pc-tag)) { display: none; }
.pc-event-row .elementor-widget-text-editor p { margin: 0; }

/* Images that keep the design's proportions inside Elementor Image widgets */
.pc-img-wide img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.pc-img-tall img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
.pc-img-32 img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }

/* ---------- Restaurant: where to eat nearby ---------- */
.pc-option .pc-dist .elementor-heading-title small { font-size: 18px; }
.pc-option .elementor-widget-text-editor p { margin: 0; }
.pc-option a { color: inherit; }
.pc-mapbox { border: 1px solid var(--pc-line); }
.pc-mapbox .elementor-widget-google_maps iframe { display: block; }
.pc-mapcap p { margin: 0; }

/* ---------- Things to Do: bird list chips ---------- */
.pc-birds ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pc-birds li { border: 1px solid var(--pc-line); background: var(--pc-paper); padding: 7px 12px; border-radius: 999px; font-size: 14px; color: var(--pc-ink); }
.pc-birds li:has(strong) { background: var(--pc-gum); border-color: var(--pc-gum); color: #fff; }
.pc-birds li strong { font-weight: 400; }

/* ---------- Cabin page gallery: large photo left, two stacked right ---------- */
.pc-gallery { grid-template-rows: 1fr 1fr; }
.pc-gallery > :first-child { grid-row: 1 / 3; }
.pc-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pc-gallery > *, .pc-gallery .elementor-widget-container { height: 100%; }
.pc-gallery > :first-child img { min-height: 420px; }
.pc-gallery > :not(:first-child) img { aspect-ratio: 3 / 2; }
@media (max-width: 767px) {
	.pc-gallery { grid-template-rows: auto; }
	.pc-gallery > :first-child { grid-row: auto; }
	.pc-gallery > :first-child img { min-height: 0; aspect-ratio: 3 / 2; }
}

/* "What's included" ticklist (ACF cabin_inclusions) */
.pc-ticklist { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; }
.pc-ticklist li { position: relative; padding-left: 24px; font-size: 15px; }
.pc-ticklist li::before { content: ""; position: absolute; left: 2px; top: 6px; width: 10px; height: 5px; border-left: 3px solid var(--pc-gum); border-bottom: 3px solid var(--pc-gum); transform: rotate(-45deg); }
@media (max-width: 520px) { .pc-ticklist { grid-template-columns: 1fr; } }

/* Breadcrumb row in page heroes */
.pc-crumb-row { font-size: 13px; color: #B9B2A6; }
.pc-crumb-row a { color: #E7E1D6; }
.pc-crumb-row p { margin: 0; }
.pc-crumb-row .elementor-heading-title { font-size: 13px; color: #B9B2A6; font-family: var(--pc-body); font-weight: 400; text-transform: none; letter-spacing: 0; }

/* ---------- Single pages (Theme Builder templates) ---------- */
.pc-crumbs { font-size: 13px; color: #B9B2A6; }
.pc-crumbs a { color: #E7E1D6; }
.pc-aside-box { background: var(--pc-sand); padding: 28px; display: flex; flex-direction: column; gap: 16px; }
.pc-aside-box h3 { margin: 0; font-size: 26px; }
.pc-aside-box .pc-btn { align-self: flex-start; }
.pc-price--lg { font-family: var(--pc-display); font-size: 44px; font-weight: 800; color: var(--pc-rust); line-height: 1; }
.pc-kv { display: grid; grid-template-columns: auto 1fr; gap: 10px 20px; font-size: 15px; margin: 0; }
.pc-kv dt { font-weight: 600; color: var(--pc-ink); }
.pc-kv dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.pc-small { font-size: 14px; margin: 0; }
.pc-sticky-aside { position: sticky; top: 110px; }
@media (max-width: 1024px) { .pc-sticky-aside { position: static; } }
.pc-single-image { position: relative; }
.pc-single-image .pc-tag { z-index: 3; }
.pc-single-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.pc-prose { max-width: 68ch; }
.pc-prose p { margin: 0 0 18px; }
.pc-single-extra h3 { font-size: 22px; margin: 8px 0 10px; }
.pc-gallery-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 8px; }
@media (max-width: 600px) { .pc-gallery-2 { grid-template-columns: 1fr; } }

/* ---------- Notice band ---------- */
.pc-notice .elementor-icon { color: var(--pc-rust); }
.pc-notice .elementor-widget-text-editor p { margin: 0; }
.pc-notice .elementor-widget-icon { flex: none; }

/* ---------- Reviews: Trustindex "WP Tripadvisor Review Widgets" ----------
   Home page shows the first three reviews only; the plugin has no setting for this.
   Other pages (e.g. a Reviews page) still show every review and the Load more button. */
.home .ti-widget .ti-reviews-container-wrapper > .ti-review-item:nth-child(n+4) { display: none !important; }
.home .ti-widget .ti-load-more-reviews-container { display: none !important; }
@media (max-width: 900px) {
	.home .ti-widget .ti-reviews-container-wrapper > .ti-review-item { flex: 0 0 100% !important; max-width: 100% !important; }
}

/* ---------- Contact page ---------- */
/* Enquiry form (Elementor Pro Form widget with class pc-form) */
.pc-form .elementor-field-group > label,
.pc-form .elementor-field-label { font-family: var(--pc-body); font-size: 14px; font-weight: 600; color: var(--pc-ink); margin-bottom: 6px; }
.pc-form .elementor-field-textual,
.pc-form .elementor-select-wrapper select { font-family: var(--pc-body); font-size: 16px; color: var(--pc-ink); background: #fff; border: 1px solid #C9BEAC; border-radius: var(--pc-radius); padding: 13px 14px; min-height: 0; }
.pc-form textarea.elementor-field-textual { min-height: 140px; resize: vertical; }
.pc-form .elementor-field-textual:focus,
.pc-form select:focus { outline: 3px solid var(--pc-ochre); outline-offset: 2px; border-color: #C9BEAC; }
.pc-form .elementor-field-type-acceptance .elementor-field-subgroup label { font-size: 15px; font-weight: 400; color: var(--pc-text); }
.pc-form .elementor-field-type-acceptance a { color: var(--pc-ink); text-decoration: underline; }
.pc-form .e-form__buttons .elementor-button { background: transparent !important; color: var(--pc-ink) !important; border: 2px solid var(--pc-ink); border-radius: var(--pc-radius); padding: 16px 26px; font-family: var(--pc-body); font-size: 15px; font-weight: 600; letter-spacing: .6px; text-transform: uppercase; }
.pc-form .e-form__buttons .elementor-button:hover { background: var(--pc-ink) !important; color: #fff !important; }
.pc-form .elementor-message { margin-top: 16px; padding: 14px 16px; border-radius: var(--pc-radius); font-size: 15px; }
.pc-form .elementor-message-success { background: #E3EEE6; color: var(--pc-gum-dk); }
.pc-form .elementor-message::before { display: none; }

/* Details box: phone and email with Copy buttons */
.pc-contact-details .pc-kv { margin: 0; }
.pc-copy-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.pc-copy-row a { font-weight: 600; color: var(--pc-ink); font-size: 17px; overflow-wrap: anywhere; min-width: 0; text-decoration: none; }
.pc-copy { font: 600 12px var(--pc-body); letter-spacing: .08em; text-transform: uppercase; border: 1px solid var(--pc-line); background: var(--pc-paper); padding: 6px 10px; border-radius: 3px; cursor: pointer; color: var(--pc-ink); }
.pc-copy:hover { background: var(--pc-ink); color: #fff; border-color: var(--pc-ink); }

/* ---------- Things to Do: bird photos zoom on hover (same as the cards) ---------- */
.pc-img-32 { overflow: hidden; }
.pc-img-32 img { transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.pc-img-32:hover img { transform: scale(1.06); }
@media (prefers-reduced-motion: reduce) { .pc-img-32 img { transition: none; } .pc-img-32:hover img { transform: none; } }

/* ---------- Card descriptions: max three lines, then "…" ----------
   Thing card (home "Our top picks nearby" and the Things to Do page) and Event card excerpts.
   Change the 3 to show more or fewer lines. */
.pc-thing-card .elementor-widget-text-editor:not(.pc-example-slot),
.pc-thing-card .elementor-widget-text-editor:not(.pc-example-slot) > .elementor-widget-container { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
