/*
Theme Name: Iconic Tours
Theme URI: https://weareiciglobal.com/
Author: We Are ICI Global
Author URI: https://weareiciglobal.com/
Description: A modern tourism theme designed for the Toureli booking and operations platform.
Version: 0.4.0
WPVibe: yes
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: iconic-tours
*/

:root {
	--iconic-navy: #082f4f;
	--iconic-navy-deep: #04243d;
	--iconic-teal: #36d6d1;
	--iconic-gold: #f5b942;
	--iconic-ink: #172334;
	--iconic-muted: #667085;
	--iconic-line: #e7e9ed;
	--iconic-sand: #f6f3ec;
	--iconic-white: #fff;
	--iconic-radius: 18px;
	--iconic-shadow: 0 18px 55px rgba(8, 47, 79, .1);
	--iconic-shell: 1200px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--iconic-white);
	color: var(--iconic-ink);
	font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; }
a { color: var(--iconic-navy); text-decoration-thickness: .08em; text-underline-offset: .18em; }
h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .7em;
	color: var(--iconic-navy-deep);
	font-weight: 750;
	letter-spacing: -.035em;
	line-height: 1.12;
}
p { margin: 0 0 1.25rem; }

.site-shell { width: min(calc(100% - 40px), var(--iconic-shell)); margin-inline: auto; }
.site-main { min-height: 55vh; }
.iconic-builder-page > .elementor,.iconic-builder-page > .wp-block-cover,.iconic-builder-page > .wp-block-group.alignfull{margin-block:0}
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus {
	top: 8px; left: 8px; z-index: 100000;
	width: auto; height: auto; padding: 12px 16px; margin: 0;
	clip: auto; background: #fff; color: var(--iconic-navy); font-weight: 700;
}

.site-header {
	position: relative;
	z-index: 20;
	border-bottom: 1px solid rgba(8, 47, 79, .08);
	background: rgba(255, 255, 255, .94);
	backdrop-filter: blur(16px);
}
.site-header__inner { display: flex; min-height: 82px; align-items: center; gap: 30px; }
.site-branding { margin-right: auto; }
.custom-logo { display:block; width:clamp(210px, 25vw, 330px); max-width:100%; height:auto; max-height:96px; object-fit:contain; }
.site-branding { flex:0 1 330px; min-width:0; }
.custom-logo-link { display:block; width:100%; }
.site-header__inner { flex-wrap:nowrap; }
.gg-nav { display:flex; align-items:center; gap:20px; }
.gg-nav a { white-space:nowrap; text-decoration:none; font-weight:650; font-size:14px; }
.gg-mobile { display:none; }
@media (max-width:1100px) { .site-header__inner { gap:18px; } .gg-header-cta { display:none; } }
@media (max-width:900px) { .gg-nav { display:none; } .gg-mobile { display:block; margin-left:auto; } .site-branding { flex-basis:280px; } }
@media (max-width:480px) { .site-branding { flex:0 1 230px; } .custom-logo { width:230px; max-height:72px; } .site-header__inner { min-height:86px; gap:12px; } }
.site-branding__name { display: inline-flex; align-items: center; gap: 11px; color: var(--iconic-navy); font-size: 21px; font-weight: 800; text-decoration: none; }
.site-branding__mark {
	display: grid; width: 40px; height: 40px; place-items: center;
	border-radius: 12px; background: var(--iconic-navy); color: var(--iconic-teal); font-size: 21px;
}
.primary-nav__menu, .footer-nav__menu { display: flex; align-items: center; gap: 26px; margin: 0; padding: 0; list-style: none; }
.primary-nav a { color: var(--iconic-ink); font-size: 14px; font-weight: 650; text-decoration: none; }
.primary-nav a:hover, .primary-nav a:focus { color: var(--iconic-navy); }

