/* =========================================================================
   Components — Trip Card, search bar, destination/experience/testimonial
   cards, itinerary timeline, forms, icon chips. Recon Travels (WANDER)
   ========================================================================= */

/* ---------- Trip Card (signature artifact) ---------- */
.trip-card{
	background:#fff; border:1px solid var(--border); border-radius:var(--radius-lg);
	box-shadow:var(--shadow-lg); overflow:hidden; position:relative; max-width:420px;
}
.trip-card::before{
	content:""; position:absolute; top:0; left:0; right:0; height:3px;
	background:var(--molten); filter:blur(2px); opacity:.9;
}
.trip-card .cover{ height:188px; position:relative; background:var(--cover-grad); overflow:hidden; }
.trip-card .sky{ position:absolute; inset:0; background:radial-gradient(circle at 78% 28%,rgba(255,255,255,.85),transparent 26%); }
.trip-card .hills{
	position:absolute; bottom:0; left:0; right:0; height:70px;
	background:linear-gradient(180deg,transparent,rgba(29,30,32,.22));
	clip-path:polygon(0 60%,18% 35%,38% 58%,60% 28%,80% 52%,100% 34%,100% 100%,0 100%);
}
.trip-card .route{ position:absolute; inset:0; width:100%; height:100%; }
.trip-card .route path{ stroke:#fff; stroke-width:2.5; fill:none; stroke-dasharray:6 7; stroke-dashoffset:260; animation:wander-draw 3.4s ease infinite forwards; }
.trip-card .route .pin{ fill:#fff; }
.trip-card .route .plane{ fill:#fff; animation:wander-fly 3.4s ease infinite forwards; transform-box:fill-box; transform-origin:center; }
.trip-card .pbody{ padding:22px 24px; }
.trip-card .where{ font-family:var(--font-display); font-weight:600; font-size:22px; color:var(--ink); }
.trip-card .meta{ color:var(--muted); font-size:14px; margin-top:3px; }
.trip-card .price-row{ display:flex; align-items:center; justify-content:space-between; margin-top:18px; }
.trip-card .price{ font-family:var(--font-display); font-weight:700; font-size:30px; color:var(--ink); }
.trip-card .price span{ font-size:14px; font-weight:500; color:var(--faint); }
.trip-card .book-mini{ height:46px; padding:0 20px; font-size:14px; }

.sun-glow{
	position:absolute; width:520px; height:520px; border-radius:50%;
	background:radial-gradient(circle,var(--accent),transparent 62%);
	filter:blur(90px); opacity:.16; z-index:0; pointer-events:none;
}

.trust-badge{ position:absolute; z-index:2; animation:wander-float 5s ease-in-out infinite; }
.trust-badge.delay-1{ animation-delay:.6s; }
.trust-badge.delay-2{ animation-delay:1.2s; }

/* ---------- Booking search bar ---------- */
.search-bar{
	background:rgba(255,255,255,.88); border:1px solid rgba(29,30,32,.08); border-radius:18px;
	box-shadow:0 24px 70px rgba(29,30,32,.10);
	display:grid; grid-template-columns:1fr; gap:0; padding:22px 22px;
	position:relative; z-index:5;
	-webkit-backdrop-filter:blur(22px); backdrop-filter:blur(22px);
}
.search-field{
	display:flex; align-items:center; gap:17px; height:74px; padding:0 28px;
	border-bottom:1px solid var(--border);
	position:relative;
}
.search-field:last-of-type{ border-bottom:none; }
.search-field .icon{ color:#1d1e20; flex-shrink:0; }
.search-field label{ display:block; font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:#7a7c7f; font-weight:800; line-height:1; }
.sf-control{ width:100%; position:relative; }
.sf-trigger{
	display:block; width:100%; border:none; background:transparent; padding:0; margin-top:8px;
	font-family:inherit; font-size:18px; color:#1d1e20; font-weight:700; line-height:1.2;
	text-align:left; cursor:pointer;
}
.sf-trigger:focus-visible{ outline:2px solid #511e03; outline-offset:6px; border-radius:6px; }
.sf-value{ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.field-chevron{
	position:absolute;
	right:20px;
	top:50%;
	transform:translateY(-50%);
	pointer-events:none;
	color:#1d1e20;
	opacity:0.5;
	display:flex;
	align-items:center;
	justify-content:center;
	transition:opacity 0.25s, transform 0.25s;
}
.search-field:hover .field-chevron{
	opacity:0.8;
}
.search-field.is-open .field-chevron{ opacity:0.9; transform:translateY(-50%) rotate(180deg); }
.search-bar .btn-primary{ width:100%; margin-top:12px; border-radius:10px; font-size:18px; }

/* ---------- Search bar dropdown panels (destination / travelers) ---------- */
.sf-panel{
	position:absolute; top:calc(100% + 16px); left:0; z-index:40; width:320px; max-width:88vw;
	background:#fff; border:1px solid rgba(29,30,32,.08); border-radius:18px;
	box-shadow:0 30px 70px rgba(29,30,32,.18); padding:16px;
	opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-10px) scale(.98); transform-origin:top left;
	transition:opacity .2s var(--ease-out), transform .2s var(--ease-out), visibility .2s;
}
.search-field.is-open .sf-panel{
	opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0) scale(1);
}
.sf-panel-search{
	display:flex; align-items:center; gap:10px; height:46px; padding:0 14px; margin-bottom:10px;
	border:1px solid var(--border); border-radius:12px; color:#7a7c7f;
}
.sf-panel-search-input{
	border:none; background:transparent; outline:none; width:100%; font-size:14px; font-weight:600; color:#1d1e20;
}
.sf-options{ list-style:none; margin:0; padding:0; max-height:260px; overflow-y:auto; }
.sf-option{
	display:flex; align-items:center; justify-content:space-between; gap:10px;
	padding:11px 12px; border-radius:10px; font-size:15px; font-weight:700; color:#1d1e20; cursor:pointer;
}
.sf-option:hover{ background:rgba(81,30,3,.08); }
.sf-option svg{ opacity:0; color:#511e03; flex-shrink:0; }
.sf-option.is-selected{ color:#511e03; }
.sf-option.is-selected svg{ opacity:1; }
.sf-options-empty{ padding:14px 4px; font-size:13px; color:#7a7c7f; text-align:center; }
.sf-stepper-row{
	display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 4px;
	border-bottom:1px solid var(--border);
}
.sf-stepper-row:last-of-type{ border-bottom:none; }
.sf-stepper-copy strong{ display:block; font-size:15px; color:#1d1e20; }
.sf-stepper-copy small{ display:block; font-size:13px; color:#7a7c7f; margin-top:2px; font-weight:600; }
.sf-stepper{ display:flex; align-items:center; gap:14px; }
.sf-step{
	width:32px; height:32px; border-radius:50%; border:1px solid rgba(29,30,32,.16); background:#fff;
	color:#1d1e20; display:flex; align-items:center; justify-content:center; cursor:pointer;
	transition:background .2s, border-color .2s, color .2s, opacity .2s;
}
.sf-step:hover:not(:disabled){ background:#511e03; border-color:#511e03; color:#fff; }
.sf-step:disabled{ opacity:.35; cursor:not-allowed; }
.sf-step-count{ min-width:20px; text-align:center; font-size:16px; font-weight:800; color:#1d1e20; }
.sf-panel-apply{ width:100%; margin-top:14px; height:48px; border-radius:12px; font-size:15px; }

/* ---------- Date picker modal ---------- */
.sf-modal{
	position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center;
	opacity:0; visibility:hidden; pointer-events:none; transition:opacity .25s var(--ease-out), visibility .25s;
}
.sf-modal.is-open{ opacity:1; visibility:visible; pointer-events:auto; }
.sf-modal-backdrop{ position:absolute; inset:0; background:rgba(18,25,35,.52); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
.sf-modal-panel{
	position:relative; z-index:1; width:min(94vw,720px); max-height:88vh; overflow-y:auto;
	background:#fff; border-radius:24px; box-shadow:0 40px 100px rgba(15,20,28,.35);
	padding:26px 28px 22px; transform:translateY(14px) scale(.98); opacity:0;
	transition:transform .3s var(--ease-spring), opacity .3s var(--ease-spring);
}
.sf-modal.is-open .sf-modal-panel{ transform:translateY(0) scale(1); opacity:1; }
.sf-modal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.sf-modal-head h3{ font-family:var(--font-display); font-size:20px; color:#1d1e20; }
.sf-modal-close{
	width:38px; height:38px; border-radius:50%; border:1px solid var(--border); background:#fff; color:#1d1e20;
	display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0;
}
.sf-modal-close:hover{ background:#f4f4f4; }
.sf-calendar{ display:flex; align-items:flex-start; gap:8px; }
.sf-cal-nav{
	width:38px; height:38px; border-radius:50%; border:1px solid var(--border); background:#fff; color:#1d1e20;
	display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; margin-top:4px;
}
.sf-cal-nav:hover{ background:#f4f4f4; }
.sf-cal-nav:disabled{ opacity:.3; cursor:not-allowed; }
.sf-cal-months{ flex:1; display:grid; grid-template-columns:1fr 1fr; gap:24px; min-width:0; }
.sf-cal-month-head{ text-align:center; font-weight:800; font-size:15px; color:#1d1e20; margin-bottom:10px; }
.sf-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.sf-cal-dow{ text-align:center; font-size:11px; font-weight:800; color:#7a7c7f; text-transform:uppercase; padding-bottom:6px; }
.sf-cal-day{
	position:relative; height:38px; display:flex; align-items:center; justify-content:center;
	font-size:13px; font-weight:700; color:#1d1e20; border:none; background:none; cursor:pointer; border-radius:10px;
}
.sf-cal-day:disabled{ color:#d1d5db; cursor:not-allowed; }
.sf-cal-day.is-empty{ visibility:hidden; pointer-events:none; }
.sf-cal-day:not(:disabled):not(.is-empty):hover{ background:rgba(81,30,3,.12); }
.sf-cal-day.is-start,.sf-cal-day.is-end{ background:#511e03; color:#fff; border-radius:10px; }
.sf-cal-day.is-in-range{ background:rgba(81,30,3,.16); border-radius:0; }
.sf-cal-day.is-today::after{
	content:""; position:absolute; bottom:5px; left:50%; width:4px; height:4px; border-radius:50%;
	background:#511e03; transform:translateX(-50%);
}
.sf-cal-day.is-start.is-today::after,.sf-cal-day.is-end.is-today::after{ background:#fff; }
.sf-modal-foot{
	display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:20px;
	padding-top:18px; border-top:1px solid var(--border);
}
.sf-modal-summary{ font-size:14px; font-weight:700; color:#1d1e20; }
.sf-modal-actions{ display:flex; align-items:center; gap:14px; flex-shrink:0; }
.sf-modal-clear{ background:none; border:none; font-size:14px; font-weight:800; color:#7a7c7f; cursor:pointer; padding:0; }
.sf-modal-clear:hover{ color:#1d1e20; }
.sf-modal-apply{ height:46px; padding:0 22px; border-radius:11px; font-size:15px; }
.sf-modal-apply:disabled{ opacity:.45; cursor:not-allowed; }
@media(max-width:620px){
	.sf-cal-months{ grid-template-columns:1fr; }
	.sf-modal-panel{ padding:22px 18px 18px; }
	.sf-modal-foot{ flex-direction:column; align-items:stretch; }
	.sf-modal-actions{ justify-content:space-between; }
}

/* Dates picker as an anchored dropdown under the field (single compact month) */
.sf-panel.sf-panel--dates{ width:340px; max-width:92vw; padding:16px; }
.sf-panel--dates .sf-calendar{ gap:4px; align-items:center; }
.sf-panel--dates .sf-cal-months{ grid-template-columns:1fr; gap:0; }
.sf-panel--dates .sf-cal-nav{ width:34px; height:34px; margin-top:0; }
.sf-panel--dates .sf-cal-day{ height:36px; }
.sf-panel--dates .sf-modal-foot{ margin-top:14px; padding-top:14px; }
@media(max-width:760px){
	.sf-panel.sf-panel--dates{ width:min(92vw,340px); }
	.search-field.is-open .sf-panel.sf-panel--dates{ transform:translate(-50%,0) scale(1); }
	.sf-panel--dates .sf-cal-day{ height:40px; font-size:14px; }
	.sf-panel--dates .sf-modal-foot{ flex-direction:column; align-items:stretch; gap:10px; }
	.sf-panel--dates .sf-modal-actions{ justify-content:space-between; }
	.sf-panel--dates .sf-modal-apply{ flex:1; }
}

.hero-proof-grid{
	display:grid; grid-template-columns:repeat(4,1fr); gap:0;
	max-width:1050px; margin:34px auto 0; color:#1d1e20;
}
.proof-item{
	display:grid; grid-template-columns:auto 1fr; column-gap:18px; row-gap:3px;
	padding:0 34px; align-items:center; border-right:1px solid rgba(29,30,32,.10);
}
.proof-item:last-child{ border-right:none; }
.proof-item > span{
	grid-row:1 / span 2; color:#511e03; display:flex; align-items:center; justify-content:center;
}
.proof-item strong{ display:block; font-size:15px; line-height:1; letter-spacing:.08em; text-transform:uppercase; font-weight:900; }
.proof-item small{ color:#5c5d5f; font-size:13px; line-height:1.35; font-weight:600; }
@media(max-width:980px){
	.hero-proof-grid{ grid-template-columns:1fr 1fr; gap:22px 0; }
	.proof-item:nth-child(2){ border-right:none; }
}
@media(max-width:760px){
	.search-bar{ padding:10px; }
	.search-field{ padding:0 16px; height:64px; }
	.sf-trigger{ font-size:16px; }
	.sf-panel{ width:280px; left:50%; transform:translate(-50%,-10px) scale(.98); transform-origin:top center; }
	.search-field.is-open .sf-panel{ transform:translate(-50%,0) scale(1); }
	.hero-proof-grid{ grid-template-columns:1fr; gap:16px; margin-top:24px; }
	.proof-item{ border-right:none; padding:0 8px; }
}

/* ---------- Destination card ---------- */
.dest-card{
	background:#fff; border:1px solid var(--border); border-radius:var(--radius-lg);
	overflow:hidden; box-shadow:var(--shadow-md);
	transition:transform .3s,box-shadow .3s,border-color .3s; display:block;
}
.dest-card:hover{ transform:translateY(-6px); border-color:var(--border-warm); box-shadow:0 30px 60px rgba(29,30,32,.12); }
.dest-card .photo{ position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--cover-grad); }
.dest-card .photo img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.dest-card:hover .photo img{ transform:scale(1.05); }
.dest-card .photo .label{ position:absolute; left:18px; right:18px; bottom:14px; color:#fff; z-index:2; }
.dest-card .photo .label .name{ font-family:var(--font-display); font-weight:700; font-size:19px; }
.dest-card .photo .label .country{ font-size:13px; font-weight:700; color:var(--accent); margin-top:2px; }
.dest-card .body{ padding:18px 20px 22px; }
.dest-card .row{ display:flex; align-items:center; justify-content:space-between; margin-top:10px; }
.dest-card .from{ color:var(--muted); font-size:14px; }
.dest-card .from b{ color:var(--ink); font-family:var(--font-display); font-size:17px; }
.dest-card .rating{ display:flex; align-items:center; gap:4px; font-size:13px; color:var(--faint); }
.dest-card .rating .star{ color:var(--star); }
.dest-card-pin{
	position:absolute; left:14px; top:14px; z-index:2; width:32px; height:32px; border-radius:50%;
	background:var(--molten); color:#fff; display:flex; align-items:center; justify-content:center;
	box-shadow:0 8px 18px rgba(81,30,3,.4);
}

/* ---------- Destinations: full-width 4-across, 2-row photo grid ---------- */
.dest{ position:relative; overflow:hidden; }
.dest-bg-deco{
	position:absolute; right:-10px; bottom:-10px; width:260px; height:auto; z-index:0; pointer-events:none;
	fill:var(--accent-deep); stroke:var(--accent-deep); opacity:.07;
}
.dest-cards-row{ position:relative; z-index:1; display:grid; grid-template-columns:1fr; gap:22px; }
@media(min-width:560px){ .dest-cards-row{ grid-template-columns:1fr 1fr; } }
@media(min-width:980px){ .dest-cards-row{ grid-template-columns:repeat(4,1fr); } }

.dest-cta{
	position:relative; z-index:1; display:inline-flex; align-items:center; gap:12px; padding:17px 28px;
	border-radius:var(--radius-pill); background:var(--molten); color:#fff; font-weight:800; font-size:16px;
	box-shadow:var(--shadow-btn); transition:transform .25s var(--ease-spring), box-shadow .25s;
}
.dest-cta:hover{ transform:translateY(-3px); box-shadow:0 24px 50px rgba(81,30,3,.42); }
@media(max-width:480px){ .dest-bg-deco{ width:160px; } }

/* photo-less / illustrated cover fallback (used until real photos are uploaded) */
.cover-art{ position:relative; width:100%; height:100%; background:var(--cover-grad); overflow:hidden; }
.cover-art .sky{ position:absolute; inset:0; background:radial-gradient(circle at 75% 25%,rgba(255,255,255,.7),transparent 30%); }
.cover-art .hills{
	position:absolute; bottom:0; left:0; right:0; height:46%;
	background:rgba(29,30,32,.25);
	clip-path:polygon(0 55%,15% 30%,32% 52%,50% 22%,68% 48%,84% 26%,100% 44%,100% 100%,0 100%);
}
.cover-art .acacia{ position:absolute; bottom:6%; right:10%; width:30%; opacity:.55; }
.cover-art .balloon{ position:absolute; top:14%; left:12%; width:13%; opacity:.85; }

/* ---------- Experience / feature card ---------- */
.feature-card{ background:#fff; border:1px solid var(--border); border-radius:var(--radius-lg); padding:28px; box-shadow:var(--shadow-md); }
.feature-card .icon-chip{
	width:44px; height:44px; border-radius:12px; background:var(--accent-soft);
	display:flex; align-items:center; justify-content:center; color:var(--accent); margin-bottom:18px;
}
.feature-card h3{ font-size:19px; margin-bottom:8px; }
.feature-card p{ color:var(--muted); font-size:15px; line-height:1.6; }

/* ---------- How it works: asymmetric heading + connected step rail ---------- */
.how-eyebrow{ gap:10px; }
.how-eyebrow::before{ display:none; }
.how-eyebrow svg{ color:var(--accent); }

.how{ position:relative; overflow:hidden; }
.how-grid{ display:grid; grid-template-columns:1fr; gap:52px; }
@media(min-width:920px){ .how-grid{ grid-template-columns:0.92fr 1.08fr; gap:80px; align-items:start; } }

.how-intro .h-section{ margin-top:18px; }
.how-intro .lede{ margin-top:20px; }
.how-cta{ margin-top:30px; }
@media(min-width:920px){ .how-intro{ position:sticky; top:118px; } }

/* The right rail: numbered markers joined by a dashed vertical line. */
.how-steps{ position:relative; list-style:none; margin:0; padding:0; }
.how-step{ position:relative; display:flex; gap:26px; padding-bottom:44px; }
.how-step:last-child{ padding-bottom:0; }

.how-step-rail{ position:relative; flex:0 0 auto; }
.how-step-num{
	position:relative; z-index:1; display:flex; align-items:center; justify-content:center;
	width:62px; height:62px; border-radius:50%; font-family:var(--font-display); font-weight:700; font-size:21px; color:#fff;
	background:radial-gradient(circle at 34% 26%,#faf3b4,#511e03 52%,#511e03 100%);
	box-shadow:0 12px 26px rgba(81,30,3,.36),inset 0 2px 4px rgba(255,255,255,.55);
	transition:transform .35s var(--ease-spring);
}
/* dashed connector dropping to the next marker */
.how-step:not(:last-child) .how-step-rail::after{
	content:""; position:absolute; left:50%; top:62px; bottom:-44px; width:2px; transform:translateX(-50%);
	background-image:linear-gradient(var(--border-warm) 0 6px,transparent 6px 13px);
	background-size:2px 13px; background-repeat:repeat-y;
}

.how-step-body{ padding-top:7px; }
.how-step-head{ display:flex; align-items:center; gap:12px; }
.how-step-icon{
	width:38px; height:38px; border-radius:11px; flex-shrink:0;
	display:flex; align-items:center; justify-content:center; color:var(--accent-deep);
	background:var(--accent-soft); transition:background .3s,color .3s,transform .3s;
}
.how-step-body h3{ font-size:21px; }
.how-step-body p{ color:var(--muted); font-size:15.5px; line-height:1.65; margin-top:10px; max-width:46ch; }

.how-step:hover .how-step-num{ transform:scale(1.06) rotate(-4deg); }
.how-step:hover .how-step-icon{ background:var(--molten); color:#fff; transform:translateY(-2px); }

@media(max-width:480px){
	.how-step{ gap:18px; padding-bottom:36px; }
	.how-step-num{ width:54px; height:54px; font-size:19px; }
	.how-step:not(:last-child) .how-step-rail::after{ top:54px; bottom:-36px; }
	.how-step-body h3{ font-size:19px; }
}

/* ---------- Itinerary rail (single-tour.php real day-by-day breakdown) ---------- */
.itinerary{ position:relative; }
.itinerary .rail-track{ position:absolute; top:0; bottom:0; left:23px; width:2px; background:var(--border); }
.itinerary .rail-fill{ position:absolute; top:0; left:23px; width:2px; height:0; background:var(--molten); }
.itinerary-day{ position:relative; padding:0 0 40px 56px; }
.itinerary-day:last-child{ padding-bottom:4px; }
.itinerary-day .node{
	position:absolute; left:18px; top:4px; width:12px; height:12px; border-radius:50%;
	background:var(--molten); box-shadow:0 0 0 4px var(--accent-soft);
}
.itinerary-day .day-meta{ font-family:var(--font-mono); font-size:13px; color:var(--faint); letter-spacing:.04em; }
.itinerary-day .day-title{ font-family:var(--font-display); font-weight:600; font-size:18px; margin-top:4px; }
.itinerary-day p{ color:var(--muted); font-size:15px; margin-top:8px; line-height:1.6; }

/* ---------- Front-page sample itinerary (green accent, distinct from the rail above) ---------- */
.badge-pill{
	display:inline-flex; align-items:center; gap:8px; padding:8px 16px; border-radius:var(--radius-pill);
	font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
}
.badge-pill .dot{ width:7px; height:7px; border-radius:50%; background:currentColor; }
.badge-pill--accent{ background:var(--accent-soft); color:var(--accent-deep); }

.itin-heading{ position:relative; margin-top:18px; }
.itin-spark{ width:18px; height:18px; color:var(--accent); stroke:currentColor; stroke-width:1.6; stroke-linecap:round; fill:none; vertical-align:top; margin-left:2px; }
.itin-heading-accent{ position:relative; display:inline-block; color:var(--accent-deep); }
.itin-heading-accent::after{
	content:""; position:absolute; left:0; right:0; bottom:-12px; height:10px;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 10'%3E%3Cpath d='M1 7c4-7 8 7 12 0s8 7 12 0 8 7 12 0 8 7 12 0' stroke='%23E67E22' stroke-width='2.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat:repeat-x; background-size:60px 10px;
}

.itin-grid{ display:grid; grid-template-columns:1fr; }
.itin-intro,.itin-days{ min-width:0; }
.itin-days{ margin-top:36px; }
@media(min-width:980px){
	.itin-grid{ grid-template-columns:1fr 1fr; gap:0 64px; align-items:start; }
	.itin-intro{ grid-column:1; grid-row:1; }
	.itin-days{ grid-column:1; grid-row:2; }
	.itin-photo{ grid-column:2; grid-row:2; align-self:start; }
}

.itin-timeline{ position:relative; margin-top:0; }
.itin-track{ position:absolute; left:27px; top:28px; bottom:28px; width:2px; background:rgba(81,30,3,.22); overflow:hidden; }
.itin-track-fill{ position:absolute; left:0; top:0; width:100%; height:0; background:var(--molten); transition:height .55s var(--ease-spring); }
.itin-row{ position:relative; display:flex; align-items:flex-start; margin-bottom:14px; }
.itin-row:last-child{ margin-bottom:0; }
.itin-icon-col{ position:relative; z-index:1; flex:0 0 56px; display:flex; justify-content:center; }
.itin-icon{
	width:56px; height:56px; border-radius:50%; background:#fff; border:1px solid var(--border);
	box-shadow:var(--shadow-sm); display:flex; align-items:center; justify-content:center; color:var(--accent-deep);
	flex-shrink:0; transition:background .35s var(--ease-spring), color .35s var(--ease-spring), border-color .35s, box-shadow .35s, transform .35s var(--ease-spring);
}
.itin-connector{ position:relative; width:20px; flex:0 0 20px; height:6px; margin-top:25px; }
.itin-connector::before{ content:""; position:absolute; left:0; right:6px; top:50%; height:2px; background:var(--accent); opacity:.7; transform:translateY(-50%); transition:opacity .3s, background .3s; }
.itin-connector::after{ content:""; position:absolute; right:0; top:50%; width:6px; height:6px; border-radius:50%; background:var(--accent); opacity:.7; transform:translateY(-50%); transition:opacity .3s, background .3s, transform .3s var(--ease-spring); }
.itin-card{
	flex:1; min-width:0; width:100%; appearance:none; border:1px solid var(--border); border-radius:16px;
	background:#fff; padding:16px 20px; box-shadow:var(--shadow-sm); color:inherit; cursor:pointer; font:inherit;
	text-align:left; transition:background .35s, border-color .35s, box-shadow .35s, transform .35s var(--ease-spring);
}
.itin-card:hover{ border-color:var(--border-warm); box-shadow:0 16px 34px rgba(29,30,32,.09); transform:translateY(-1px); }
.itin-card:focus-visible{ outline:3px solid rgba(81,30,3,.28); outline-offset:4px; }
.itin-day-pill{
	display:inline-flex; padding:4px 10px; border-radius:var(--radius-pill); background:var(--accent-soft);
	color:var(--accent-deep); font-size:11px; font-weight:800; letter-spacing:.05em;
}
.itin-card-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-top:8px; }
.itin-card-title{ flex:1; font-family:var(--font-display); font-weight:700; font-size:17px; line-height:1.2; color:var(--ink); }
.itin-card-indicator{
	width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center;
	background:rgba(81,30,3,.09); color:var(--accent-deep); flex-shrink:0; transform:rotate(-90deg);
	transition:background .35s, color .35s, transform .35s var(--ease-spring);
}
.itin-card-panel{
	display:block; max-height:0; margin-top:0; overflow:hidden; opacity:0; transform:translateY(-8px);
	transition:max-height .42s var(--ease-out), margin-top .42s var(--ease-out), opacity .26s var(--ease-out), transform .42s var(--ease-out);
}
.itin-card-panel span{ display:block; color:var(--muted); font-size:14.5px; line-height:1.55; }
.itin-row.is-active .itin-icon{
	background:var(--molten); border-color:transparent; color:#fff; box-shadow:0 16px 34px rgba(81,30,3,.34);
	transform:scale(1.04);
}
.itin-row.is-active .itin-connector::before,.itin-row.is-active .itin-connector::after{ background:var(--accent-deep); opacity:1; }
.itin-row.is-active .itin-connector::after{ transform:translateY(-50%) scale(1.35); }
.itin-row.is-active .itin-card{
	background:linear-gradient(180deg,#fff 0%,#f8faf6 100%); border-color:var(--border-warm);
	box-shadow:0 22px 48px rgba(29,30,32,.12); transform:translateY(-2px);
}
.itin-row.is-active .itin-card-indicator{ background:var(--molten); color:#fff; transform:rotate(0deg); }
.itin-row.is-active .itin-card-panel{ max-height:120px; margin-top:8px; opacity:1; transform:translateY(0); }

.itin-cta-pill{
	display:inline-flex; align-items:center; gap:10px; margin-top:30px; padding:13px 22px 13px 8px;
	border-radius:var(--radius-pill); background:#fff; border:1px solid var(--border); box-shadow:var(--shadow-sm);
	font-weight:800; font-size:15px; color:var(--ink); transition:background .25s,transform .25s;
}
.itin-cta-pill:hover{ background:var(--bg-soft); transform:translateY(-1px); }
.itin-cta-pill .icon{
	width:32px; height:32px; border-radius:50%; background:var(--accent-soft); color:var(--accent-deep);
	display:flex; align-items:center; justify-content:center; flex-shrink:0;
}

.itin-photo{ position:relative; margin-top:48px; border-radius:28px; overflow:hidden; box-shadow:var(--shadow-lg); aspect-ratio:4/3.4; background:var(--cover-grad); }
.itin-photo-image{
	position:absolute; inset:0; opacity:0; transform:translateY(22px) scale(1.04); pointer-events:none;
	transition:opacity .55s var(--ease-out), transform .75s var(--ease-spring);
}
.itin-photo-image.is-active{ opacity:1; transform:translateY(0) scale(1); z-index:1; }
.itin-photo img{ width:100%; height:100%; object-fit:cover; }
.itin-photo-badge{
	position:absolute; top:22px; right:22px; max-width:230px; display:flex; gap:12px; align-items:flex-start;
	background:rgba(248,250,246,.92); border-radius:18px; padding:16px 18px; box-shadow:var(--shadow-md);
	-webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); z-index:2;
}
.itin-photo-badge.is-changing{ animation:itin-badge-change .38s var(--ease-out) both; }
.itin-photo-badge .leaf{
	width:30px; height:30px; border-radius:9px; background:var(--accent-soft); color:var(--accent-deep);
	display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.itin-photo-badge strong{ display:block; font-size:13px; letter-spacing:.03em; text-transform:uppercase; color:var(--ink); }
.itin-photo-badge p{ margin-top:4px; font-size:13px; color:var(--muted); line-height:1.4; }
@media(max-width:760px){
	.itin-card{ padding:14px 16px; }
	.itin-photo-badge{ max-width:200px; padding:13px 14px; }
}
@media(min-width:980px){ .itin-photo{ margin-top:36px; } }
@media(max-width:480px){
	.itin-icon{ width:46px; height:46px; }
	.itin-icon-col{ flex-basis:46px; }
	.itin-track{ left:22px; top:23px; bottom:23px; }
	.itin-connector{ width:14px; flex-basis:14px; margin-top:20px; }
	.itin-card-title{ font-size:16px; }
	.itin-card{ padding:14px; }
	.itin-card-indicator{ width:26px; height:26px; }
}

/* ---------- Testimonials (center card featured, stat band, bg ornaments) ---------- */
.section-divider{ display:flex; align-items:center; justify-content:center; gap:8px; margin-top:18px; }
.section-divider span{ width:46px; height:1px; background:var(--border-warm); }
.section-divider i{ width:6px; height:6px; background:var(--accent); transform:rotate(45deg); display:inline-block; flex-shrink:0; }

.testi{ position:relative; overflow:hidden; }
.testi-bg{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.testi-landscape{ position:absolute; left:0; bottom:0; width:46%; max-width:520px; height:auto; fill:var(--accent-deep); opacity:.06; }
.seal{ color:var(--ink); }
.testi-seal{ position:absolute; right:4%; bottom:6%; opacity:.07; }
@media(max-width:760px){ .testi-landscape{ width:70%; } .testi-seal{ display:none; } }

.testi-grid{ position:relative; z-index:1; display:grid; grid-template-columns:1fr; gap:24px; align-items:center; }
@media(min-width:860px){ .testi-grid{ grid-template-columns:1fr 1.08fr 1fr; gap:22px; } }

.testimonial{
	position:relative; background:#fff; border:1px solid var(--border); border-radius:var(--radius-lg);
	padding:30px; box-shadow:var(--shadow-sm);
}
.testimonial .stars{ color:var(--star); font-size:15px; letter-spacing:2px; }
.testimonial blockquote{ margin:14px 0 0; font-size:17px; color:var(--text); line-height:1.55; }
.testimonial .who{ display:flex; align-items:center; gap:12px; margin-top:20px; }
.testimonial .avatar{
	width:40px; height:40px; border-radius:50%; background:var(--molten); color:#fff;
	display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:600; font-size:15px;
	flex-shrink:0;
}
.testimonial .who .name{ font-weight:600; color:var(--ink); font-size:14px; }
.testimonial .who .trip{ color:var(--faint); font-size:13px; }

.testimonial--featured{
	border-color:var(--border-warm); box-shadow:var(--shadow-lg); padding:38px 32px 32px;
	transform:scale(1.04);
}
@media(max-width:860px){ .testimonial--featured{ transform:none; } }
.testimonial--featured blockquote{
	font-family:var(--font-serif); font-style:italic; font-size:22px; font-weight:500; line-height:1.4; color:var(--ink);
}
.quote-badge{
	position:absolute; left:50%; top:0; transform:translate(-50%,-50%); width:44px; height:44px; border-radius:50%;
	background:#fff; border:1px solid var(--border-warm); color:var(--faint); box-shadow:var(--shadow-md);
	display:flex; align-items:center; justify-content:center;
}

.testi-stats{
	position:relative; z-index:1; display:flex; flex-wrap:wrap; justify-content:center; gap:0;
	max-width:760px; margin:56px auto 0; padding:26px 12px; background:#fff; border:1px solid var(--border);
	border-radius:var(--radius-lg); box-shadow:var(--shadow-sm);
}
.testi-stat{
	display:flex; align-items:center; gap:14px; padding:8px 36px; flex:1 1 200px; justify-content:center;
	border-right:1px solid var(--border);
}
.testi-stat:last-child{ border-right:none; }
.testi-stat .icon{ color:var(--accent-deep); flex-shrink:0; display:flex; }
.testi-stat strong{ display:block; font-family:var(--font-display); font-weight:700; font-size:26px; color:var(--ink); line-height:1; }
.testi-stat small{ display:block; color:var(--muted); font-size:13px; margin-top:4px; font-weight:600; }
@media(max-width:640px){
	.testi-stat{ flex-basis:100%; border-right:none; border-bottom:1px solid var(--border); padding:14px 8px; }
	.testi-stat:last-child{ border-bottom:none; }
}

/* ---------- Forms / inputs ---------- */
.field{ margin-bottom:18px; }
.field label{ display:block; font-size:14px; font-weight:600; color:var(--ink); margin-bottom:7px; }
.input,textarea.input,select.input{
	width:100%; background:#fff; border:1px solid var(--border-2); border-radius:var(--radius-md);
	height:52px; padding:0 16px; font-size:15px; color:var(--ink); box-shadow:0 8px 20px rgba(29,30,32,.04);
}
textarea.input{ height:auto; padding:14px 16px; min-height:140px; resize:vertical; }
.input::placeholder{ color:var(--faint); }
.input:focus,select.input:focus,textarea.input:focus{
	border-color:var(--accent); box-shadow:0 0 0 4px var(--accent-soft); outline:none;
}
.field-row{ display:grid; gap:18px; }
@media(min-width:680px){ .field-row{ grid-template-columns:1fr 1fr; } }
.form-note{ font-size:13px; color:var(--faint); margin-top:10px; }
.form-success{ background:rgba(39,174,96,.1); border:1px solid rgba(39,174,96,.3); color:#1c7a44; border-radius:var(--radius-md); padding:16px 18px; font-size:15px; margin-bottom:22px; }
.form-error{ background:rgba(192,57,43,.08); border:1px solid rgba(192,57,43,.25); color:var(--pomegranate); border-radius:var(--radius-md); padding:16px 18px; font-size:15px; margin-bottom:22px; }

/* honeypot field — hidden from humans, visible to bots */
.hp-field{ position:absolute; left:-9999px; top:-9999px; opacity:0; height:0; width:0; overflow:hidden; }

/* ---------- Breadcrumbs ---------- */
.breadcrumbs{ font-size:13px; color:var(--faint); display:flex; gap:6px; flex-wrap:wrap; }
.breadcrumbs a{ color:var(--muted); }
.breadcrumbs a:hover{ color:var(--accent); }

/* ---------- Pagination ---------- */
.pagination{ display:flex; gap:8px; justify-content:center; margin-top:48px; flex-wrap:wrap; }
.pagination a,.pagination span{
	display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:42px; padding:0 10px;
	border-radius:10px; border:1px solid var(--border); font-size:14px; font-weight:600; color:var(--ink); background:#fff;
}
.pagination .current{ background:var(--molten); color:#fff; border-color:transparent; }
.pagination a:hover{ border-color:var(--accent); }
