/*
Theme Name: CaptionSpot
Theme URI: https://captionspot.com/
Description: A field-notes journal of outdoor captions. Sage paper background, polaroid tiles with washi tape, handwritten caption rows pinned like index cards, a postcard preview on the home page and a caption postcard maker.
Version: 1.0.0
Requires at least: 6.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: captionspot
*/

/* Fonts: Chivo, Caveat and Asap (SIL OFL), served locally. */
@font-face{font-family:"Chivo";src:url(assets/fonts/chivo-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Chivo";src:url(assets/fonts/chivo-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Chivo";src:url(assets/fonts/chivo-latin-800-normal.woff2) format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:"Caveat";src:url(assets/fonts/caveat-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Caveat";src:url(assets/fonts/caveat-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Asap";src:url(assets/fonts/asap-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Asap";src:url(assets/fonts/asap-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Asap";src:url(assets/fonts/asap-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
:root{
	--bg:#eef0e4;--panel:#fffdf7;--card:#fffdf7;--edge:#d8dac8;--edge2:#c2c6ae;
	--ink:#22321f;--ink2:#48583f;--faint:#7c8671;
	--card-ink:#22321f;--card-ink2:#5d6a53;
	--hot:#e0592a;--sky:#3b82c4;--kraft:#9a6b2f;--teal:#3e6b35;--st:#3e6b35;
	--hand:"Caveat",cursive;
	--disp:"Chivo",system-ui,sans-serif;
	--ui:"Asap",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
	--shadow:0 1px 2px rgba(34,50,31,.12),0 14px 30px -18px rgba(34,50,31,.35);
	--r:10px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:86px}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16.5px/1.65 var(--ui);overflow-x:clip}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:
	linear-gradient(rgba(62,107,53,.045) 1px,transparent 1px),
	linear-gradient(90deg,rgba(62,107,53,.045) 1px,transparent 1px);
	background-size:34px 34px}
img{max-width:100%;height:auto}
a{color:var(--teal)}
h1,h2,h3{font-family:var(--disp);letter-spacing:-.3px}

/* ------------------------------------------------------------------ header */
.pt-skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fffdf7;padding:8px 14px;border-radius:10px;z-index:99}
.pt-skip:focus{left:8px}
.pt-wrap{max-width:1120px;margin:0 auto;padding:0 18px}
.pt-top{position:sticky;top:0;z-index:40;background:var(--panel);border-bottom:2px dashed var(--edge2)}
.pt-top-row{display:flex;align-items:center;gap:16px;min-height:62px}
.pt-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);flex:none}
.pt-logo span{font:500 21px/1 var(--disp);letter-spacing:-.4px}
.pt-logo b{font-weight:800;color:var(--hot)}
.pt-nav{display:flex;gap:2px;margin-left:auto}
.pt-nav a{color:var(--ink2);text-decoration:none;font:600 14px/1 var(--ui);padding:10px 12px;border-radius:999px}
.pt-nav a:hover{background:var(--bg);color:var(--ink)}
.pt-menubtn{display:flex;align-items:center;gap:8px;border:1.5px solid var(--ink);background:var(--ink);color:#fffdf7;font:700 13.5px/1 var(--ui);border-radius:999px;padding:9px 15px;cursor:pointer}
.pt-menubtn-bars{width:15px;height:2px;background:currentColor;position:relative;display:inline-block}
.pt-menubtn-bars::before,.pt-menubtn-bars::after{content:"";position:absolute;left:0;right:0;height:2px;background:currentColor}
.pt-menubtn-bars::before{top:-5px}.pt-menubtn-bars::after{top:5px}
.pt-drawer{border-top:2px dashed var(--edge2);background:var(--panel);box-shadow:var(--shadow)}
.pt-drawer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:18px;padding:20px 18px 24px}
.pt-drawer-h{margin:0 0 7px;font:800 12px/1 var(--disp);letter-spacing:2px;text-transform:uppercase;color:var(--st)}
.pt-drawer-col ul{list-style:none;margin:0;padding:0}
.pt-drawer-col a{display:block;color:var(--ink2);text-decoration:none;font:600 14.5px/1.3 var(--ui);padding:6px 0;border-bottom:1px dashed var(--edge)}
.pt-drawer-col a:hover{color:var(--st)}

