/*
Theme Name: Port Tack Option
Description: Theme for porttackoption.com pontoon rentals on Indian Arm. Pairs with the Port Tack Option Boat Rentals plugin.
Version: 1.0.0
Author: Port Tack Option
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: porttackoption
*/
/* Port Tack Option: fjord water, granite, one yellow buoy. Archivo at two widths. */
:root{
  --bg:#E8EFEC; --paper:#F7FAF8; --ink:#173F39; --soft:#4F5E59; --line:#C3D2CD;
  --water:#6DBDAE; --shoal:#A9D6CC; --shoal2:#CFE7E1; --buoy:#F2BE3C; --buoy-ink:#173F39;
  --deep:#173F39; --deep-ink:#E8EFEC;
  --wide:"Archivo",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --measure:68ch; --gap:clamp(1rem,2.5vw,2rem);
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#10302B; --paper:#163A34; --ink:#E4EFEB; --soft:#A6B8B2; --line:#2E5149;
  --water:#2F7C70; --shoal:#22574F; --shoal2:#1B4740; --deep:#0B2420; --deep-ink:#E4EFEB;}}
:root[data-theme="dark"]{
  --bg:#10302B; --paper:#163A34; --ink:#E4EFEB; --soft:#A6B8B2; --line:#2E5149;
  --water:#2F7C70; --shoal:#22574F; --shoal2:#1B4740; --deep:#0B2420; --deep-ink:#E4EFEB;}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--wide);font-stretch:100%;
  font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--buoy);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-stretch:125%;line-height:1.05;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-weight:800;font-size:clamp(2.2rem,5vw,3.6rem)}
h2{font-weight:750;font-size:clamp(1.5rem,3vw,2.2rem)}
h3{font-weight:700;font-size:1.15rem;font-stretch:112%}
p{margin:0 0 1em}
.wrap{max-width:1180px;margin:0 auto;padding:0 var(--gap)}

/* header */
.site-head{border-bottom:1px solid var(--line)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:72px}
.logo{font-stretch:125%;font-weight:800;font-size:1.25rem;text-decoration:none;letter-spacing:-.01em;display:flex;align-items:center;gap:.6rem}
.logo svg{width:28px;height:28px}
.nav{display:flex;gap:1.4rem;align-items:center}
.nav a{text-decoration:none;font-weight:500}
.nav a:hover{text-decoration:underline}
.nav .btn{padding:.55rem 1rem}
.menu-toggle{display:none}
@media (max-width:820px){
  .nav{display:none}
  .menu-toggle{display:block}
  .menu-toggle summary{list-style:none;cursor:pointer;font-weight:600;padding:.5rem .8rem;border:1px solid var(--line);border-radius:8px}
  .menu-toggle summary::-webkit-details-marker{display:none}
  .menu-toggle[open] .nav-m{display:flex}
  .nav-m{display:none;position:absolute;left:0;right:0;top:72px;z-index:20;flex-direction:column;gap:0;background:var(--paper);border-bottom:1px solid var(--line)}
  .nav-m a{padding:1rem var(--gap);border-top:1px solid var(--line);text-decoration:none;font-weight:600}
  .site-head{position:relative}
}

/* buttons */
.btn{display:inline-block;background:var(--buoy);color:var(--buoy-ink);font-weight:700;font-stretch:112%;
  text-decoration:none;padding:.8rem 1.3rem;border-radius:10px;border:2px solid var(--buoy);cursor:pointer;font-size:1rem;font-family:inherit}
.btn:hover{filter:brightness(1.05);text-decoration:none}
.btn-quiet{background:transparent;color:var(--ink);border-color:var(--line)}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}

/* hero: the expanded headline against the chart */
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--gap);align-items:center;padding:clamp(2rem,6vw,5rem) 0 2rem}
.brandline{font-weight:600;color:var(--soft);margin-bottom:.75rem}
.display{font-size:clamp(2.8rem,7.2vw,6rem);font-weight:850;line-height:.92;letter-spacing:-.02em;max-width:11ch}
.lede{font-size:clamp(1.1rem,1.6vw,1.3rem);max-width:46ch;color:var(--ink)}
.hero-chart{margin:0}
.launch-note{display:inline-block;background:var(--buoy);color:var(--buoy-ink);font-weight:650;padding:.55rem .9rem;border-radius:8px;max-width:46ch}
@media (max-width:820px){.hero{grid-template-columns:1fr}.hero-chart{max-width:420px;margin:0 auto}}