.button {
	display: inline-flex; min-height: 50px; align-items: center; justify-content: center;
	padding: 12px 22px; border: 1px solid var(--iconic-navy); border-radius: 10px;
	background: var(--iconic-navy); color: #fff; font-weight: 750; text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.button:hover, .button:focus { transform: translateY(-2px); background: var(--iconic-navy-deep); color: #fff; box-shadow: 0 10px 25px rgba(8, 47, 79, .18); }
.button--small { min-height: 42px; padding: 9px 17px; font-size: 14px; }
.text-link { color: var(--iconic-navy); font-weight: 750; text-decoration: none; }
.text-link span { display: inline-block; margin-left: 5px; transition: transform .2s ease; }
.text-link:hover span, .text-link:focus span { transform: translateX(4px); }
.eyebrow { margin: 0 0 14px; color: #176d72; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.hero { overflow: hidden; background: linear-gradient(135deg, #f5faf9 0%, #fff 48%, #f8f2e7 100%); }
.hero__grid { display: grid; min-height: 610px; grid-template-columns: minmax(0, 1.05fr) minmax(390px, .95fr); align-items: center; gap: 60px; padding-block: 62px; }
.hero__content h1 { max-width: 690px; margin-bottom: 20px; font-size: clamp(2.75rem, 5.4vw, 4.8rem); letter-spacing: -.06em; }
.hero__lead { max-width: 620px; color: #4f5d6d; font-size: clamp(1.04rem, 1.8vw, 1.2rem); }
.hero__actions { display: flex; align-items: center; gap: 22px; margin-top: 32px; }
.trust-list { display: flex; flex-wrap: wrap; gap: 22px; margin: 34px 0 0; padding: 0; color: var(--iconic-muted); font-size: 13px; font-weight: 650; list-style: none; }
.trust-list li::before { margin-right: 7px; color: #14866d; content: "✓"; font-weight: 900; }
.hero__visual { position: relative; }
.hero__visual::before { position: absolute; inset: 10% -12% -12% 20%; border-radius: 50%; background: rgba(54, 214, 209, .2); content: ""; filter: blur(2px); }
.hero__image-card {
	position: relative; display: flex; min-height: 465px; flex-direction: column; justify-content: flex-end;
	overflow: hidden; padding: 38px; border-radius: 34px;
	background: radial-gradient(circle at 72% 25%, rgba(245, 185, 66, .96) 0 7%, transparent 7.4%), linear-gradient(160deg, #0f5b6c 0%, #082f4f 54%, #041c30 100%);
	box-shadow: 0 35px 80px rgba(8, 47, 79, .25); color: #fff;
}
.hero__image-card::before { position: absolute; top: 15%; right: 16%; width: 130px; height: 130px; border: 2px solid rgba(255,255,255,.23); border-radius: 50%; content: ""; }
.hero__image-card::after { position: absolute; right: -12%; bottom: -13%; width: 330px; height: 330px; border: 36px solid rgba(54, 214, 209, .18); border-radius: 50%; content: ""; }
.hero__image-card p { position: relative; z-index: 2; max-width: 280px; margin: 0; font-size: 28px; font-weight: 750; line-height: 1.25; }
.hero__pin { position: absolute; top: 82px; right: 84px; z-index: 2; color: var(--iconic-gold); font-size: 42px; }
.hero__route { position: absolute; top: 115px; right: 102px; width: 72%; height: 55%; border-bottom: 4px dashed rgba(54, 214, 209, .6); border-left: 4px dashed rgba(54, 214, 209, .6); border-radius: 0 0 0 70%; transform: rotate(-8deg); }

.section { padding-block: 82px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 38px; }
.section-heading h2 { margin: 0; font-size: clamp(2rem, 3.5vw, 3rem); }
.tour-grid, .content-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.tour-card, .content-card { overflow: hidden; border: 1px solid var(--iconic-line); border-radius: var(--iconic-radius); background: #fff; box-shadow: 0 10px 38px rgba(8, 47, 79, .06); }
.tour-card__image, .content-card__image { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #d8eeeb; }
.tour-card__image img, .content-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.tour-card:hover img, .content-card:hover img { transform: scale(1.035); }
.tour-card__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(145deg, #bcece6, #176d72 75%, #082f4f); }
.tour-card__body, .content-card__body { padding: 24px; }
.tour-card__location, .content-card__meta { margin: 0 0 7px; color: #176d72; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.tour-card h3, .content-card h2 { margin-bottom: 10px; font-size: 22px; }
.tour-card h3 a, .content-card h2 a { color: inherit; text-decoration: none; }
.tour-card__body > p:not(.tour-card__location), .content-card__body > p:not(.content-card__meta) { color: var(--iconic-muted); }
.empty-tours { grid-column: 1 / -1; padding: 56px; border: 1px dashed #bfc8d0; border-radius: var(--iconic-radius); background: #fbfcfd; text-align: center; }
.empty-tours h3 { font-size: 27px; }

.promise-section { padding-block: 78px; background: var(--iconic-navy); color: rgba(255,255,255,.76); }
.promise-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 52px; }
.promise-grid span { color: var(--iconic-teal); font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.promise-grid h3 { margin: 14px 0 9px; color: #fff; font-size: 23px; }
.promise-grid p { margin: 0; }

.content-shell { padding-block: 80px 110px; }
.page-heading { max-width: 780px; margin-bottom: 46px; }
.page-heading h1 { font-size: clamp(2.35rem, 4.5vw, 3.9rem); }
.tour-single__hero { padding-block: 62px; background: linear-gradient(135deg, #f5faf9, #fff 55%, #f8f2e7); }
.tour-single__hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .82fr); align-items: center; gap: 64px; }
.tour-single__hero h1 { font-size: clamp(2.5rem, 4.8vw, 4.2rem); }
.tour-single__image { overflow: hidden; border-radius: 26px; box-shadow: var(--iconic-shadow); }
.tour-single__image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.tour-facts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.tour-facts span { padding: 8px 12px; border: 1px solid rgba(8,47,79,.12); border-radius: 999px; background: rgba(255,255,255,.7); color: var(--iconic-navy); font-size: 13px; font-weight: 750; }
.tour-single__content { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, .6fr); gap: 54px; padding-block: 64px; }
.tour-single__intro{max-width:720px}.tour-single__image{position:relative}.tour-single__image-label{position:absolute;right:16px;bottom:16px;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.94);color:var(--iconic-navy);font-size:12px;font-weight:800}.tour-section-nav{position:sticky;top:0;z-index:16;border-block:1px solid var(--iconic-line);background:rgba(255,255,255,.94);backdrop-filter:blur(12px)}.tour-section-nav .site-shell{display:flex;gap:26px;overflow-x:auto}.tour-section-nav a{flex:0 0 auto;padding:15px 0;color:var(--iconic-ink);font-size:13px;font-weight:750;text-decoration:none}.tour-section-nav a:hover,.tour-section-nav a:focus{color:#176d72}.tour-single__main{min-width:0}.tour-detail-section{padding:0 0 48px;margin:0 0 48px;border-bottom:1px solid var(--iconic-line);scroll-margin-top:78px}.tour-detail-section:last-child{border-bottom:0}.tour-detail-section h2{font-size:clamp(1.65rem,3vw,2.25rem)}.tour-detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:38px}.tour-detail-list{display:grid;gap:11px;margin:22px 0 0;padding:0;list-style:none}.tour-detail-list li{position:relative;padding-left:27px;color:#455467}.tour-detail-list li::before{position:absolute;left:0;top:.08em;display:grid;width:19px;height:19px;place-items:center;border-radius:50%;background:#e9f7f5;color:#11786f;content:"✓";font-size:11px;font-weight:900}.tour-detail-list.is-excluded li::before{background:#fff3ef;color:#b2503a;content:"×"}.tour-info-callout,.tour-location-card{margin-top:24px;padding:22px;border-radius:14px;background:#f5f8f8}.tour-info-callout p,.tour-location-card p{margin:5px 0 0;color:#53616f}.tour-location-card{display:grid;grid-template-columns:1fr 1fr;gap:24px}.booking-card{position:sticky;top:82px}.booking-card__price{display:grid;margin:10px 0 18px}.booking-card__price small,.booking-card__price span{color:var(--iconic-muted);font-size:12px}.booking-card__price strong{font-size:29px;color:var(--iconic-navy)}.booking-card__trust{display:grid;gap:7px;margin:18px 0 0;padding:16px 0 0;border-top:1px solid var(--iconic-line);color:var(--iconic-muted);font-size:12px;list-style:none}.booking-card__trust li::before{margin-right:7px;color:#15856c;content:"✓";font-weight:900}.tour-booking-section{padding:76px 0 90px;background:var(--iconic-sand);scroll-margin-top:70px}.tour-booking-section__heading{max-width:720px}.tour-booking-section__heading h2{font-size:clamp(2rem,4vw,3rem)}.tour-booking-section .toureli-booking-slot{margin:28px 0 0;background:#fff;text-align:left;box-shadow:var(--iconic-shadow)}
.entry-content { font-size: 16px; }
.entry-content > * { max-width: 760px; }
.booking-card { align-self: start; padding: 24px; border: 1px solid var(--iconic-line); border-radius: var(--iconic-radius); background: #fff; box-shadow: var(--iconic-shadow); }
.booking-card h2 { font-size: 23px; }
.booking-card .button { width: 100%; }
.toureli-booking-slot { margin-bottom: 80px; padding: 28px; border-radius: 14px; background: var(--iconic-sand); color: var(--iconic-muted); text-align: center; }
.toureli-booking-slot p { margin: 0; }
.nav-links { display: flex; justify-content: center; gap: 8px; margin-top: 42px; }
.page-numbers { display: grid; min-width: 42px; height: 42px; place-items: center; border: 1px solid var(--iconic-line); border-radius: 8px; text-decoration: none; }

.site-footer { padding: 66px 0 24px; background: #031d31; color: rgba(255,255,255,.7); }
.site-footer__grid { display: grid; grid-template-columns: 1fr auto; gap: 40px; padding-bottom: 46px; }
.site-footer__brand { margin-bottom: 8px; color: #fff; font-size: 23px; font-weight: 800; }
.site-footer__copy { max-width: 520px; }
.footer-nav__menu { flex-wrap: wrap; justify-content: flex-end; }
.footer-nav a { color: #fff; text-decoration: none; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 24px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); font-size: 12px; }
.site-footer__bottom p { margin: 0; }

@media (max-width: 900px) {
	.primary-nav { display: none; }
	.hero__grid { min-height: auto; grid-template-columns: 1fr; gap: 50px; padding-block: 70px; }
	.hero__visual { width: min(100%, 570px); }
	.hero__image-card { min-height: 390px; }
	.tour-grid, .content-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.promise-grid { gap: 28px; }
	.tour-single__hero-grid, .tour-single__content { grid-template-columns: 1fr; gap: 40px; }
	.booking-card{position:relative;top:auto}.tour-detail-columns{gap:24px}
}

@media (max-width: 640px) {
	.site-shell { width: min(calc(100% - 28px), var(--iconic-shell)); }
	.site-header__inner { min-height: 70px; }
	.site-header .button { display: none; }
	.hero__grid { padding-block: 54px; }
	.hero__content h1 { font-size: clamp(2.7rem, 14vw, 4.2rem); }
	.hero__actions { align-items: flex-start; flex-direction: column; }
	.hero__image-card { min-height: 330px; padding: 26px; border-radius: 24px; }
	.hero__image-card p { font-size: 23px; }
	.section { padding-block: 70px; }
	.section-heading { align-items: flex-start; flex-direction: column; }
	.tour-grid, .content-grid, .promise-grid { grid-template-columns: 1fr; }
	.tour-detail-columns,.tour-location-card{grid-template-columns:1fr}.tour-section-nav .site-shell{gap:20px}.tour-single__content{padding-block:44px}.tour-detail-section{padding-bottom:36px;margin-bottom:36px}
	.empty-tours { padding: 38px 22px; }
	.site-footer__grid, .site-footer__bottom { grid-template-columns: 1fr; flex-direction: column; }
	.footer-nav__menu { align-items: flex-start; flex-direction: column; gap: 12px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

