/*
Theme Name: Fairbanks Sat Phone
Theme URI: https://fairbankssatphone.com/
Author: Fairbanks Sat Phone Rental
Description: Custom classic theme for Fairbanks Sat Phone Rental: Iridium sat phone, inReach and Starlink Mini rentals, sales, airtime plans and outdoor gear. Includes designed templates for the front page and the rental, phones, iridium-prepaid-airtime-plans, reservations, starlink, gear, about, faq and contact pages, plus a generic page template for block-editor content.
Version: 1.0.6
Requires at least: 6.0
Tested up to: 7.1
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: fairbanks-satphone
*/

/* Design tokens for this site (main design CSS is assets/css/main.css). */
:root{--dark:#0d1322;--dark2:#1f2a44;--tint:#2a2408}

/* Admin bar offset for the sticky header */
.admin-bar .site-header{top:32px}
@media (max-width:782px){.admin-bar .site-header{top:46px}}

/* Custom logo inside the brand link */
.brand img.custom-logo{height:46px;width:auto}

/* WordPress nav menus (when a menu is assigned to "Primary") */
.primary-nav .menu{display:flex;align-items:center;gap:.2rem .9rem;list-style:none;margin:0;padding:0}
.primary-nav .menu li{position:relative}
.primary-nav .menu > li > a{display:block}
.primary-nav .current-menu-item > a,.primary-nav .current-menu-ancestor > a{box-shadow:inset 0 -2px 0 var(--cta)}
.primary-nav .sub-menu{display:none;position:absolute;top:100%;left:-.5rem;min-width:13rem;list-style:none;margin:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 28px rgba(0,0,0,.12);padding:.45rem;z-index:50}
.primary-nav li:hover > .sub-menu,.primary-nav li:focus-within > .sub-menu{display:block}
.primary-nav .sub-menu a{display:block;padding:.55rem .7rem;border-radius:8px;font-size:.88rem}
.primary-nav .sub-menu a:hover{background:#f3f4f6}
.primary-nav .menu-item-has-children > a::after{content:" ▾";font-size:.7em;opacity:.7}
@media(max-width:980px){
  .primary-nav .menu{flex-direction:column;align-items:stretch;gap:0}
  .primary-nav .menu a{padding:.65rem .2rem;border-bottom:1px solid #f0f1f3}
  .primary-nav .sub-menu{display:block;position:static;box-shadow:none;border:0;padding:0 0 0 .7rem;background:transparent}
}
.foot-menu ul{list-style:none;padding:0;margin:0}

/* Generic page / block editor content */
.entry-content{max-width:46rem;margin:0 auto}
.entry-content > *{margin-top:0;margin-bottom:1.1rem}
.entry-content p,.entry-content li{color:var(--muted)}
.entry-content h2{font-size:clamp(1.35rem,2.4vw,1.65rem);margin-top:2rem;letter-spacing:-.01em}
.entry-content h3{font-size:1.15rem;margin-top:1.6rem}
.entry-content a{text-decoration:underline;text-underline-offset:2px;font-weight:600}
.entry-content img{border-radius:var(--rad);height:auto}
.entry-content .alignwide{max-width:var(--max);width:min(var(--max),calc(100vw - 2rem));margin-left:50%;transform:translateX(-50%)}
.entry-content .alignfull{width:100vw;max-width:100vw;margin-left:50%;transform:translateX(-50%)}
.entry-content .aligncenter{margin-left:auto;margin-right:auto}
.entry-content .alignleft{float:left;margin:0 1.2rem 1rem 0}
.entry-content .alignright{float:right;margin:0 0 1rem 1.2rem}
.entry-content blockquote,.entry-content .wp-block-quote{border-left:4px solid var(--cta);background:#fff;border-radius:0 12px 12px 0;padding:1rem 1.3rem;margin-left:0}
.entry-content table,.entry-content .wp-block-table table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.entry-content th{background:#111;color:#fff;text-align:left;padding:.7rem .9rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}
.entry-content td{padding:.7rem .9rem;border-top:1px solid var(--line)}
.entry-content .wp-block-button__link,.entry-content .wp-element-button{display:inline-flex;padding:.72rem 1.2rem;border-radius:999px;background:var(--cta);color:#111;font-weight:650;text-decoration:none}
.entry-content .wp-block-button.is-style-outline .wp-block-button__link{background:transparent;border:2px solid #111}
.entry-content .wp-block-columns{gap:1.2rem}
.entry-content .wp-block-group.has-background,.entry-content .wp-block-cover{border-radius:var(--rad)}
.entry-content figcaption{font-size:.8rem;color:var(--muted);text-align:center}
.entry-card{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:1.8rem 2rem}
.post-list{display:grid;gap:1rem;max-width:46rem;margin:0 auto}
.post-list article{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:1.3rem 1.5rem}
.post-list h2{margin:0 0 .4rem;font-size:1.2rem}
.post-list .meta{font-size:.8rem;color:var(--muted);margin:0 0 .6rem}
.pagination{margin-top:1.5rem;display:flex;gap:.5rem;justify-content:center}
.pagination .page-numbers{padding:.4rem .8rem;border:1px solid var(--line);border-radius:999px;background:#fff}
.pagination .current{background:var(--cta);border-color:var(--cta)}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal !important}

/* WPForms skin (Rental Request form on /reservations/) */
.wpforms-skin .wpforms-container{margin:0}
.wpforms-skin .wpforms-field{padding:.6rem 0 !important}
.wpforms-skin .wpforms-field-label{font-size:.88rem !important;font-weight:700 !important;color:var(--ink) !important;margin-bottom:.4rem !important}
.wpforms-skin .wpforms-field-sublabel,.wpforms-skin .wpforms-field-description{font-size:.8rem !important;color:var(--muted) !important}
.wpforms-skin .wpforms-required-label{color:#b42318 !important}
.wpforms-skin input[type=text],.wpforms-skin input[type=email],.wpforms-skin input[type=tel],.wpforms-skin input[type=number],.wpforms-skin input[type=date],.wpforms-skin select,.wpforms-skin textarea{width:100% !important;max-width:100% !important;padding:.68rem .75rem !important;border:1px solid #d5dbe1 !important;border-radius:9px !important;font:inherit !important;background:#fff !important;height:auto !important;box-shadow:none !important}
.wpforms-skin input:focus,.wpforms-skin select:focus,.wpforms-skin textarea:focus{border-color:var(--ctaH) !important;outline:2px solid rgba(240,192,0,.35) !important}
.wpforms-skin .wpforms-field-radio ul,.wpforms-skin .wpforms-field-checkbox ul,.wpforms-skin .wpforms-field-payment-multiple ul,.wpforms-skin .wpforms-field-payment-checkbox ul{display:grid !important;gap:.5rem !important;padding:0 !important;margin:0 !important}
.wpforms-skin .wpforms-field-radio li,.wpforms-skin .wpforms-field-checkbox li,.wpforms-skin .wpforms-field-payment-multiple li,.wpforms-skin .wpforms-field-payment-checkbox li{border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem !important;background:#fff;margin:0 !important;display:flex !important;align-items:center;gap:.6rem}
.wpforms-skin li.wpforms-selected{border-color:var(--cta);background:var(--soft)}
.wpforms-skin .wpforms-image-choices-image img{max-width:56px !important;max-height:56px;border-radius:8px}
.wpforms-skin .wpforms-submit,.wpforms-skin button[type=submit]{background:var(--cta) !important;color:#111 !important;border:0 !important;border-radius:999px !important;padding:.8rem 1.4rem !important;font-weight:700 !important;font-size:.95rem !important;cursor:pointer}
.wpforms-skin .wpforms-submit:hover{background:var(--ctaH) !important}
.wpforms-skin .wpforms-error,.wpforms-skin label.wpforms-error{color:#b42318 !important;font-size:.8rem !important}
.wpforms-skin .wpforms-confirmation-container-full{background:var(--soft) !important;border:1px solid #e8d48a !important;border-radius:10px;color:#333 !important}

/* SEO/perf: images carry width/height attributes (for layout stability); let CSS keep control of rendered height */
:where(img[height]){height:auto}

/* Google reviews (front page) */
.reviews-block .review-rating{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;margin:0 0 1.6rem;color:var(--muted);font-size:.95rem}
.reviews-block .review-rating b{font-size:1.35rem;color:var(--ink);line-height:1}
.review-stars{color:#f5b301;letter-spacing:.08em;font-size:1.05rem;line-height:1}
.reviews{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;align-items:stretch}
.review-card{margin:0}
.review-card .body{padding:1.4rem 1.5rem 1.3rem;gap:.8rem}
.review-card blockquote{margin:0;flex:1;border-left:3px solid var(--cta);padding-left:.95rem}
.review-card blockquote p{margin:0;color:var(--ink);font-size:.98rem;line-height:1.6}
.review-card figcaption{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.3rem .8rem;border-top:1px solid var(--line);padding-top:.8rem;font-size:.9rem}
.review-card figcaption span{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.82rem}
.review-card .g-icon{flex:0 0 auto}
.reviews.single{grid-template-columns:minmax(0,46rem);justify-content:center}
.reviews.single .review-card .body{padding:1.9rem 2.1rem 1.6rem;text-align:center;align-items:center}
.reviews.single .review-stars{font-size:1.3rem}
.reviews.single blockquote{border-left:0;padding-left:0;position:relative}
.reviews.single blockquote p{font-size:1.12rem}
.reviews.single blockquote::before{content:"\201C";display:block;font-size:3.2rem;line-height:.8;color:var(--cta);font-family:Georgia,serif}
.reviews.single figcaption{width:100%;justify-content:center;flex-direction:column}
.reviews-block .review-link{margin:1.2rem 0 0;font-size:.9rem}
.reviews-block.is-single .kicker,.reviews-block.is-single h2{display:block;text-align:center}
.reviews-block.is-single .review-rating,.reviews-block.is-single .review-link{justify-content:center;text-align:center}
@media(max-width:800px){.reviews{grid-template-columns:1fr}.reviews.single .review-card .body{padding:1.5rem 1.3rem 1.3rem}.reviews.single blockquote p{font-size:1.02rem}}

/* Business hours (1.0.3): footer column + Contact page card */
.foot-grid.five{grid-template-columns:1.3fr 1fr 1fr 1fr 1.15fr}
@media (max-width:980px){.foot-grid.five{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:800px){.foot-grid.five{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.foot-grid.five{grid-template-columns:1fr}}
.fsp-hours{list-style:none;padding:0;margin:0}
.fsp-hours .hrs-d{display:block;font-weight:600}
.site-footer .fsp-hours li{margin:0 0 .5rem}
.site-footer .fsp-hours .hrs-d{color:#fff}
.contact-cards.four{grid-template-columns:repeat(2,1fr)}
@media (max-width:800px){.contact-cards.four{grid-template-columns:1fr}}
.c-card .fsp-hours{margin:.15rem 0 .5rem}
.c-card .fsp-hours li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.2rem 1rem;padding:.4rem 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:.95rem}
.c-card .fsp-hours li:last-child{border-bottom:0}
.c-card .fsp-hours .hrs-d{display:inline}
.hrs-note{font-size:.82rem;font-style:italic;margin:.2rem 0 0}
.site-footer .hrs-note{color:#c9d2dc}
.c-card p.hrs-note{font-size:.85rem;color:var(--muted)}

/* Winter Hours (1.0.4): "Pickup by reservation only" lead + home page hours band */
.hrs-lead{font-size:.84rem;font-weight:700;margin:0 0 .6rem;padding:.2rem 0 .2rem .6rem;border-left:3px solid var(--cta);line-height:1.35}
.site-footer .hrs-lead{color:var(--cta)}
.c-card p.hrs-lead{color:var(--ink);font-size:.88rem;margin:.1rem 0 .5rem}
.hours-band{position:relative;z-index:2;margin-top:-1.6rem}
.hours-card{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--cta);border-radius:var(--rad);box-shadow:0 12px 30px rgba(15,20,25,.10);padding:1.15rem 1.4rem;display:grid;grid-template-columns:auto 1fr auto;gap:1rem 1.8rem;align-items:center}
.hours-title{font-size:1.2rem;margin:0 0 .45rem;letter-spacing:-.01em}
.hours-head .hrs-lead{margin:0;color:var(--ink)}
.hours-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
.hours-row li{background:var(--soft);border:1px solid #f1e3a8;border-radius:10px;padding:.55rem .75rem;margin:0}
.hours-row .hrs-d{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--kick)}
.hours-row .hrs-t{display:block;font-weight:700;font-size:1rem;color:var(--ink);white-space:nowrap}
.hours-side{text-align:right}
.hours-side .hrs-note{color:var(--muted);font-size:.86rem;margin:0 0 .25rem}
.hours-contact{margin:0;font-size:.86rem;color:var(--muted)}
.hours-contact a{font-weight:700;color:var(--ink)}
@media (max-width:980px){.hours-card{grid-template-columns:1fr}.hours-side{text-align:left}}
@media (max-width:640px){.hours-band{margin-top:-1.1rem}.hours-card{padding:1rem 1.05rem}.hours-row{grid-template-columns:1fr;gap:.45rem}.hours-row li{padding:.5rem .8rem}}
/* hours card placed above reviews (v1.0.5) */
.hours-band.hours-band--bottom{margin-top:0;padding:.5rem 0 0}
@media (max-width:640px){.hours-band.hours-band--bottom{margin-top:0;padding-top:.25rem}}
/* call or text (v1.0.6) */
.c-card p.c-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin:.75rem 0 0}
.c-card .c-actions .btn{padding:.45rem 1.05rem;font-size:.86rem}
/* header Call/Text button: inline on wide desktop, stacked label below 1180px so it stays compact */
@media (max-width:1180px){.header-cta .btn-phone{flex-direction:column;gap:0;line-height:1.05}.header-cta .btn-phone .btn-phone-pre{display:block;font-size:.6rem;letter-spacing:.07em;text-transform:uppercase;opacity:.85;font-weight:700}}
@media (min-width:981px) and (max-width:1180px){.site-header .brand-tag{display:none}.site-header .primary-nav,.site-header .primary-nav .menu{gap:.2rem .6rem}.site-header .primary-nav{font-size:.84rem}.site-header .inner{gap:.75rem}}
.nowrap{white-space:nowrap}