/* chart */
.pto-chart{display:block;width:100%;height:auto}
.pto-chart .ch-contour2 path{stroke:var(--shoal2)}
.pto-chart .ch-contour1 path{stroke:var(--shoal)}
.pto-chart .ch-water path{stroke:var(--water)}
.pto-chart .ch-land-fill{fill:var(--bg)}
.pto-chart .ch-route{stroke:var(--ink);stroke-width:1.6;stroke-dasharray:2 6;stroke-linecap:round;opacity:.7}
.pto-chart .ch-limit line{stroke:#C8432B;stroke-width:3;stroke-dasharray:8 5}
.pto-chart .ch-limit text{fill:#C8432B;font-family:var(--wide);font-weight:700;font-size:15px}
.pto-chart .ch-pin circle{fill:var(--buoy);stroke:var(--ink);stroke-width:2}
.pto-chart .ch-home{fill:var(--ink);stroke:var(--buoy);stroke-width:2}
.pto-chart .ch-lab{fill:var(--ink);font-family:var(--wide);font-weight:650;font-size:15px}
.pto-chart .ch-small{fill:var(--soft);font-family:var(--wide);font-size:12.5px;font-weight:500}
.pto-chart .ch-area{fill:var(--soft);font-family:var(--wide);font-stretch:125%;font-weight:700;font-size:17px;opacity:.75}

/* facts strip */
.facts{display:grid;grid-template-columns:repeat(5,1fr);margin:1rem 0 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.facts>div{padding:1rem 1rem 1.1rem 0;border-right:1px solid var(--line);margin-right:1rem}
.facts>div:last-child{border-right:0;margin-right:0}
.facts dt{font-size:.85rem;color:var(--soft);font-weight:500}
.facts dd{margin:.2rem 0 0;font-weight:650;font-stretch:112%;line-height:1.3}
.facts-stack{grid-template-columns:1fr 1fr}
@media (max-width:900px){.facts{grid-template-columns:1fr 1fr}.facts>div{border-right:0;border-bottom:1px solid var(--line);margin-right:0}}

/* sections */
.band{padding:clamp(2.5rem,6vw,4.5rem) 0;border-bottom:1px solid var(--line)}
.band-head{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);align-items:end;margin-bottom:1.5rem}
.band-head p{max-width:52ch;color:var(--soft)}
@media (max-width:820px){.band-head{grid-template-columns:1fr}}
.stops{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.stops li{border-bottom:1px solid var(--line)}
.stops li:nth-child(odd){border-right:1px solid var(--line)}
.stops a{display:block;padding:1.1rem 1.2rem 1.2rem 0;text-decoration:none}
.stops li:nth-child(even) a{padding-left:1.2rem}
.stops strong{display:block;font-stretch:118%;font-size:1.2rem}
.stops span{color:var(--soft)}
.stops a:hover strong{text-decoration:underline}
@media (max-width:700px){.stops{grid-template-columns:1fr}.stops li:nth-child(odd){border-right:0}.stops li:nth-child(even) a{padding-left:0}}

.days{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-auto-rows:auto;gap:1rem;margin-top:1.25rem}
.day{display:block;text-decoration:none;background:var(--paper);padding:1.4rem;border-left:6px solid var(--water)}
.day:first-child{grid-row:span 2;border-left-color:var(--buoy);padding:2rem}
.day:first-child h3{font-size:1.7rem}
.day p{color:var(--soft);margin:0}
.day:hover h3{text-decoration:underline}
.day:last-child{grid-column:span 2}
@media (max-width:820px){.days{grid-template-columns:1fr}.day:first-child{grid-row:auto}.day:last-child{grid-column:auto}}

.steps{list-style:none;counter-reset:s;padding:0;margin:1.5rem 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}
.steps li{counter-increment:s;border-top:2px solid var(--ink);padding-top:1rem}
.steps li::before{content:counter(s);display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:50%;
  background:var(--buoy);color:var(--buoy-ink);font-weight:800;margin-bottom:.8rem}
.steps p{color:var(--soft)}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

.rules{padding-left:1.2rem;max-width:var(--measure)}
.rules li{margin-bottom:.55rem}
.rules li::marker{color:var(--water)}
.band-rules h3{margin-top:1.6rem}
.band-taxi{background:var(--paper);margin:0 calc(-1 * var(--gap));padding-left:var(--gap);padding-right:var(--gap);border-left:8px solid var(--buoy)}

.cta{background:var(--deep);color:var(--deep-ink);padding:clamp(2.5rem,6vw,4.5rem) var(--gap);margin:clamp(2rem,5vw,4rem) 0;border-radius:4px}
.cta h2{font-size:clamp(2rem,4.5vw,3.4rem);font-weight:850}
.cta p{max-width:46ch}

/* inner pages */
.page-head{padding:clamp(2rem,5vw,3.5rem) 0 1.5rem;border-bottom:2px solid var(--ink);margin-bottom:2rem}
.page-head .lede{color:var(--soft);margin:0}
.prose{max-width:var(--measure)}
.prose h2{margin-top:2rem;font-size:1.5rem}
.prose ul{padding-left:1.2rem}
.note{background:var(--paper);border-left:4px solid var(--buoy);padding:.9rem 1.1rem}
.fineprint{font-size:.9rem;color:var(--soft)}
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--gap);align-items:start;margin-bottom:2rem}
.chart-panel{margin:0;background:var(--paper);padding:1rem}
@media (max-width:820px){.split{grid-template-columns:1fr}}
.places{display:grid;grid-template-columns:repeat(2,1fr);gap:0 var(--gap);border-top:1px solid var(--line)}
.place{padding:1.5rem 0;border-bottom:1px solid var(--line)}
.place h2{font-size:1.4rem;margin-bottom:.2rem}
.place .meta{color:var(--soft);font-size:.92rem;margin-bottom:.6rem}
@media (max-width:700px){.places{grid-template-columns:1fr}}
.faq details{border-bottom:1px solid var(--line);padding:1rem 0}
.faq summary{cursor:pointer;font-weight:700;font-stretch:112%;font-size:1.1rem}
.faq details p{margin:.7rem 0 0}
.agreement h2{font-size:1.15rem;font-stretch:112%}

/* rates table */
.rates{width:100%;max-width:720px;border-collapse:collapse;margin:1rem 0 1.25rem}
.rates th,.rates td{text-align:left;padding:.75rem .5rem;border-bottom:1px solid var(--line)}
.rates th{font-size:.9rem;color:var(--soft);font-weight:500;border-bottom:2px solid var(--ink)}
.rates td:last-child{font-weight:750;font-stretch:112%;font-size:1.15rem}
.table-scroll{overflow-x:auto}

/* journal */
.post-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 var(--gap)}
.post-list li{border-bottom:1px solid var(--line);padding:1.4rem 0}
.post-list h2{font-size:1.35rem;margin-bottom:.4rem}
.post-list h2 a{text-decoration:none}
.post-list h2 a:hover{text-decoration:underline}
.post-list p{color:var(--soft);margin:0}
@media (max-width:760px){.post-list{grid-template-columns:1fr}}
.article{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(2rem,5vw,4rem)}
.article .prose{font-size:1.1rem}
.article aside{border-top:2px solid var(--ink);padding-top:1rem;align-self:start;position:sticky;top:calc(1rem + env(safe-area-inset-top,0px))}
.article aside ul{list-style:none;padding:0}
.article aside li{padding:.5rem 0;border-bottom:1px solid var(--line)}
.article aside a{text-decoration:none}
.article aside a:hover{text-decoration:underline}
.article .side-book{background:var(--paper);padding:1.2rem;margin-top:1.5rem}
@media (max-width:900px){.article{grid-template-columns:1fr}.article aside{position:static}}