/* -------------------------------------------------------------------- hero */
.pt-hero{padding:46px 0 30px}
.pt-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(290px,.85fr);gap:40px;align-items:start}
.pt-pill{display:inline-block;background:var(--panel);border:1.5px dashed var(--kraft);color:var(--kraft);border-radius:4px;padding:7px 13px;font:700 12.5px/1 var(--ui);letter-spacing:1.4px;text-transform:uppercase;margin:0 0 16px;transform:rotate(-1deg)}
.pt-hero h1{margin:0 0 14px;font:800 clamp(30px,4.4vw,46px)/1.08 var(--disp)}
.pt-hero-lede{margin:0 0 18px;font-size:17.5px;color:var(--ink2);max-width:52ch}
.pt-tryvibes{display:flex;flex-wrap:wrap;gap:8px}
.pt-tryvibes button{border:1.5px dashed var(--edge2);background:var(--panel);color:var(--ink2);font:700 13px/1 var(--ui);letter-spacing:.6px;text-transform:uppercase;border-radius:4px;padding:9px 13px;cursor:pointer}
.pt-tryvibes button[aria-pressed=true]{background:var(--teal);border-color:var(--teal);border-style:solid;color:#fffdf7}

/* postcard preview */
.pt-phone{position:relative}
.pt-phone-shell{position:relative;background:var(--panel);border:1px solid var(--edge);border-radius:6px;box-shadow:var(--shadow);padding:16px 18px 14px;transform:rotate(1.2deg)}
.pt-phone-shell::before{content:"";position:absolute;right:14px;top:14px;width:44px;height:52px;border:2px dashed var(--kraft);border-radius:3px;opacity:.55;background:
	radial-gradient(circle at 50% 42%,rgba(224,89,42,.5) 11px,transparent 12px)}
.pt-phone-shell::after{content:"";position:absolute;left:50%;top:-14px;width:118px;height:28px;margin-left:-59px;background:rgba(224,89,42,.5);transform:rotate(-2.5deg)}
.pt-phone-pic{height:148px;border-radius:4px;background:linear-gradient(180deg,#9fc08a 0%,#5c8a53 68%,#2f5230 100%);position:relative;overflow:hidden;margin:4px 0 12px}
.pt-phone-pic span{position:absolute;right:26px;top:22px;width:40px;height:40px;border-radius:50%;background:#fffdf7;opacity:.85}
.pt-phone-pic::after{content:"";position:absolute;left:-10%;right:-10%;bottom:-36px;height:90px;background:#2f5230;border-radius:50% 50% 0 0;opacity:.75}
.pt-phone-user{margin:0 0 6px;font:800 11px/1 var(--disp);letter-spacing:2.4px;text-transform:uppercase;color:var(--faint)}
.pt-phone-caption{margin:0 0 10px;font:500 25px/1.3 var(--hand);color:var(--card-ink);min-height:66px}
.pt-phone-use{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:0;border-top:1px dashed var(--edge2);padding-top:9px;font:600 13px/1.3 var(--ui);color:var(--faint)}
.pt-phone-use a{color:var(--hot);text-decoration:none;font-weight:700}
.pt-phone-acts{display:flex;gap:9px;margin-top:14px;justify-content:center}

/* ----------------------------------------------------------------- buttons */
.pt-btn{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--ink);background:var(--panel);color:var(--ink);font:700 14px/1 var(--ui);border-radius:999px;padding:11px 17px;cursor:pointer;text-decoration:none}
.pt-btn:hover{background:var(--bg)}
.pt-btn--hot{background:var(--hot);border-color:var(--hot);color:#fffdf7}
.pt-btn--hot:hover{background:#c74a20;border-color:#c74a20}

/* ----------------------------------------------------------------- streams */
.pt-stream{padding:26px 0 8px}
.pt-stream-h{margin:0 0 16px;font:800 24px/1.1 var(--disp);display:flex;align-items:center;gap:11px}
.pt-stream-h::before{content:"";width:26px;height:4px;border-radius:2px;background:var(--st)}
.pt-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:15px}
.pt-tile a{display:flex;flex-direction:column;gap:10px;height:100%;background:var(--panel);border:1px solid var(--edge);border-radius:4px;padding:11px 11px 13px;text-decoration:none;color:var(--card-ink);box-shadow:var(--shadow);transition:transform .14s ease;transform:rotate(-.5deg)}
.pt-tile:nth-child(2n) a{transform:rotate(.6deg)}
.pt-tile a:hover{transform:rotate(0) translateY(-4px)}
.pt-tile-bubble{position:relative;border-radius:3px;padding:30px 14px 14px;font:500 21px/1.35 var(--hand);color:var(--card-ink);background:linear-gradient(180deg,color-mix(in srgb,var(--st) 26%,#fffdf7) 0%,color-mix(in srgb,var(--st) 10%,#fffdf7) 100%);border:1px solid var(--edge)}
.pt-tile-bubble::before{content:"";position:absolute;left:50%;top:-7px;width:74px;height:16px;margin-left:-37px;background:color-mix(in srgb,var(--st) 45%,#fffdf7);opacity:.8;transform:rotate(-2deg)}
.pt-tile-meta{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.pt-tile-meta b{font:700 15.5px/1.3 var(--disp);color:var(--card-ink)}
.pt-tile-meta small{color:var(--card-ink2);font-size:12px;flex:none}

/* ------------------------------------------------------------- page header */
.pt-pagehead{padding:40px 0 10px;border-bottom:2px dashed var(--edge2);background:linear-gradient(180deg,color-mix(in srgb,var(--st) 9%,var(--bg)) 0%,var(--bg) 100%)}
.pt-trail{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0 0 12px;padding:0;font:600 12.5px/1 var(--ui);color:var(--faint)}
.pt-trail a{color:var(--faint);text-decoration:none}
.pt-trail a:hover{color:var(--st)}
.pt-trail li+li::before{content:"\203A";margin-right:6px}
.pt-pagehead h1{margin:0 0 10px;font:800 clamp(27px,3.8vw,40px)/1.1 var(--disp)}
.pt-pagehead-meta{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.pt-pagehead-meta span{background:var(--panel);border:1.5px dashed var(--edge2);border-radius:4px;color:var(--ink2);font:700 12px/1 var(--ui);letter-spacing:.8px;text-transform:uppercase;padding:7px 11px}

/* ---------------------------------------------------------- bar and chips */
.pt-opening{max-width:72ch}
.pt-opening p{margin:0 0 12px;color:var(--ink2)}
.pt-bar{position:sticky;top:62px;z-index:30;display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--edge);border-radius:6px;box-shadow:var(--shadow);padding:10px 14px;margin:20px 0}
.pt-withtags{display:flex;align-items:center;gap:8px;font:600 13.5px/1 var(--ui);color:var(--ink2);flex:none}
.pt-withtags input{accent-color:var(--hot);width:17px;height:17px}
.pt-vibes{display:flex;flex-wrap:wrap;gap:6px}
.pt-chip{border:1.5px dashed var(--edge2);background:transparent;color:var(--ink2);font:700 12.5px/1 var(--ui);letter-spacing:.4px;border-radius:4px;padding:8px 11px;cursor:pointer}
.pt-chip span{opacity:.6;font-weight:600}
.pt-chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);border-style:solid;color:#fffdf7}
.pt-jumps{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 6px}
.pt-jumps a{background:var(--panel);border:1px solid var(--edge);border-radius:999px;color:var(--ink2);text-decoration:none;font:600 13px/1 var(--ui);padding:8px 13px}
.pt-jumps a:hover{border-color:var(--st);color:var(--st)}

/* -------------------------------------------------------------------- rows */
.pt-part{padding:8px 0 4px}
.pt-part h2{margin:18px 0 6px;font:800 22px/1.15 var(--disp)}
.pt-part>p{margin:0 0 12px;color:var(--ink2);max-width:72ch}
.pt-rows{display:grid;gap:11px;margin:14px 0 8px}
.pt-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;background:var(--panel);border:1px solid var(--edge);border-left:4px solid var(--st);border-radius:4px;box-shadow:var(--shadow);padding:13px 15px 11px 18px}
.pt-row::before{content:"";position:absolute;left:-7px;top:16px;width:10px;height:10px;border-radius:50%;background:var(--st);box-shadow:0 0 0 3px var(--bg)}
.pt-row[hidden]{display:none}
.pt-row-text{grid-column:1;margin:0;font:500 23px/1.3 var(--hand);color:var(--card-ink);overflow-wrap:break-word}
.pt-row-acts{grid-column:2;grid-row:1 / span 2;display:flex;flex-direction:column;gap:7px;align-self:center}
.pt-do{border:1.5px solid var(--ink);background:var(--panel);color:var(--ink);font:700 12.5px/1 var(--ui);border-radius:999px;padding:8px 14px;cursor:pointer}
.pt-do:hover{background:var(--ink);color:#fffdf7}
.pt-do--card{border-style:dashed;border-color:var(--kraft);color:var(--kraft)}
.pt-do--card:hover{background:var(--kraft);border-style:solid;color:#fffdf7}
.pt-row-meta{grid-column:1;display:flex;flex-wrap:wrap;align-items:center;gap:7px;font:600 12px/1 var(--ui)}
.pt-vibe{background:color-mix(in srgb,var(--st) 14%,#fffdf7);border:1px solid color-mix(in srgb,var(--st) 35%,#fffdf7);color:var(--st);border-radius:4px;padding:5px 9px;letter-spacing:.8px;text-transform:uppercase;font-weight:700}
.pt-use{color:var(--faint)}
.pt-tags{display:flex;flex-wrap:wrap;gap:5px}
.pt-tags i{font-style:normal;color:var(--sky);opacity:.85}

/* ------------------------------------------------------------ prose, guide */
.pt-read{display:grid;grid-template-columns:minmax(0,1fr);gap:26px;padding:26px 0 10px}
.pt-read--narrow{max-width:820px}
.pt-prose{max-width:72ch}
.pt-prose p{margin:0 0 13px;color:var(--ink2)}
.pt-prose h2{margin:26px 0 10px;font:800 23px/1.15 var(--disp);color:var(--ink)}
.pt-prose h3{margin:18px 0 8px;font:700 18px/1.2 var(--disp)}
.pt-prose ul,.pt-prose ol{margin:0 0 13px;padding-left:22px;color:var(--ink2)}
.pt-prose li{margin:0 0 6px}
.pt-prose a{color:var(--teal);text-decoration-thickness:1.5px}
.pt-guide{border-top:2px dashed var(--edge2);margin-top:18px;padding-top:6px}
.pt-table{overflow-x:auto;margin:0 0 14px}
.pt-table table{border-collapse:collapse;width:100%;background:var(--panel);border:1px solid var(--edge);border-radius:6px;font-size:15px}
.pt-table th,.pt-table td{text-align:left;border-bottom:1px dashed var(--edge);padding:10px 13px;color:var(--ink2)}
.pt-table th{font:700 13px/1.2 var(--ui);letter-spacing:.8px;text-transform:uppercase;color:var(--ink)}
.pt-faq{max-width:72ch;padding:4px 0 10px}
.pt-faq h2{font:800 23px/1.15 var(--disp)}
.pt-faq details{background:var(--panel);border:1px solid var(--edge);border-radius:6px;margin:0 0 9px;box-shadow:var(--shadow)}
.pt-faq summary{cursor:pointer;font:700 15.5px/1.35 var(--ui);padding:13px 16px;color:var(--ink)}
.pt-faq-a{padding:0 16px 13px;color:var(--ink2)}
.pt-faq-a p{margin:0 0 8px}

/* ------------------------------------------------------------ photo cards */
.pt-cards{padding:8px 0 20px}
.pt-cards-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px}
.pt-cards-head h2{margin:0;font:800 23px/1.15 var(--disp)}
.pt-cards-head p{margin:0;color:var(--faint);font-size:14px}
.pt-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:13px;overflow:clip;padding:4px}
.pt-cards-grid figure{margin:0;background:var(--panel);border:1px solid var(--edge);border-radius:4px;padding:8px 8px 10px;box-shadow:var(--shadow);transform:rotate(-.6deg)}
.pt-cards-grid figure:nth-child(2n){transform:rotate(.7deg)}
.pt-cards-grid img{display:block;width:100%;border-radius:3px}
.pt-cards-grid figcaption{font:600 12px/1.4 var(--ui);color:var(--faint);padding:7px 2px 0}

/* ---------------------------------------------------------------- related */
.pt-related{padding:6px 0 26px}
.pt-related h2{font:800 23px/1.15 var(--disp)}
.pt-related ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:9px}
.pt-related a{display:inline-block;background:var(--panel);border:1.5px dashed var(--edge2);border-radius:4px;color:var(--ink2);text-decoration:none;font:700 13.5px/1 var(--ui);padding:10px 14px}
.pt-related a:hover{border-color:var(--st);border-style:solid;color:var(--st)}

/* ------------------------------------------------------- posts, blog lists */
.pt-latest{padding:10px 0 30px}
.pt-latest h2{font:800 23px/1.15 var(--disp)}
.pt-latest ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.pt-latest a{display:flex;justify-content:space-between;gap:14px;background:var(--panel);border:1px solid var(--edge);border-radius:6px;padding:13px 16px;text-decoration:none;color:var(--ink)}
.pt-latest b{font:700 15.5px/1.35 var(--ui)}
.pt-latest small{color:var(--faint);flex:none}
.pt-latest-more{display:inline-block;margin-top:12px;color:var(--teal);font-weight:700}
.pt-postlist{display:grid;gap:11px;padding:4px 0 26px}
.pt-postrow{background:var(--panel);border:1px solid var(--edge);border-radius:6px;padding:15px 18px;box-shadow:var(--shadow)}
.pt-postrow h2{margin:0 0 5px;font:700 18px/1.3 var(--disp)}
.pt-postrow a{color:var(--ink);text-decoration:none}
.pt-postrow a:hover{color:var(--st)}
.pt-date{color:var(--faint);font-size:13px}
.pt-list-title{padding:34px 0 6px}
.pt-list-title h1{margin:0;font:800 clamp(26px,3.5vw,36px)/1.1 var(--disp)}
.pt-pager{display:flex;gap:10px;justify-content:center;padding:4px 0 30px}
.pt-pager a,.pt-pager span{background:var(--panel);border:1px solid var(--edge);border-radius:8px;padding:9px 14px;color:var(--ink2);text-decoration:none;font:600 14px/1 var(--ui)}
.pt-pager .current{background:var(--ink);border-color:var(--ink);color:#fffdf7}

/* --------------------------------------------------------------------- ad */
.pt-ad{margin:18px auto;text-align:center}

/* ------------------------------------------------------------------ toast */
.pt-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:90;background:var(--ink);color:#fffdf7;font:600 14px/1 var(--ui);border-radius:999px;padding:12px 20px;box-shadow:var(--shadow)}

/* ----------------------------------------------------------------- footer */
.pt-foot{margin-top:34px;border-top:2px dashed var(--edge2);background:var(--panel)}
.pt-foot-grid{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(auto-fit,minmax(150px,1fr));gap:26px;padding:34px 18px 26px}
.pt-foot-brand p{margin:0 0 8px;color:var(--ink2);font-size:14.5px;max-width:40ch}
.pt-logo--foot{margin:0 0 10px}
.pt-logo--foot span{font:500 20px/1 var(--disp)}
.pt-foot-h{margin:0 0 8px;font:800 12px/1 var(--disp);letter-spacing:2px;text-transform:uppercase;color:var(--st)}
.pt-foot-col ul{list-style:none;margin:0;padding:0}
.pt-foot-col a{display:block;color:var(--ink2);text-decoration:none;font:600 14px/1.4 var(--ui);padding:5px 0}
.pt-foot-col a:hover{color:var(--st)}
.pt-foot-legal{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;border-top:1px dashed var(--edge);padding:14px 18px 18px;font-size:13px;color:var(--faint)}
.pt-foot-legal a{color:var(--faint)}

/* ------------------------------------------------------------- responsive */
@media (max-width:900px){
	.pt-hero-grid{grid-template-columns:1fr;gap:26px}
	.pt-nav{display:none}
}
@media (max-width:640px){
	.pt-hero{padding:30px 0 20px}
	.pt-bar{position:static}
	.pt-row{grid-template-columns:1fr;padding:12px 13px 11px 16px}
	.pt-row-acts{grid-column:1;grid-row:auto;flex-direction:row;align-self:start}
	.pt-row-text{font-size:21px}
	.pt-tiles{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
	.pt-foot-grid{grid-template-columns:1fr 1fr}
}
