/*
Theme Name: TourPackages Theme
Description: A safari-inspired marketing theme for TourPackages.ai. Business logic and records belong to TourPackages Core.
Version: 0.1.1
Requires at least: 6.8
Requires PHP: 8.3
Author: TourPackages.ai
License: GPL-2.0-or-later
Text Domain: tourpackages-theme
*/
:root { --tpt-teal:#244b3b; --tpt-ink:#243d31; --tpt-sand:#f5f0e6; --tpt-line:#dedecf; --tpt-rust:#a94b2e; --tpt-muted:#596356; }
* { box-sizing:border-box; }
html { scroll-padding-top:2rem; }
body { margin:0; background:#fcfaf5; color:var(--tpt-ink); font-family:"Segoe UI",ui-sans-serif,sans-serif; font-size:17px; line-height:1.7; }
a { color:var(--tpt-teal); text-underline-offset:5px; }
a:hover { color:var(--tpt-rust); }
:focus-visible { outline:3px solid var(--tpt-rust); outline-offset:5px; }
.tpt-wrap { width:min(1240px,calc(100% - 5rem)); margin-inline:auto; }
.tpt-header { border-bottom:1px solid var(--tpt-line); background:#fcfaf5; }
.tpt-header .tpt-wrap { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding-block:1.25rem; }
.tpt-logo { display:inline-flex; align-items:center; gap:.65rem; font-size:1.4rem; font-weight:750; letter-spacing:-.05em; text-decoration:none; line-height:1.3; overflow-wrap:anywhere; }
.tpt-brand-icon { flex:0 0 36px; width:36px; height:36px; color:var(--tpt-rust); }
.custom-logo-link img { display:block; max-width:min(240px,100%); height:auto; max-height:80px; object-fit:contain; }
.tpt-header nav ul { display:flex; align-items:center; flex-wrap:wrap; gap:1.75rem; list-style:none; padding:0; margin:0; }
.tpt-header nav a { display:inline-block; padding-block:.4rem; font-size:.82rem; font-weight:600; text-decoration:none; }
.tpt-header nav a:hover { text-decoration:underline; }
.tpt-header .tpt-nav-cta { padding:.55rem 1rem; border:1px solid var(--tpt-teal); border-radius:4px; }
.tpt-header nav .sub-menu { margin:.25rem 0 0 .75rem; gap:.75rem; }
.tpt-hero { position:relative; padding:3.5rem 0 4rem; background:radial-gradient(ellipse at 7% 90%,#e9e7d780,transparent 55%),#f5f0e6; }
.tpt-hero-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); align-items:center; gap:4.5rem; }
.tpt-eyebrow { display:block; font-size:.66rem; font-weight:750; line-height:1.6; letter-spacing:.16em; color:var(--tpt-rust); }
.tpt-hero-copy > .tpt-eyebrow { display:flex; align-items:center; gap:.75rem; }
.tpt-small-line { width:26px; height:1px; background:currentColor; flex-shrink:0; }
h1,h2 { font-family:Georgia,"Times New Roman",serif; font-weight:400; }
h1 { font-size:clamp(2.8rem,4.9vw,4.7rem); line-height:1.07; letter-spacing:-.05em; margin:1.5rem 0; overflow-wrap:anywhere; }
h1 em,h2 em { font-weight:400; color:var(--tpt-rust); }
h2 { font-size:clamp(2rem,3vw,2.8rem); line-height:1.2; letter-spacing:-.04em; margin:.5rem 0 1rem; }
h3 { font-size:1.12rem; font-weight:650; line-height:1.4; letter-spacing:-.025em; }
p { margin:0 0 1.2rem; }
.tpt-lead { font-size:1rem; line-height:1.85; color:var(--tpt-muted); max-width:490px; }
.tpt-actions { display:flex; flex-wrap:wrap; gap:1.25rem; align-items:center; margin:1.8rem 0 1.2rem; }
.tpt-button { display:inline-flex; align-items:center; justify-content:space-between; gap:1rem; padding:.85rem 1.2rem; border:1px solid var(--tpt-teal); border-radius:4px; background:var(--tpt-teal); color:#fff; text-decoration:none; font-weight:600; font-size:.82rem; }
.tpt-button:hover { background:#183b2c; color:#fff; }
.tpt-button span,.tpt-text-link span { font-size:1.1rem; }
.tpt-text-link { display:inline-flex; gap:.7rem; align-items:center; font-size:.82rem; font-weight:600; }
.tpt-hero-note { color:var(--tpt-muted); font-size:.72rem; }
.tpt-safari { position:relative; margin:0; width:100%; max-width:525px; justify-self:end; border-radius:48% 48% 6px 6px; isolation:isolate; background:#e8b36d; }
.tpt-safari-art { display:block; width:100%; height:auto; border-radius:inherit; }
.tpt-field-label { position:absolute; top:34%; left:7%; font-size:.56rem; letter-spacing:.17em; color:#39432d; font-weight:700; }
.tpt-field-label span { margin-right:.6rem; }
.tpt-compass { position:absolute; top:6%; right:4%; width:64px; height:82px; display:grid; justify-items:center; color:var(--tpt-teal); font-size:.6rem; background:#fcfaf5; border-radius:40px; padding:7px; box-shadow:0 3px 15px #243d3110; }
.tpt-compass svg { width:44px; height:44px; stroke:currentColor; stroke-width:1; }
.tpt-field-note { position:absolute; bottom:5%; left:-6%; width:86%; padding:1.1rem 1.4rem; background:#fcfaf5; border-left:3px solid var(--tpt-rust); box-shadow:0 8px 25px #162e2320; }
.tpt-field-note > span:last-child { display:block; margin-top:.3rem; font-family:Georgia,serif; font-size:1.3rem; line-height:1.35; }
.tpt-field-note .tpt-eyebrow { font-size:.57rem; }
.tpt-travel-strip { background:var(--tpt-teal); color:#f4eddc; padding-block:1.25rem; }
.tpt-travel-strip .tpt-wrap { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.tpt-travel-strip .tpt-wrap > span { font-size:.58rem; letter-spacing:.15em; }
.tpt-travel-strip ul { display:flex; flex-wrap:wrap; gap:2.75rem; list-style:none; margin:0; padding:0; font-family:Georgia,serif; font-size:1.08rem; }
.tpt-travel-strip li::before { content:"✧"; color:#e6b879; margin-right:.8rem; }
.tpt-section { padding:4.5rem 0 3rem; }
.tpt-section-heading { display:grid; grid-template-columns:1.2fr 1fr; align-items:end; gap:5rem; margin-bottom:2.2rem; }
.tpt-section-heading > p { max-width:410px; color:var(--tpt-muted); font-size:.94rem; }
.tpt-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.tpt-columns article { padding:1.75rem; border:1px solid var(--tpt-line); border-radius:5px; background:#f7f5ee; }
.tpt-columns article:nth-child(2) { background:#eef1e9; }
.tpt-columns article:nth-child(3) { background:#f7eee5; }
.tpt-card-top { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; }
.tpt-icon { display:grid; place-items:center; width:51px; height:51px; border:1px solid #c9cfbd; border-radius:50%; }
.tpt-icon svg { width:30px; height:30px; fill:none; stroke:var(--tpt-teal); stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.tpt-step { font-size:.58rem; letter-spacing:.14em; color:var(--tpt-muted); }
.tpt-columns p { font-size:.85rem; color:var(--tpt-muted); margin-bottom:0; line-height:1.8; }
.tpt-disclaimer { font-size:.78rem; color:#59604f; border-left:2px solid #ba9763; padding:.75rem 1rem; background:#f3eddf; }
.tpt-preview-note { margin:2rem 0 0; }
.tpt-content { padding:3rem 0; max-width:900px; min-height:50vh; overflow-wrap:anywhere; }
.tpt-content h1 { font-size:clamp(2.3rem,5vw,3.5rem); }
.tpt-content img { max-width:100%; height:auto; }
.tpt-content iframe { max-width:100%; }
.tpt-footer { padding:2.2rem 0; border-top:1px solid var(--tpt-line); font-size:.8rem; color:var(--tpt-muted); background:var(--tpt-sand); }
.tpt-footer .tpt-wrap { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.tpt-skip { position:absolute; top:-100px; left:1rem; background:#fff; padding:.5rem; z-index:99; }
.tpt-skip:focus { top:1rem; }
.screen-reader-text { position:absolute; width:1px; height:1px; clip:rect(0,0,0,0); overflow:hidden; }
.wp-block-image { margin-inline:0; }
@media(max-width:1050px) {
    .tpt-hero-grid { gap:2.75rem; }
    .tpt-travel-strip .tpt-wrap { flex-direction:column; gap:.5rem; }
    .tpt-section-heading { gap:2.5rem; }
    .tpt-header nav ul { gap:1rem; }
}
@media(max-width:760px) {
    .tpt-wrap { width:calc(100% - 2rem); }
    .tpt-header .tpt-wrap { align-items:flex-start; flex-direction:column; gap:.65rem; padding-block:1rem; }
    .tpt-header nav ul { gap:.5rem 1.1rem; }
    .tpt-header nav a { font-size:.76rem; }
    .tpt-hero { padding:2.5rem 0; }
    .tpt-hero-grid,.tpt-columns,.tpt-section-heading { grid-template-columns:minmax(0,1fr); gap:1.5rem; }
    .tpt-hero-copy > .tpt-eyebrow { font-size:.58rem; }
    h1 { max-width:570px; font-size:clamp(2.75rem,8vw,4rem); }
    .tpt-safari { max-width:440px; justify-self:center; margin-top:.5rem; }
    .tpt-safari-art { border-radius:48% 48% 0 0; }
    .tpt-field-note { position:relative; bottom:auto; left:auto; width:100%; }
    .tpt-travel-strip ul { justify-content:center; gap:.3rem 1.2rem; font-size:.88rem; }
    .tpt-travel-strip .tpt-wrap > span { font-size:.54rem; text-align:center; }
    .tpt-travel-strip li::before { margin-right:.4rem; }
    .tpt-section { padding:3rem 0 2rem; }
    .tpt-section-heading { margin-bottom:1.5rem; gap:.5rem; }
    .tpt-section-heading > p { max-width:none; margin-bottom:0; }
    .tpt-columns article { padding:1.5rem; }
    .tpt-card-top { margin-bottom:1rem; }
    .tpt-content { padding:2rem 0; }
}