/* footer */
.site-foot{background:var(--deep);color:var(--deep-ink);padding:3rem 0 2rem;margin-top:3rem}
.site-foot .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--gap)}
.site-foot a{color:inherit}
.site-foot ul{list-style:none;padding:0;margin:0}
.site-foot li{margin-bottom:.4rem}
.site-foot .small{opacity:.75;font-size:.9rem}
@media (max-width:760px){.site-foot .wrap{grid-template-columns:1fr}}

/* booking form */
.pto-form{max-width:820px;margin:1.5rem 0 3rem}
.pto-form fieldset{border:0;border-top:2px solid var(--ink);padding:1.2rem 0 1.6rem;margin:0}
.pto-form legend{font-stretch:118%;font-weight:750;font-size:1.3rem;padding:0 .5rem 0 0}
.pto-form .hint{color:var(--soft);font-size:.92rem;margin:.2rem 0 .8rem}
.pto-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:640px){.pto-row{grid-template-columns:1fr}}
.pto-field{margin-bottom:1rem}
.pto-field label,.pto-label{display:block;font-weight:600;margin-bottom:.3rem}
.pto-form input[type=text],.pto-form input[type=email],.pto-form input[type=tel],.pto-form input[type=date],
.pto-form input[type=number],.pto-form select,.pto-form textarea{width:100%;font:inherit;color:var(--ink);background:var(--paper);
  border:1px solid var(--line);border-radius:8px;padding:.7rem .8rem}
.pto-form textarea{min-height:90px}
.pto-choice{display:flex;gap:.7rem;align-items:flex-start;padding:.75rem .9rem;border:1px solid var(--line);border-radius:8px;margin-bottom:.5rem;background:var(--paper);cursor:pointer}
.pto-choice input{margin-top:.3rem;accent-color:var(--ink);width:1.1rem;height:1.1rem;flex:none}
.pto-choice small{display:block;color:var(--soft)}
.pto-choice.is-off{opacity:.45;cursor:not-allowed}
.pto-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
@media (max-width:640px){.pto-slots{grid-template-columns:1fr}}
.pto-hidden{display:none}
.pto-summary{background:var(--deep);color:var(--deep-ink);padding:1.2rem 1.4rem;border-radius:4px;margin:1rem 0}
.pto-summary strong{font-stretch:118%}
.pto-errors{background:#FBE3DD;color:#6B1B0E;border-left:4px solid #C8432B;padding:1rem 1.2rem;margin-bottom:1.5rem}
.pto-ok{background:var(--paper);border-left:6px solid var(--buoy);padding:1.4rem 1.6rem;margin:1.5rem 0 3rem;max-width:var(--measure)}
.pto-ok h2{margin-top:0}
.pto-hp{position:absolute;left:-9999px}

@media (prefers-reduced-motion:no-preference){
  .hero .display{animation:rise .7s ease-out both}
  @keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
}
@media print{.site-head,.site-foot,.cta,.actions{display:none}}
