/*
Theme Name: From Where We Go
Theme URI: https://fromwherewego.com/
Author: From Where We Go LLC
Description: Warm, welcoming family travel blog theme for From Where We Go — itineraries, places to eat and places to stay.
Version: 1.0.1
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fromwherewego
*/

/* ---------- Base ---------- */
body { -webkit-font-smoothing: antialiased; }
.wp-site-blocks { padding-top: 0; padding-bottom: 0; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.wp-block-image img, .wp-block-post-featured-image img { border-radius: 24px; }
.fw-btn-dark .wp-block-button__link { background: #2A3140; color: #FFFFFF; }
.fw-btn-dark .wp-block-button__link:hover { background: #1F2532; color: #FFFFFF; }
.fw-btn-outline .wp-block-button__link { background: transparent; color: #2A3140; box-shadow: inset 0 0 0 2px #2A3140; }
.fw-btn-outline .wp-block-button__link:hover { background: #2A3140; color: #FFFFFF; }
.fw-eyebrow { display: inline-block; margin: 0; padding: 8px 16px; border-radius: 999px; background: #FAF5E5; color: #2A3140; font-weight: 700; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; }
.fw-lede { font-size: 20px; line-height: 1.6; color: #4A4A4A; max-width: 36ch; }
.fw-muted { color: #4A4A4A; }
.fw-section { padding-top: 88px !important; padding-bottom: 88px !important; }
.fw-section-tight { padding-top: 0 !important; padding-bottom: 88px !important; }
.fw-bg-cream { background: #FAF5E5; }
.fw-row-between { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; }
.fw-row-between > * { margin: 0 !important; }
.fw-link-strong a, a.fw-link-strong { font-weight: 700; text-decoration: none; }

/* ---------- Header ---------- */
.fw-header { padding-top: 10px !important; padding-bottom: 10px !important; border-bottom: 2px solid #EEE8D8; background: #FFFFFF; }
.fw-header .wp-block-site-logo img { height: 88px; width: auto; }
.fw-header .wp-block-navigation { font-size: 16px; font-weight: 500; gap: 4px; }
.fw-header .wp-block-navigation .wp-block-navigation-item__content { padding: 12px 14px; border-radius: 999px; color: #2A3140; text-decoration: none; }
.fw-header .wp-block-navigation .wp-block-navigation-item__content:hover { background: #FAF5E5; }
.fw-header .wp-block-navigation .fw-nav-cta .wp-block-navigation-item__content { background: #E5CB94; font-weight: 700; padding: 12px 22px; margin-left: 6px; }
.fw-header .wp-block-navigation .fw-nav-cta .wp-block-navigation-item__content:hover { background: #D9BE8A; }
.fw-header .wp-block-navigation__responsive-container.is-menu-open { background: #FFFFFF; padding: 24px; }
.fw-header .wp-block-navigation__responsive-container-open { width: 44px; height: 44px; border-radius: 50%; background: #F4EDDA; display: inline-flex; align-items: center; justify-content: center; }
@media (max-width: 600px) { .fw-header .wp-block-site-logo img { height: 64px; } }

/* ---------- Hero ---------- */
.fw-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 56px; align-items: center; }
.fw-hero-grid > * { margin: 0 !important; }
.fw-hero-copy > * + * { margin-top: 22px !important; }
.fw-hero-title { font-size: clamp(44px, 6vw, 76px) !important; line-height: 1.02 !important; letter-spacing: -.02em !important; }
.fw-collage { position: relative; height: 520px; }
.fw-collage > div { position: absolute; }
.fw-collage .c1 { left: 0; top: 0; width: 62%; height: 340px; border-radius: 36px; background: #F1E2C2; }
.fw-collage .c2 { right: 0; top: 60px; width: 34%; height: 240px; border-radius: 999px 999px 36px 36px; background: #E5CB94; }
.fw-collage .c3 { right: 6%; bottom: 0; width: 58%; height: 220px; border-radius: 36px; background: #F4EDDA; }
.fw-collage .c4 { left: 4%; bottom: 40px; width: 120px; height: 120px; border-radius: 50%; background: #D9BE8A; display: flex; align-items: center; justify-content: center; text-align: center; font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 18px; line-height: 1.1; color: #2A3140; }
.fw-collage .c5 { left: 46%; top: 318px; padding: 10px 18px; border-radius: 999px; background: #2A3140; color: #FFFFFF; font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 18px; white-space: nowrap; }
.fw-collage .c1, .fw-collage .c2, .fw-collage .c3 { overflow: hidden; background-size: cover; background-position: center; }
@media (max-width: 900px) {
	.fw-hero-grid { grid-template-columns: 1fr; }
	.fw-collage { height: 380px; }
	.fw-collage .c1 { height: 240px; }
	.fw-collage .c2 { height: 180px; }
	.fw-collage .c3 { height: 160px; }
	.fw-collage .c5 { top: 222px; left: 30%; }
}

/* ---------- Category tiles ---------- */
.fw-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.fw-tiles > * { margin: 0 !important; }
.fw-tile { border-radius: 32px; padding: 32px !important; min-height: 240px; display: flex; flex-direction: column; gap: 14px; color: #2A3140; }
.fw-tile > * { margin: 0 !important; }
.fw-tile h3 a { color: #2A3140; text-decoration: none; }
.fw-tile h3 a::after { content: ""; position: absolute; inset: 0; }
.fw-tile { position: relative; transition: transform .15s ease; }
.fw-tile:hover { transform: translateY(-3px); }
.fw-tile p { font-size: 17px; line-height: 1.5; color: #2A3140; }
.fw-tile .fw-tile-more { margin-top: auto !important; font-weight: 700; }
.fw-tile--itin { background: #F4EDDA; }
.fw-tile--eat { background: #E5CB94; }
.fw-tile--stay { background: #F1E2C2; }
.fw-icon { width: 56px; height: 56px; border-radius: 18px; background: #FFFFFF; display: flex; align-items: center; justify-content: center; }

/* ---------- Post cards ---------- */
.fw-cards .wp-block-post-template { gap: 28px; }
.fw-card { background: #FFFFFF; border-radius: 28px; overflow: hidden; padding: 0 !important; height: 100%; display: flex; flex-direction: column; }
.fw-card > * { margin: 0 !important; }
.fw-card-media { aspect-ratio: 4 / 3; background: #F1E2C2; overflow: hidden; }
.fw-card-media .wp-block-post-featured-image, .fw-card-media .wp-block-post-featured-image a { height: 100%; margin: 0; }
.fw-card-media .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.fw-card-body { padding: 24px !important; display: flex; flex-direction: column; gap: 12px; }
.fw-card-body > * { margin: 0 !important; }
.fw-card .wp-block-post-title { font-size: 24px; line-height: 1.2; font-weight: 600; }
.fw-card .wp-block-post-title a { color: #2A3140; text-decoration: none; }
.fw-card .wp-block-post-title a:hover { color: #8A6420; }
.fw-card .wp-block-post-date { font-size: 15px; color: #4A4A4A; }
.wp-block-post-terms.fw-pills { font-size: 13px; font-weight: 700; }
.wp-block-post-terms.fw-pills a { display: inline-block; padding: 6px 12px; border-radius: 999px; background: #F4EDDA; color: #2A3140; text-decoration: none; }
.wp-block-post-terms.fw-pills .wp-block-post-terms__separator { display: none; }
.wp-block-post-terms.fw-pills a + .wp-block-post-terms__separator + a, .wp-block-post-terms.fw-pills a { margin-right: 6px; }
.fw-bg-white-cards .fw-card { box-shadow: 0 0 0 2px #EEE8D8; }
.fw-empty { padding: 40px; border-radius: 28px; background: #FFFFFF; text-align: center; color: #4A4A4A; }
.fw-cards .wp-block-query-pagination { margin-top: 40px; font-weight: 700; }

/* ---------- Destinations ---------- */
.fw-dests { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.fw-dests > * { margin: 0 !important; }
.fw-dest { position: relative; min-height: 300px; border-radius: 32px; padding: 28px !important; display: flex; flex-direction: column; justify-content: flex-end; gap: 4px; color: #2A3140; background-size: cover; background-position: center; }
.fw-dest > * { margin: 0 !important; }
.fw-dest .fw-dest-country { font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.fw-dest h3 { font-size: 40px; }
.fw-dest h3 a { color: #2A3140; text-decoration: none; }
.fw-dest h3 a::after { content: ""; position: absolute; inset: 0; }
.fw-dest--a { background-color: #F1E2C2; }
.fw-dest--b { background-color: #F4EDDA; }
.fw-dest--next { border: 3px dashed #D8CCA8; justify-content: center; align-items: center; text-align: center; }
.fw-dest--next h3 { font-size: 26px; font-weight: 600; }

/* Destinations page */
.fw-map { position: relative; height: 420px; border-radius: 40px; background: #FAF5E5; overflow: hidden; }
.fw-map svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.fw-pin { position: absolute; display: flex; flex-direction: column; align-items: center; gap: 6px; transform: translateX(-50%); }
.fw-pin span:first-child { padding: 8px 14px; border-radius: 999px; background: #2A3140; color: #FFFFFF; font-weight: 700; font-size: 14px; white-space: nowrap; }
.fw-pin.home span:first-child { background: #FFFFFF; color: #2A3140; }
.fw-pin span:last-child { width: 20px; height: 20px; border-radius: 50%; border: 4px solid #FFFFFF; background: #D9BE8A; box-sizing: border-box; }
.fw-country { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; padding: 28px !important; border-radius: 36px; background: #FAF5E5; }
.fw-country > * { margin: 0 !important; }
.fw-country .fw-dest { min-height: 280px; }
.fw-country-links { display: flex; flex-direction: column; gap: 12px; }
.fw-country-links > * { margin: 0 !important; }
.fw-country-links p a { display: flex; align-items: center; gap: 12px; padding: 18px 20px; border-radius: 22px; background: #FFFFFF; color: #2A3140; font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 20px; text-decoration: none; }
.fw-country-links p a:hover { box-shadow: 0 0 0 2px #E5CB94; }
@media (max-width: 800px) { .fw-country { grid-template-columns: 1fr; } }

/* ---------- About teaser / boxes ---------- */
.fw-box { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 48px; align-items: center; padding: 48px !important; border-radius: 40px; background: #FAF5E5; }
.fw-box > * { margin: 0 !important; }
.fw-box-copy > * + * { margin-top: 18px !important; }
.fw-arch { min-height: 340px; border-radius: 999px 999px 32px 32px; background: #E5CB94; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; }
.fw-arch img { width: 70%; height: auto; border-radius: 0; }
@media (max-width: 800px) { .fw-box { grid-template-columns: 1fr; padding: 28px !important; } }

.fw-values { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.fw-values > * { margin: 0 !important; }
.fw-value { padding: 32px !important; border-radius: 32px; background: #FFFFFF; display: flex; flex-direction: column; gap: 14px; }
.fw-value > * { margin: 0 !important; }
.fw-value h3 { font-size: 26px; }
.fw-value p { font-size: 17px; line-height: 1.55; color: #4A4A4A; }

/* ---------- Newsletter band ---------- */
.fw-news { background: #2A3140; color: #E9E4D4; text-align: center; }
.fw-news h2 { color: #FFFFFF; }
.fw-news p { color: #E9E4D4; }
.fw-news .wp-block-buttons { justify-content: center; }
.fw-news-icon { width: 72px; height: 72px; margin: 0 auto !important; border-radius: 50%; background: #E5CB94; display: flex; align-items: center; justify-content: center; }

/* ---------- Single post ---------- */
.fw-crumbs { font-size: 15px; color: #4A4A4A; }
.fw-post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; font-size: 16px; color: #4A4A4A; }
.fw-post-meta > * { margin: 0 !important; }
.fw-post-meta .wp-block-post-author-name { font-weight: 700; color: #2A3140; }
.fw-post-hero-img img { width: 100%; max-height: 560px; object-fit: cover; border-radius: 40px !important; }
.fw-post-content { font-size: 19px; line-height: 1.75; }
.fw-post-content h2 { margin-top: 56px; font-size: 34px; }
.fw-post-content h3 { margin-top: 36px; }
.fw-post-content blockquote, .fw-post-content .wp-block-quote { border: 0; border-radius: 28px; background: #FAF5E5; padding: 28px 32px; font-size: 19px; }
.fw-post-content .wp-block-quote cite { font-weight: 700; color: #2A3140; font-style: normal; }
.fw-post-content figure img { border-radius: 28px; }
.fw-post-content .wp-block-separator { border: 0; height: 2px; background: #EEE8D8; }

/* ---------- Archive ---------- */
.fw-archive-head { padding-top: 64px !important; padding-bottom: 40px !important; }
.fw-archive-head .wp-block-query-title { font-size: clamp(40px, 5vw, 64px); }
.fw-archive-head .wp-block-term-description { font-size: 20px; color: #4A4A4A; max-width: 60ch; }

/* ---------- Footer ---------- */
.fw-footer { background: #FAF5E5; border-top: 2px solid #EEE8D8; padding-top: 56px !important; padding-bottom: 40px !important; color: #4A4A4A; }
.fw-footer-grid { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 48px; }
.fw-footer-grid > * { margin: 0 !important; }
.fw-footer .wp-block-site-logo img { height: 130px; width: auto; }
.fw-footer-cols { display: flex; flex-wrap: wrap; gap: 56px; }
.fw-footer-cols > * { margin: 0 !important; }
.fw-footer-col { display: flex; flex-direction: column; gap: 10px; }
.fw-footer-col > * { margin: 0 !important; }
.fw-footer-col h4 { font-family: 'DM Sans', sans-serif; font-size: 16px; font-weight: 700; color: #2A3140; letter-spacing: 0; }
.fw-footer-col a { color: #4A4A4A; text-decoration: none; }
.fw-footer-col a:hover { color: #2A3140; text-decoration: underline; }
.fw-footer-bottom { margin-top: 40px !important; padding-top: 24px; border-top: 1px solid #E5DCC4; font-size: 14px; }

/* ---------- Meet the crew ---------- */
.fw-crew { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
.fw-crew > * { margin: 0 !important; }
.fw-crew-card { padding: 32px !important; border-radius: 32px; border: 2px solid #EEE8D8; background: #FFFFFF; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; }
.fw-crew-card > * { margin: 0 !important; }
.fw-crew-card .wp-block-image img, .fw-avatar { width: 140px; height: 140px; border-radius: 50% !important; object-fit: cover; }
.fw-avatar { display: block; }
.fw-crew-card h3 { font-size: 26px; }
.fw-crew-card p { font-size: 16px; color: #4A4A4A; }
