/*
Theme Name: MariteTour 2026
Description: Lightweight custom theme for MariteTour Ecuador and Galapagos journeys.
Version: 0.1.0
Text Domain: maritetour-2026
*/

:root { --ink:#123047; --sea:#006f9f; --sun:#f6b500; --sand:#f7f3ea; --paper:#fff; --muted:#5c6870; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Arial,Helvetica,sans-serif; line-height:1.55; }
a { color:inherit; text-decoration:none; }
.wrap { width:min(1180px, calc(100% - 40px)); margin:auto; }
.site-header { position:absolute; top:0; z-index:5; width:100%; color:#fff; background:linear-gradient(180deg,rgba(4,27,39,.65),rgba(4,27,39,0)); }
.post-type-archive .site-header, .single-maritetour_tour .site-header { position:relative; background:#102934; }
.post-type-archive .page-main { padding-top:80px; }
.page:not(.home) .site-header { position:relative; background:#102934; }
.header-utility { border-bottom:1px solid rgba(255,255,255,.18); background:rgba(3,25,35,.2); font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.header-utility-inner { min-height:35px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.header-utility p { margin:0; color:#d4e4e7; }
.header-utility p span { color:var(--sun); margin-right:6px; }
.header-utility-inner > div { display:flex; align-items:center; gap:21px; }
.header-utility a { color:#fff; }
.header-utility a:last-child { color:#ffd15a; }
.nav { position:relative; min-height:92px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand img { width:184px; height:auto; display:block; filter:brightness(0) invert(1); }
.brand span { display:block; font-size:1.3rem; font-weight:800; letter-spacing:.06em; }
.primary-menu { display:flex; align-items:stretch; gap:2px; font-size:.82rem; font-weight:800; letter-spacing:.045em; }
.primary-menu a { position:relative; display:flex; flex-direction:column; justify-content:center; min-height:54px; padding:7px 13px 6px; color:#fff; line-height:1.1; transition:background .2s,color .2s; }
.primary-menu a::after { position:absolute; right:13px; bottom:0; left:13px; height:2px; background:var(--sun); content:""; transform:scaleX(0); transform-origin:left; transition:transform .2s; }
.primary-menu a small { margin-bottom:3px; color:#a7c4cc; font-size:.54rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; transition:color .2s; }
.primary-menu a:hover, .primary-menu a:focus-visible { background:rgba(255,255,255,.1); color:#fff; outline:none; }
.primary-menu a:hover::after, .primary-menu a:focus-visible::after { transform:scaleX(1); }
.primary-menu a:hover small, .primary-menu a:focus-visible small { color:#ffd15a; }
.nav-toggle { display:none; padding:8px; border:0; background:transparent; color:#fff; cursor:pointer; }
.nav-toggle > span:not(.screen-reader-text) { display:block; width:25px; height:2px; margin:5px 0; background:currentColor; }
.screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap; }
.nav-quote, .button { display:inline-flex; align-items:center; justify-content:center; padding:13px 21px; border-radius:2px; background:var(--sun); color:#152d3f; font-weight:800; font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; transition:transform .2s, background .2s; }
.nav-quote:hover, .button:hover { background:#ffd255; transform:translateY(-2px); }
.hero { min-height:720px; display:grid; align-items:end; padding:155px 0 80px; color:#fff; background:linear-gradient(90deg,rgba(4,25,35,.76),rgba(4,25,35,.20)), var(--hero-image) center/cover; }
.eyebrow { color:var(--sun); font-size:.78rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.hero-content { max-width:690px; }
.hero h1 { margin:13px 0 18px; max-width:690px; font-family:Georgia,serif; font-size:clamp(3rem,6vw,5.8rem); line-height:.98; letter-spacing:-.045em; }
.hero p { max-width:560px; margin:0 0 31px; font-size:1.14rem; }
.section { padding:92px 0; }
.section-sand { background:var(--sand); }
.section-head { display:flex; justify-content:space-between; gap:26px; align-items:end; margin-bottom:34px; }
.section h2 { margin:5px 0 0; max-width:720px; font-family:Georgia,serif; font-size:clamp(2.1rem,4vw,3.6rem); line-height:1.05; letter-spacing:-.025em; }
.section-intro { max-width:470px; color:var(--muted); }
.cards { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.experience { position:relative; min-height:430px; overflow:hidden; background:#183443 center/cover; color:#fff; }
.experience:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(3,25,36,.85),transparent 70%); }
.experience > div { position:absolute; z-index:1; inset:auto 26px 25px; }
.experience h3 { margin:5px 0; font-family:Georgia,serif; font-size:1.65rem; }
.experience span { font-size:.76rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.feature-grid { display:grid; grid-template-columns:1.08fr .92fr; gap:40px; align-items:center; }
.feature-photo { min-height:520px; background:center/cover; }
.feature-copy { padding:35px 5%; }
.feature-copy p { color:var(--muted); font-size:1.05rem; }
.journeys { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.journey { background:#fff; box-shadow:0 12px 35px rgba(10,37,53,.10); }
.journey img { width:100%; height:240px; object-fit:cover; display:block; }
.journey div { padding:22px; }
.journey h3 { margin:6px 0; font-family:Georgia,serif; font-size:1.45rem; }
.journey p { margin:0; color:var(--muted); font-size:.92rem; }
.text-link { display:inline-block; margin-top:16px; color:var(--sea); font-size:.76rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.archive-intro { max-width:610px; color:var(--muted); font-size:1.08rem; margin:15px 0 35px; }
.tour-archive { margin-top:30px; }
.tour-hero { min-height:540px; display:flex; align-items:end; padding:140px 0 65px; background-position:center; background-size:cover; color:#fff; }
.tour-hero h1 { max-width:900px; margin:9px 0 26px; font-family:Georgia,serif; font-size:clamp(3rem,6vw,5.5rem); line-height:1; }
.tour-content { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:70px; }
.tour-content article { color:#344b58; font-size:1.05rem; }
.tour-content aside { align-self:start; padding:28px; background:var(--sand); }
.tour-content aside h2 { margin:0 0 10px; font-family:Georgia,serif; }
.tour-gallery { margin-top:62px; }
.gallery-heading { display:flex; gap:18px; align-items:center; max-width:590px; margin-bottom:25px; }
.gallery-heading h2 { margin:3px 0; font-family:Georgia,serif; font-size:2.15rem; }
.gallery-heading p { margin:0; color:var(--muted); }
.gallery-icon { flex:0 0 58px; width:58px; height:58px; display:grid; place-items:center; border:1px solid var(--sun); border-radius:50%; color:var(--sea); font-size:2.5rem; line-height:1; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:17px; }
.tour-gallery-item { position:relative; padding:0; overflow:hidden; border:0; background:#123047; cursor:pointer; text-align:left; transition:transform .25s ease, box-shadow .25s ease; }
.tour-gallery-item:nth-child(3n+1) { transform:rotate(-1.1deg); }
.tour-gallery-item:nth-child(3n+2) { transform:rotate(.8deg); }
.tour-gallery-item:nth-child(3n) { transform:rotate(-.35deg); }
.tour-gallery-item:hover, .tour-gallery-item:focus-visible { z-index:1; transform:translateY(-8px) rotate(0deg); box-shadow:0 18px 32px rgba(9,42,59,.24); outline:3px solid var(--sun); outline-offset:3px; }
.tour-gallery-item img { width:100%; height:230px; display:block; object-fit:cover; transition:transform .45s ease, opacity .3s ease; }
.tour-gallery-item:hover img { transform:scale(1.07); opacity:.78; }
.tour-gallery-item span { position:absolute; left:16px; bottom:14px; color:#fff; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; opacity:0; transform:translateY(7px); transition:opacity .25s, transform .25s; }
.tour-gallery-item:hover span, .tour-gallery-item:focus-visible span { opacity:1; transform:translateY(0); }
.tour-lightbox { width:min(92vw,1120px); max-width:none; padding:18px; border:0; background:#0a202b; color:#fff; }
.tour-lightbox::backdrop { background:rgba(1,13,20,.84); backdrop-filter:blur(5px); }
.tour-lightbox figure { margin:0; text-align:center; }
.tour-lightbox figure img { display:block; width:auto; max-width:100%; max-height:78vh; margin:auto; }
.tour-lightbox figcaption { padding:13px 48px 2px; color:#d5e4e8; font-size:.88rem; }
.lightbox-close, .lightbox-nav { position:absolute; border:0; background:rgba(255,255,255,.14); color:#fff; cursor:pointer; }
.lightbox-close { top:12px; right:12px; width:38px; height:38px; border-radius:50%; font-size:1.7rem; line-height:1; }
.lightbox-nav { top:50%; width:45px; height:52px; transform:translateY(-50%); font-size:1.6rem; }
.lightbox-previous { left:12px; }.lightbox-next { right:12px; }
.itinerary { margin-top:48px; }
.itinerary h2 { font-family:Georgia,serif; font-size:2.1rem; }
.itinerary-day { border-top:1px solid #dce2e3; }
.itinerary-day:last-child { border-bottom:1px solid #dce2e3; }
.itinerary-day summary { display:flex; justify-content:space-between; align-items:center; padding:19px 3px; color:var(--ink); cursor:pointer; font-weight:800; list-style:none; }
.itinerary-day summary::-webkit-details-marker { display:none; }
.itinerary-day summary span { color:var(--sea); font-size:1.35rem; font-weight:400; }
.itinerary-day[open] summary span { transform:rotate(45deg); }
.itinerary-copy { padding:2px 0 24px; color:#344b58; }
.itinerary-copy p:first-child { margin-top:0; }
.contact-hero { padding:120px 0 88px; color:#fff; background:linear-gradient(90deg,rgba(3,30,43,.83),rgba(3,30,43,.35)),var(--contact-image) center/cover; }
.contact-hero h1 { max-width:700px; margin:8px 0 13px; font-family:Georgia,serif; font-size:clamp(3rem,5vw,4.8rem); }
.contact-hero p { max-width:600px; color:#fff; font-size:1.08rem; }
.contact-section { padding:80px 0; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; }
.contact-grid h2 { margin:7px 0 14px; font-family:Georgia,serif; font-size:2.35rem; line-height:1.08; }
.contact-details > p, .contact-form > p { color:var(--muted); }
.contact-map { margin:28px 0; overflow:hidden; }
.contact-map iframe { display:block; width:100%; min-height:300px; border:0; }
.contact-address h3 { margin-bottom:5px; font-family:Georgia,serif; }
.contact-address p { color:var(--muted); }
.contact-address a { color:var(--sea); font-weight:700; }
.contact-form { padding:38px; background:var(--sand); }
.contact-form .row, .tour-quote .row { display:grid; grid-template-columns:repeat(2,1fr); column-gap:12px; }
.contact-form .col-sm-12, .tour-quote .col-sm-12 { grid-column:1 / -1; }
.maritetour-quote-form label { display:block; margin:0 0 13px; color:var(--ink); font-size:.75rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.maritetour-quote-form input, .maritetour-quote-form textarea, .maritetour-quote-form select { width:100%; margin-top:6px; padding:14px; border:1px solid #ccd7da; border-radius:0; background:#fff; color:var(--ink); font:inherit; text-transform:none; }
.tour-quote .maritetour-quote-form input, .tour-quote .maritetour-quote-form textarea, .tour-quote .maritetour-quote-form select { padding:11px; }
.maritetour-quote-form textarea { min-height:145px; resize:vertical; }
.tour-quote .maritetour-quote-form textarea { min-height:105px; }
.maritetour-quote-form button { width:auto; border:0; padding:14px 18px; background:var(--sun); cursor:pointer; color:#152d3f; font-size:.76rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.tour-quote .maritetour-quote-form button { width:100%; font-size:.72rem; }
.quote-notice { margin:13px 0 0; color:var(--sea); font-weight:700; }
.quote-security { display:grid; grid-template-columns:1fr; max-width:210px; }
.quote-honeypot { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); }
.tour-inclusions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:38px 0; }
.tour-inclusion { display:flex; gap:16px; padding:25px; border:1px solid #dce2e3; background:#f9fbfb; }
.tour-inclusion h2 { margin:1px 0 11px; font-family:Georgia,serif; font-size:1.55rem; }
.tour-inclusion ul { margin:0; padding-left:18px; }
.tour-inclusion li { margin:5px 0; }
.inclusion-icon { flex:0 0 48px; width:48px; height:48px; display:grid; place-items:center; border-radius:50%; background:#0c7897; color:#fff; font-size:1.75rem; font-weight:700; }
.tour-inclusion--excluded .inclusion-icon { background:#b6603a; }
.cta { padding:94px 0; color:#fff; background:linear-gradient(90deg,rgba(0,74,107,.94),rgba(0,111,159,.82)), var(--cta-image) center/cover; text-align:center; }
.cta h2 { margin:10px auto 18px; max-width:700px; font-family:Georgia,serif; font-size:clamp(2.4rem,5vw,4.4rem); line-height:1.03; }
.cta p { max-width:580px; margin:0 auto 30px; }
.site-footer { padding:52px 0 28px; background:#102934; color:#e6f0f2; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:30px; padding-bottom:42px; }
.site-footer h3 { margin:0 0 10px; font-family:Georgia,serif; font-size:1.35rem; }
.site-footer p, .site-footer a { color:#b7cad1; font-size:.92rem; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.16); padding-top:22px; color:#9eb5bd; font-size:.78rem; }
.page-main { padding:150px 0 90px; min-height:60vh; }
.page-main h1 { font-family:Georgia,serif; font-size:3rem; }
@media (max-width:900px) { .header-utility { display:none; } .nav { gap:12px; } .nav-toggle { display:block; order:2; } .primary-menu { display:none; position:absolute; top:calc(100% - 6px); right:0; left:0; z-index:4; padding:14px 20px 20px; background:#102934; border-top:1px solid rgba(255,255,255,.13); box-shadow:0 16px 24px rgba(4,22,31,.22); } .primary-menu.is-open { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; } .primary-menu a { min-height:0; padding:13px 4px; border-bottom:1px solid rgba(255,255,255,.13); } .primary-menu a::after { display:none; } .nav-quote { order:3; margin-left:auto; } .cards { grid-template-columns:repeat(2,1fr); } .feature-grid, .tour-content, .contact-grid { grid-template-columns:1fr; } .feature-photo { min-height:350px; } }
@media (max-width:600px) { .wrap { width:min(100% - 28px, 1180px); } .nav { min-height:72px; } .brand img { width:142px; } .nav-quote { padding:10px 12px; font-size:.65rem; } .hero { min-height:650px; padding-bottom:55px; } .cards, .journeys, .footer-grid, .gallery-grid, .contact-form .row, .tour-quote .row, .tour-inclusions { grid-template-columns:1fr; } .section { padding:65px 0; } .section-head { display:block; } .section-intro { margin-top:14px; } .tour-gallery-item { transform:none !important; } .tour-gallery-item span { opacity:1; transform:none; } .lightbox-nav { width:38px; height:45px; } }
