/*
Theme Name: Go Portugal Magazine
Theme URI: https://goportugal.net
Author: Go Portugal
Description: Fast, clean blog/magazine theme for Go Portugal. No jQuery, no heavy libraries, responsive, images never cropped.
Version: 1.0.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: goportugal-magazine
*/
:root{--ink:#14202b;--muted:#5b6876;--bg:#fff;--soft:#f4f6f5;--line:#e3e8e6;--green:#0b6b4a;--green-d:#084c35;--red:#c8372d;--gold:#e9b44c;--r:14px;--max:1180px;--read:740px;
--sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--serif:Georgia,"Iowan Old Style","Times New Roman",serif}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:17px/1.65 var(--sans);color:var(--ink);background:var(--bg)}
img,video,iframe{max-width:100%;height:auto}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4{font-family:var(--serif);line-height:1.2;margin:0 0 .5em;color:var(--ink)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}.screen-reader-text{position:absolute;left:-9999px}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:99}
/* header */
.topbar{background:var(--green-d);color:#d8efe6;font-size:13px}.topbar .wrap{display:flex;justify-content:space-between;padding-top:6px;padding-bottom:6px}
.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;min-height:68px;gap:16px}
.logo{font:800 26px/1 var(--serif);color:var(--ink);letter-spacing:-.5px}.logo span{color:var(--green)}.logo i{display:inline-block;width:9px;height:9px;background:var(--red);border-radius:50%;margin-left:3px}
.logo:hover{text-decoration:none}
.nav ul{list-style:none;display:flex;gap:4px;margin:0;padding:0}.nav a{display:block;padding:10px 14px;color:var(--ink);font-weight:600;font-size:15px;border-radius:8px}
.nav a:hover,.nav .current-menu-item>a,.nav .current-menu-parent>a{background:var(--soft);color:var(--green);text-decoration:none}
.navbtn{display:none;background:none;border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:20px;cursor:pointer}
.hsearch{display:flex}.hsearch input{border:1px solid var(--line);border-radius:999px 0 0 999px;padding:8px 14px;font:inherit;font-size:14px;width:160px;border-right:0}
.hsearch button{border:1px solid var(--green);background:var(--green);color:#fff;border-radius:0 999px 999px 0;padding:0 14px;cursor:pointer}
/* cards */
.grid{display:grid;gap:26px}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}
.card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:box-shadow .2s}
.card:hover{box-shadow:0 8px 24px rgba(20,32,43,.09)}
.thumb{display:block;background:var(--soft);aspect-ratio:16/10;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:contain;display:block}
.ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font:800 54px var(--serif);color:#fff;background:linear-gradient(135deg,var(--green),var(--green-d))}
.ph.city-guides{background:linear-gradient(135deg,#d4552d,#a8321d)}.ph.pop-culture{background:linear-gradient(135deg,#6a3fb5,#3f2380)}
.cbody{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.cbody h3{font-size:19px;margin:0}.cbody h3 a{color:var(--ink)}.cbody h3 a:hover{color:var(--green);text-decoration:none}
.cbody p{margin:0;color:var(--muted);font-size:15px}
.meta{font-size:13px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.pill{display:inline-block;background:var(--soft);color:var(--green);font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase;padding:3px 10px;border-radius:999px}.pill:hover{text-decoration:none;background:var(--green);color:#fff}
/* home */
.section{padding:44px 0 8px}.shead{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--ink);margin-bottom:22px;padding-bottom:8px}
.shead h2{margin:0;font-size:26px}.shead a{font-weight:700;font-size:14px}
.hero{display:grid;grid-template-columns:1.6fr 1fr;gap:26px;padding-top:30px}
.hero-main{position:relative;border-radius:var(--r);overflow:hidden;background:var(--ink);color:#fff;display:flex;flex-direction:column}
.hero-main .thumb{aspect-ratio:16/9;background:#0e1820}.hero-main .hb{padding:22px 26px 26px}
.hero-main h2{font-size:34px;margin:8px 0 10px}.hero-main h2 a{color:#fff}.hero-main p{color:#c9d3da;margin:0 0 10px}.hero-main .meta{color:#aebac3}
.hero-main .pill{background:var(--gold);color:#3a2a00}
.hero-side{display:flex;flex-direction:column;gap:18px}.hero-side .card{flex-direction:row;flex:1}.hero-side .thumb{width:42%;aspect-ratio:auto;min-height:130px;flex:none}
.hero-side h3{font-size:17px}
.band{background:var(--soft);margin-top:44px;padding:8px 0 40px}
.catintro{background:linear-gradient(135deg,var(--green-d),var(--green));color:#fff;padding:44px 0}.catintro h1{color:#fff;font-size:40px;margin:0 0 8px}.catintro p{margin:0;max-width:700px;color:#d6efe5;font-size:18px}
.catintro .crumbs a{color:#bfe6d6}
.pager{display:flex;gap:8px;flex-wrap:wrap;margin:38px 0;justify-content:center}.pager a,.pager span{padding:9px 15px;border:1px solid var(--line);border-radius:8px;color:var(--ink);font-weight:600}.pager .current{background:var(--green);color:#fff;border-color:var(--green)}.pager a:hover{text-decoration:none;background:var(--soft)}
/* single */
.crumbs{font-size:13px;color:var(--muted);margin:22px 0 10px}.crumbs a{color:var(--muted)}.crumbs span.sep{margin:0 6px}
.article{max-width:var(--read);margin:0 auto;padding:0 20px 40px}
.article h1{font-size:40px;letter-spacing:-.5px;margin:6px 0 14px}
.byline{display:flex;gap:14px;flex-wrap:wrap;font-size:14px;color:var(--muted);padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:24px}
.feat{margin:0 0 26px}.feat figcaption{font-size:14px;color:var(--muted);text-align:center;margin-top:8px}.feat img{display:block;margin:0 auto;border-radius:10px}
.entry{font-size:18.5px;line-height:1.8}.entry p,.entry ul,.entry ol{margin:0 0 1.2em}.entry h2{font-size:30px;margin:1.7em 0 .5em}.entry h3{font-size:23px;margin:1.5em 0 .4em}
.entry img{border-radius:8px;display:block;margin:1em auto}.entry figure{margin:1.4em 0}.entry figcaption{font-size:14px;color:var(--muted);text-align:center}
.entry blockquote{border-left:4px solid var(--green);margin:1.4em 0;padding:.3em 1.2em;background:var(--soft);border-radius:0 10px 10px 0}
.entry table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}.entry td,.entry th{border:1px solid var(--line);padding:8px 12px}
.entry pre,.entry code{background:#0f1a24;color:#e7f1ec;border-radius:8px;font-size:15px}.entry pre{padding:14px;overflow:auto}.entry code{padding:2px 6px}.entry pre code{padding:0}
.author{display:flex;gap:16px;background:var(--soft);border-radius:var(--r);padding:20px;margin:36px 0;align-items:center}
.author img{border-radius:50%;flex:none}.author h4{margin:0 0 4px;font-size:18px}.author p{margin:0;color:var(--muted);font-size:15px}
.related{background:var(--soft);padding:36px 0 44px;margin-top:20px}
.page-wrap{max-width:var(--read);margin:0 auto;padding:26px 20px 50px}.page-wrap h1{font-size:40px}
.cform label{display:block;font-weight:600;margin:14px 0 4px}.cform input,.cform textarea{width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;font:inherit}
.cform button{margin-top:16px;background:var(--green);color:#fff;border:0;padding:13px 26px;border-radius:8px;font:700 16px var(--sans);cursor:pointer}.cform .hp{position:absolute;left:-9999px}
.notice{padding:12px 16px;border-radius:8px;margin:14px 0}.notice.ok{background:#e4f5ec;color:#0b5a3c}.notice.err{background:#fde8e6;color:#8a2018}
.search-form{display:flex;gap:8px;max-width:520px}.search-form input[type=search]{flex:1;padding:12px;border:1px solid var(--line);border-radius:8px;font:inherit}.search-form button,.search-form input[type=submit]{background:var(--green);color:#fff;border:0;border-radius:8px;padding:0 20px;cursor:pointer}
.sitemap-list ul{columns:2;padding-left:1.2em}.sitemap-list li{margin:.2em 0;break-inside:avoid}
/* footer */
.site-footer{background:#0f1a24;color:#b9c6cf;margin-top:50px;padding:46px 0 0;font-size:15px}.site-footer a{color:#dbe7ee}
.fcols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px}.site-footer h4{color:#fff;font:700 15px var(--sans);letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px}
.site-footer ul{list-style:none;margin:0;padding:0}.site-footer li{margin:7px 0}.fbot{border-top:1px solid #243441;margin-top:36px;padding:18px 0;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:14px}
.fbot ul{display:flex;gap:18px;flex-wrap:wrap}.site-footer .logo{color:#fff}
.nf{text-align:center;padding:70px 20px}.nf h1{font-size:90px;color:var(--green);margin:0}
@media(max-width:900px){.hero{grid-template-columns:1fr}.g3{grid-template-columns:repeat(2,1fr)}.fcols{grid-template-columns:1fr 1fr}.hero-main h2{font-size:28px}}
@media(max-width:680px){body{font-size:16px}.navbtn{display:block}.nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);padding:8px 20px 14px}.nav.open{display:block}.nav ul{flex-direction:column}
.hsearch{display:none}.g3,.g2{grid-template-columns:1fr}.fcols{grid-template-columns:1fr}.article h1,.catintro h1,.page-wrap h1{font-size:30px}.entry{font-size:17.5px}.entry h2{font-size:25px}.hero-side .card{flex-direction:column}.hero-side .thumb{width:100%}.sitemap-list ul{columns:1}.topbar .r{display:none}}
.catintro .crumbs{color:#d6efe5}

/* ===== rich posts ===== */
.entry{max-width:var(--read);margin-left:auto;margin-right:auto}
.entry p{line-height:1.85}.entry li{margin:.35em 0}.entry a{color:var(--green);text-decoration:underline;text-underline-offset:2px}
.entry h2{padding-top:.3em;scroll-margin-top:80px}.entry h3{scroll-margin-top:80px}
.entry img,.entry figure img,.wp-block-image img{max-width:100%;height:auto!important;object-fit:contain}
figure.wp-block-image,.entry figure{margin:1.6em 0;text-align:center}
figure.wp-block-image img,.entry figure img{display:block;margin:0 auto;border-radius:10px}
figure.wp-block-image figcaption,.entry figure figcaption{font-size:14px;color:var(--muted);margin-top:8px;line-height:1.5}
.gp-toc{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:16px 22px;margin:1.6em 0;font-size:16px}
.gp-toc-h{font-weight:700;margin-bottom:6px;font-size:17px}.gp-toc ol{margin:0;padding-left:1.3em}.gp-toc li{margin:.25em 0}.gp-toc a{text-decoration:none}.gp-toc a:hover{text-decoration:underline}
.gp-toc-sub{font-size:15px;list-style:lower-alpha}
.gp-takeaways{background:#eef8f3;border:1px solid #cfe9dd;border-left:5px solid var(--green);border-radius:12px;padding:6px 22px 10px;margin:2em 0}
.gp-takeaways h2{margin-top:.6em;font-size:24px}
.entry table{display:table;width:100%;border-collapse:collapse;margin:1.5em 0;font-size:16px;overflow:hidden;border-radius:10px;border:1px solid var(--line)}
.entry th{background:var(--green);color:#fff;text-align:left}.entry td,.entry th{border:1px solid var(--line);padding:10px 14px}.entry tbody tr:nth-child(even){background:var(--soft)}
@media(max-width:680px){.entry table{display:block;overflow-x:auto}}
.gp-faq{margin:1em 0 1.6em}.gp-faq-item{border:1px solid var(--line);border-radius:10px;margin:.6em 0;background:#fff}
.gp-faq-item summary{cursor:pointer;font-weight:700;padding:14px 18px;list-style:none;position:relative;padding-right:44px}
.gp-faq-item summary::-webkit-details-marker{display:none}
.gp-faq-item summary::after{content:"+";position:absolute;right:18px;top:10px;font-size:24px;color:var(--green)}
.gp-faq-item[open] summary::after{content:"\2212"}.gp-faq-item[open] summary{border-bottom:1px solid var(--line)}
.gp-faq-a{padding:6px 18px 8px}.gp-faq-a p{margin:.6em 0}
.related .g3{grid-template-columns:repeat(3,1fr)}@media(max-width:900px){.related .g3{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.related .g3{grid-template-columns:1fr}}
