/* Force the radio buttons to be visible and clickable */
.age-toggle-container span.wpcf7-list-item {
    display: inline-block;
    margin-right: 20px;
    cursor: pointer;
}

.age-toggle-container input[type="radio"] {
    width: 18px;
    height: 18px;
    vertical-align: middle;
    margin-right: 5px;
    cursor: pointer;
}

.age-toggle-container label {
    cursor: pointer;
    font-size: 16px;
    vertical-align: middle;
}

/* Styling for touch-friendly buttons */
.touch-friendly-toggle span.wpcf7-list-item {
    display: inline-block;
    margin: 5px 10px 5px 0;
}

.touch-friendly-toggle label {
    cursor: pointer;
    background: #ffffff;
    padding: 12px 25px;
    border-radius: 6px;
    border: 2px solid #ddd;
    display: inline-block;
    transition: all 0.2s ease-in-out;
    font-size: 16px;
    font-weight: 600;
}

/* Hide the actual radio input circle */
.touch-friendly-toggle input[type="radio"] {
    display: none;
}

/* Style for when a button is hovered */
.touch-friendly-toggle label:hover {
    background: #f0f0f0;
    border-color: #bbb;
}

/* Style for when the button is SELECTED */
.touch-friendly-toggle input[type="radio"]:checked + span {
    background: #0073aa; /* Standard WordPress Blue */
    color: #fff;
    border-color: #0073aa;
    padding: 12px 25px;
    border-radius: 6px;
    display: inline-block;
}

/* Ensure the wrapper span for the selected text looks right */
.touch-friendly-toggle .wpcf7-list-item-label {
    margin: 0;
}

/* Fix massive social media icons on Lodging page */
.elementor-social-icon {
    max-width: 40px !important;
    max-height: 40px !important;
}
/* Improve CTA Button Contrast & Brand Consistency */
.naturo-btn, .elementor-button {
    background-color: #686242 !important; /* Brand Olive Green */
    color: #ffffff !important;
}
.naturo-btn:hover, .elementor-button:hover {
    background-color: #4a462f !important; /* Darker Olive for hover */
}
/* Fix Contact Form 7 Button Color */
.wpcf7-submit {
    background-color: #686242 !important;
    color: #ffffff !important;
    border: none;
    padding: 15px 30px;
    border-radius: 5px;
    cursor: pointer;
}
.wpcf7-submit:hover {
    background-color: #4a462f !important;
}


/* Custom Contact Form 7 Styling - Thibodeau Brand */
.wpcf7-form {
    background: #fcfcfc;
    padding: 30px;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}
.wpcf7-form label {
    font-weight: 600;
    color: #333;
    margin-bottom: 8px;
    display: block;
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #fff;
    transition: all 0.3s ease;
}
.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form textarea:focus {
    border-color: #686242; /* Brand Olive */
    box-shadow: 0 0 0 2px rgba(104, 98, 66, 0.2);
    outline: none;
}
.wpcf7-submit {
    background-color: #686242 !important;
    color: #fff !important;
    padding: 15px 30px !important;
    border: none !important;
    border-radius: 4px !important;
    font-weight: bold !important;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color 0.3s ease !important;
    width: 100%;
}
.wpcf7-submit:hover {
    background-color: #4a452f !important; /* Darker Olive */
}

/* --- FIX: Header Social Icons Right Aligned --- */
.header-top-wrapper .row {
    width: 100% !important;
}
.header-top-wrapper .vs-social-group {
    display: flex !important;
    justify-content: flex-end !important;
    width: 100% !important;
}
.header-top-wrapper .col-xl-6.d-flex {
    justify-content: flex-end !important;
}

/* --- FIX: Logo and Menu Same Line --- */
.header1-inner > .row {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
}
.header1-inner .col-auto {
    flex: 0 0 auto !important;
    width: auto !important;
}

/* --- FIX: Hide Mobile Menu on Desktop --- */
@media (min-width: 992px) {
    .vs-menu-toggle {
        display: none !important;
    }
}

/* --- FIX: 2/3 Width "Smushed" Issue (Stretch Elementor Sections) --- */
.elementor-section-stretched {
    width: 100vw !important;
    left: 0 !important;
}
.elementor-container {
    margin-left: auto !important;
    margin-right: auto !important;
}


/* ==========================================================================
   TOA DESIGN SYSTEM  (added 2026-09-04)
   Standardises typography, buttons, forms, focus states and tap targets.
   Remove this whole block to revert.
   ========================================================================== */

:root{
  --toa-olive:#686242;      /* headings */
  --toa-brass:#9F974F;      /* primary CTA */
  --toa-brass-dark:#8A8343; /* CTA hover */
  --toa-blaze:#C6491C;      /* conversion CTA - brass is 2.99:1 on white and fails WCAG AA; this is 4.80:1 */
  --toa-blaze-dark:#A83C14; /* conversion CTA hover */
  --toa-ink:#44443E;        /* body text */
  --toa-rule:#DDDCD2;
}

/* --- 1. Readable body copy (theme shipped 14px) --- */
body,
body p,
.hero-text,
.vs-text,
.elementor-widget-text-editor,
.elementor-widget-text-editor p{
  font-size:16px;
  line-height:1.7;
}
@media (min-width:1025px){
  body,
  body p,
  .elementor-widget-text-editor,
  .elementor-widget-text-editor p{
    font-size:17px;
  }
}

/* --- 2. One button language everywhere --- */
.wpcf7 input[type=submit],
.wpcf7-submit,
input[type=submit].wpcf7-form-control{
  background-color:var(--toa-blaze) !important;
  color:#fff !important;
  font-family:inherit !important;
  font-size:16px !important;
  font-weight:600 !important;
  line-height:1.2 !important;
  letter-spacing:.02em;
  padding:16px 32px !important;
  border:0 !important;
  border-radius:5px !important;
  min-height:52px;
  cursor:pointer;
  transition:background-color .2s ease, transform .12s ease;
  -webkit-appearance:none;
  appearance:none;
}
.wpcf7 input[type=submit]:hover,
.wpcf7-submit:hover{
  background-color:var(--toa-blaze-dark) !important;
  transform:translateY(-1px);
}

/* --- 3. Form fields --- */
.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 input[type=tel],
.wpcf7 select,
.wpcf7 textarea{
  width:100%;
  font-family:inherit;
  font-size:16px;              /* 16px stops iOS zoom-on-focus */
  color:var(--toa-ink);
  padding:13px 15px;
  border:1px solid var(--toa-rule);
  border-radius:5px;
  background:#fff;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.wpcf7 textarea{min-height:130px;}
.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus{
  border-color:var(--toa-brass);
  box-shadow:0 0 0 3px rgba(159,151,79,.22);
  outline:none;
}
.wpcf7 label{
  display:block;
  font-weight:600;
  margin-bottom:6px;
  color:var(--toa-ink);
}

/* --- 4. Visible keyboard focus (was missing entirely) --- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.vs-btn:focus-visible{
  outline:3px solid var(--toa-blaze);
  outline-offset:2px;
  border-radius:3px;
}

/* --- 5. Tap targets: 44px minimum on touch screens --- */
@media (max-width:1024px){
  .main-menu ul li a,
  .link-btn,
  .vs-btn,
  .footer-links a,
  .widget_nav_menu a{
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }
  .link-btn{padding:10px 0;}
}

/* --- 6. Consistent card imagery (stops mixed aspect ratios distorting) --- */
.vs-service-box img,
.blog-card img,
.service-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* --- 7. Respect reduced-motion preferences --- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}

/* --- 8. Dead asset from the removed WPForms plugin --- */
.wpforms-submit-spinner{display:none !important;}

/* ===================== END TOA DESIGN SYSTEM ===================== */
/* --- 9. Contact Us reads as the primary action, not a nav link --- */
.main-menu > ul > li.menu-item-9546{
  display:inline-flex;
  align-items:center;
  vertical-align:middle;
}
.main-menu > ul > li.menu-item-9546 > a{
  background:var(--toa-blaze);
  color:#fff !important;
  padding:0 26px !important;
  height:42px;
  display:inline-flex;
  align-items:center;
  border-radius:5px;
  margin-left:14px;
  font-weight:600;
  line-height:1;
  white-space:nowrap;
  transition:background-color .2s ease;
}
.main-menu > ul > li.menu-item-9546 > a:hover{
  background:var(--toa-blaze-dark);
  color:#fff !important;
}
@media (max-width:1024px){
  .main-menu > ul > li.menu-item-9546{display:block;}
  .main-menu > ul > li.menu-item-9546 > a{
    margin-left:0;
    height:44px;
  }
}


/* --- 10. CF7 Contact V1 form styles (moved out of the form template:
   CF7 6.x strips <style> tags, which leaked this CSS as visible text
   on 6 pages). --- */
.custom-form-wrapper {
    max-width: 600px;
    font-family: inherit;
}
.custom-form-wrapper .form-group {
    margin-bottom: 25px;
}
.custom-form-wrapper label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #5b6270;
}
.custom-form-wrapper .rounded-input {
    width: 100%;
    border: 1px solid #8e8d80;
    border-radius: 25px;
    padding: 12px 20px;
    background-color: transparent;
    box-sizing: border-box;
}
.custom-form-wrapper .rounded-textarea {
    width: 100%;
    border: 1px solid #8e8d80;
    border-radius: 20px;
    padding: 15px 20px;
    background-color: transparent;
    min-height: 150px;
    box-sizing: border-box;
}
.custom-form-wrapper .rounded-input:focus,
.custom-form-wrapper .rounded-textarea:focus {
    outline: none;
    border-color: #555;
}
.custom-form-wrapper .captcha-container {
    background: #f9f9f9; 
    padding: 15px; 
    border-radius: 15px; 
    border: 1px solid #ddd;
}
.custom-form-wrapper .custom-submit-btn {
    background-color: #fdfae8;
    color: #000;
    border: none;
    padding: 12px 30px;
    border-radius: 4px;
    font-weight: 600;
    cursor: pointer;
    font-size: 16px;
}
.custom-form-wrapper .custom-submit-btn:hover {
    background-color: #f3eed2;
}

/* --- 11. "From the Field" related-reading block (snippet-rendered) --- */
.toa-from-the-field{
  max-width:1140px;
  margin:0 auto;
  padding:56px 20px 64px;
  border-top:1px solid var(--toa-rule);
}
.toa-ftf-eyebrow{
  margin:0 0 6px;
  color:var(--toa-brass);
  font-size:13px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.toa-from-the-field h2{
  margin:0 0 8px;
  color:var(--toa-olive);
  font-size:34px;
  line-height:1.2;
}
.toa-ftf-intro{
  margin:0 0 28px;
  color:var(--toa-ink);
  max-width:62ch;
}
.toa-ftf-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:22px;
}
.toa-ftf-card{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--toa-rule);
  border-radius:6px;
  overflow:hidden;
  text-decoration:none;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.toa-ftf-card:hover{
  transform:translateY(-3px);
  border-color:var(--toa-brass);
  box-shadow:0 8px 22px rgba(68,68,62,.13);
}
.toa-ftf-thumb{
  display:block;
  width:100%;
  height:158px;
  background-size:cover;
  background-position:center;
  background-color:#EDEDE6;
}
.toa-ftf-body{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:18px 20px 20px;
  flex:1;
}
.toa-ftf-title{
  color:var(--toa-olive);
  font-weight:700;
  font-size:17px;
  line-height:1.35;
}
.toa-ftf-more{
  margin-top:auto;
  color:var(--toa-brass);
  font-size:14px;
  font-weight:600;
}
@media (max-width:600px){
  .toa-from-the-field{padding:40px 16px 48px;}
  .toa-from-the-field h2{font-size:27px;}
}
/* --- 12. Service cards: equal height, aligned CTAs --- */
.elementor-widget-naturoserviceslider .slick-track{
  display:flex !important;
  align-items:stretch;
}
.elementor-widget-naturoserviceslider .slick-slide{height:auto !important;}
.elementor-widget-naturoserviceslider .slick-slide > div{height:100%;}
.elementor-widget-naturoserviceslider .service-style1{
  display:flex;
  flex-direction:column;
  height:100%;
}
.elementor-widget-naturoserviceslider .vs-services-content3{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
}
.elementor-widget-naturoserviceslider .vs-services-content3 .link-btn{
  margin-top:auto;
}

/* --- 13. Keep the main nav on a single row on typical desktops --- */
.main-menu > ul{
  flex-wrap:nowrap;
  white-space:nowrap;
}
.main-menu > ul > li > a{white-space:nowrap;}
@media (min-width:1025px) and (max-width:1600px){
  .main-menu > ul > li > a{
    font-size:16px;
    letter-spacing:0;
  }
  .main-menu > ul > li{margin-left:15px;margin-right:15px;}
  .main-menu > ul > li.menu-item-9546 > a{
    padding:0 18px !important;
    margin-left:8px;
  }
}
@media (min-width:1025px) and (max-width:1300px){
  .main-menu > ul > li > a{font-size:15px;}
  .main-menu > ul > li{margin-left:10px;margin-right:10px;}
}
/* --- 14. Vertically centre the nav row so the CTA aligns with the links --- */
@media (min-width:1025px){
  .main-menu > ul{
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    justify-content:flex-end;
  }
  .main-menu > ul > li{
    display:block;
    float:none;
  }
  .main-menu > ul > li.menu-item-9546{
    display:flex;
    align-items:center;
  }
}
/* --- 15. Top bar + social icons: tighter, cleaner, less vertical space --- */
.header-top-wrapper{
  line-height:1;
}
.header-top-wrapper .vs-social-group{
  display:flex;
  align-items:center;
  gap:10px;
}
.header-top-wrapper .vs-social-group a{
  width:30px !important;
  height:30px !important;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:rgba(255,255,255,.16) !important;
  transition:background-color .18s ease, transform .18s ease;
}
.header-top-wrapper .vs-social-group a:hover{
  background:#fff !important;
  transform:translateY(-1px);
}
.header-top-wrapper .vs-social-group a svg,
.header-top-wrapper .vs-social-group a i{
  width:15px;
  height:15px;
  font-size:15px;
  fill:#fff;
  color:#fff;
  transition:fill .18s ease, color .18s ease;
}
.header-top-wrapper .vs-social-group a:hover svg,
.header-top-wrapper .vs-social-group a:hover i{
  fill:var(--toa-olive);
  color:var(--toa-olive);
}
@media (min-width:1025px){
  .header-top-wrapper{
    padding-top:6px !important;
    padding-bottom:6px !important;
  }
  .header-top-wrapper .row,
  .header-top-wrapper .container{
    min-height:0;
  }
}
/* --- 16. CTA button height + tighter top bar --- */
@media (min-width:1025px){
  .main-menu > ul > li.menu-item-9546 > a{
    height:42px !important;
    min-height:42px;
    line-height:1 !important;
  }
  .header-top-wrapper{padding:0 !important;}
  .header-top-wrapper .bg-theme > .container > .row{min-height:0;}
  .header-top-wrapper [class*="col-"]{
    padding-top:5px;
    padding-bottom:5px;
  }
}
/* --- 17. Contact info strip: email fits one line, matches the phone --- */
.info-title{
  font-size:20px;
  line-height:1.35;
  white-space:nowrap;
}
.info-title a,
.info-title span,
.mail-link,
.mail-link span{
  white-space:nowrap;
  font-size:inherit;
  font-weight:inherit;
  letter-spacing:0;
}
.info-box .info-text,
.info-text{
  font-size:15px;
  line-height:1.4;
}
@media (max-width:1400px){ .info-title{font-size:18px;} }
@media (max-width:1200px){ .info-title{font-size:16px;} }
@media (max-width:991px){
  .info-title{font-size:15px;}
}
@media (max-width:520px){
  .info-title{
    font-size:13px;
    white-space:normal;
    overflow-wrap:anywhere;
  }
}
/* --- 18. Trust bar (credentials strip under the hero) --- */
.toa-trustbar{
  background:var(--toa-olive);
  color:#fff;
  padding:16px 20px;
}
.toa-trustbar-inner{
  max-width:1140px;
  margin:0 auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:14px 26px;
}
.toa-trust-item{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:15px;
  font-weight:600;
  line-height:1.25;
  letter-spacing:.01em;
}
.toa-trust-icon{
  width:22px;
  height:22px;
  flex:0 0 22px;
  fill:var(--toa-brass);
}
@media (max-width:900px){
  .toa-trustbar-inner{justify-content:flex-start;}
  .toa-trust-item{flex:0 0 calc(50% - 13px);font-size:14px;}
}
@media (max-width:520px){
  .toa-trustbar{padding:14px 16px;}
  .toa-trust-item{flex:1 1 100%;}
}
/* --- 19. Hero slider: equal slide heights (no white gap on shorter slides) --- */
.elementor-widget-naturobannerslider .slick-track{
  display:flex !important;
  align-items:stretch;
}
.elementor-widget-naturobannerslider .slick-slide{
  height:auto !important;
  float:none;
}
.elementor-widget-naturobannerslider .slick-slide > div{height:100%;}
.elementor-widget-naturobannerslider .vs-hero-bg{
  height:100%;
  display:flex;
  align-items:center;
}
.elementor-widget-naturobannerslider .hero-content-area{width:100%;}
@media (min-width:1025px){
  .elementor-widget-naturobannerslider .vs-hero-bg{
    min-height:min(720px, calc(100vh - 175px));
    padding-top:60px !important;
    padding-bottom:60px !important;
  }
}
@media (max-width:1024px){
  .elementor-widget-naturobannerslider .vs-hero-bg{
    min-height:min(520px, calc(100vh - 150px));
    padding-top:48px !important;
    padding-bottom:48px !important;
  }
}
@media (max-width:600px){
  .elementor-widget-naturobannerslider .vs-hero-bg{
    min-height:430px;
    padding-top:110px !important;
    padding-bottom:90px !important;
  }
}
/* --- 20. About block: true circle for the moose photo + tighter vertical rhythm --- */
.elementor-widget-neturoimagebox .img_1{
  width:290px !important;
  height:290px !important;
  border-radius:50%;
  overflow:hidden;
  aspect-ratio:1 / 1;
}
.elementor-widget-neturoimagebox .img_1 img{
  width:100% !important;
  height:100% !important;
  object-fit:cover;
  object-position:center;
  display:block;
  border-radius:50%;
}
.elementor-widget-neturoimagebox .img_2{
  max-height:520px;
  overflow:hidden;
}
.elementor-widget-neturoimagebox .img_2 img{
  width:100%;
  height:520px;
  object-fit:cover;
  object-position:center;
}
.elementor-widget-neturoimagebox .img_box1{max-height:540px;}

/* tighten the About copy so the column needs less height */
.elementor-widget-naturofeatureslist li{margin-bottom:12px;}
.elementor-widget-naturofeatureslist li:last-child{margin-bottom:0;}
@media (max-width:991px){
  .elementor-widget-neturoimagebox .img_1{width:220px !important;height:220px !important;}
  .elementor-widget-neturoimagebox .img_2,
  .elementor-widget-neturoimagebox .img_2 img{max-height:400px;height:400px;}
  .elementor-widget-neturoimagebox .img_box1{max-height:420px;}
}
/* --- 21. Footer: same content, less vertical space --- */
.elementor-7716 .footer-widget{
  padding-top:56px !important;
  padding-bottom:32px !important;
}
/* brand column: smaller mark, tighter blurb */
.elementor-7716 .elementor-widget-image img{
  max-height:150px;
  width:auto;
}
.elementor-7716 .elementor-widget-text-editor p{
  font-size:15px;
  line-height:1.6;
  margin-bottom:14px;
}
/* link lists */
.elementor-7716 ul li{margin-bottom:7px;}
.elementor-7716 ul li:last-child{margin-bottom:0;}
.elementor-7716 ul li a{line-height:1.35;}
/* widget headings */
.elementor-7716 .widget-title,
.elementor-7716 h2,
.elementor-7716 h4{margin-bottom:14px !important;}
/* trim the gap under the contact strip */
.elementor-7716 .elementor-hidden-tablet > .e-con-inner{padding-bottom:34px !important;}
/* instagram grid */
.elementor-7716 #sb_instagram{padding-bottom:0 !important;}
.elementor-7716 #sbi_images{padding:0 !important;}
@media (max-width:991px){
  .elementor-7716 .footer-widget{padding-top:40px !important;padding-bottom:24px !important;}
  .elementor-7716 .elementor-widget-image img{max-height:120px;}
}
/* --- 22. Trip detail pages (classic-editor layouts) --- */
.toa-trip{max-width:1000px;margin:0 auto;}
.toa-trip-hero{margin:0 0 28px;border-radius:8px;overflow:hidden;}
.toa-trip-hero img{width:100%;height:auto;display:block;}
.toa-trip-lede{font-size:19px;line-height:1.65;color:var(--toa-ink);margin-bottom:30px;}

.toa-price-card{
  display:flex;flex-wrap:wrap;align-items:center;gap:22px;
  background:var(--toa-olive);color:#fff;
  border-radius:8px;padding:26px 30px;margin-bottom:38px;
}
.toa-price-figure{display:flex;flex-direction:column;line-height:1;}
.toa-price-amount{font-size:44px;font-weight:700;letter-spacing:-.01em;}
.toa-price-unit{font-size:14px;opacity:.82;margin-top:6px;letter-spacing:.06em;text-transform:uppercase;}
.toa-price-meta{flex:1 1 260px;}
.toa-price-meta p{margin:0 0 6px;font-size:16px;line-height:1.5;color:#fff;}
.toa-price-note{font-size:14px !important;opacity:.85;letter-spacing:.02em;}
.toa-price-cta{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--toa-blaze);color:#fff !important;text-decoration:none;
  font-weight:600;padding:14px 26px;border-radius:5px;white-space:nowrap;
  transition:background-color .2s ease,transform .12s ease;
}
.toa-price-cta:hover{background:#fff;color:var(--toa-olive) !important;transform:translateY(-1px);}

.toa-split{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-bottom:34px;}
.toa-col h2{margin-top:0;}
.toa-list{list-style:none;padding:0;margin:0 0 20px;}
.toa-list li{position:relative;padding-left:30px;margin-bottom:11px;line-height:1.55;}
.toa-list li::before{position:absolute;left:0;top:0;font-weight:700;}
.toa-list-yes li::before{content:"\2713";color:var(--toa-brass);}
.toa-list-no li::before{content:"\2013";color:var(--toa-muted,#8a8a80);}
.toa-trip-side{margin:0;border-radius:8px;overflow:hidden;}
.toa-trip-side img{width:100%;height:auto;display:block;}

.toa-trip-cta{
  background:var(--toa-surface,#F5F7F2);
  border:1px solid var(--toa-rule);
  border-left:4px solid var(--toa-brass);
  border-radius:6px;padding:24px 28px;margin-top:34px;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;
}
.toa-trip-cta p{margin:0;flex:1 1 320px;}

@media (max-width:820px){
  .toa-split{grid-template-columns:1fr;gap:24px;}
  .toa-price-card{padding:22px;}
  .toa-price-amount{font-size:36px;}
  .toa-trip-lede{font-size:17px;}
}
/* --- 23. Trip hero: banner crop, not a full-height portrait --- */
.toa-trip-hero{max-height:400px;}
.toa-trip-hero img{
  width:100%;
  height:400px;
  object-fit:cover;
  object-position:center 35%;
}
@media (max-width:820px){
  .toa-trip-hero{max-height:250px;}
  .toa-trip-hero img{height:250px;}
}
/* --- 24. Shad page: align every section to one content edge --- */
.page-id-10637 .elementor > .e-con > .e-con-inner,
.page-id-10637 .elementor > .elementor-element > .e-con-inner{
  max-width:1140px;
  margin-left:auto;
  margin-right:auto;
  padding-left:20px;
  padding-right:20px;
}
.page-id-10637 .elementor > .e-con.e-con-full > .e-child,
.page-id-10637 .elementor > .e-con.e-con-full > .elementor-element{
  max-width:1140px;
  margin-left:auto;
  margin-right:auto;
}
.page-id-10637 .elementor .container{
  max-width:1140px;
}
/* even vertical rhythm between sections */
.page-id-10637 .elementor > .e-con{
  padding-top:30px;
  padding-bottom:30px;
}
@media (max-width:820px){
  .page-id-10637 .elementor > .e-con{padding-top:36px;padding-bottom:36px;}
}
/* --- 25. Page title banner: stop it eating the first screen --- */
.vs-breadcrumb-wrapper,
.vs-breadcrumb-wrapper.space-top,
.vs-breadcrumb-wrapper.space-bottom{
  padding-top:56px !important;
  padding-bottom:56px !important;
}
.vs-breadcrumb-wrapper .breadcumb-content{
  padding-top:0 !important;
  padding-bottom:0 !important;
}
.vs-breadcrumb-wrapper .breadcumb-title{
  font-size:44px;
  line-height:1.15;
  margin-bottom:6px;
}
@media (max-width:1024px){
  .vs-breadcrumb-wrapper{padding-top:40px !important;padding-bottom:40px !important;}
  .vs-breadcrumb-wrapper .breadcumb-title{font-size:32px;}
}
@media (max-width:600px){
  .vs-breadcrumb-wrapper{padding-top:30px !important;padding-bottom:30px !important;}
  .vs-breadcrumb-wrapper .breadcumb-title{font-size:26px;}
}
/* --- 26. Footer link list: tighter rhythm --- */
.elementor-7716 .widget_nav_menu ul li,
.elementor-7716 .footer-widget ul li,
.elementor-7716 ul li{
  margin-bottom:2px !important;
  line-height:1.3;
}
.elementor-7716 ul li a{
  display:inline-block;
  padding:6px 0 !important;
  line-height:1.3;
  white-space:nowrap;
}
@media (max-width:991px){
  .elementor-7716 ul li a{white-space:normal;}
}
/* --- 27. Shad page: readable text on the olive band + tighter blocks --- */
.page-id-10637 .elementor-element-0a9c45b3 .sec-title1,
.page-id-10637 .elementor-element-0a9c45b3 .sec-title2,
.page-id-10637 .elementor-element-0a9c45b3 .section-title,
.page-id-10637 .elementor-element-0a9c45b3 .desc,
.page-id-10637 .elementor-element-0a9c45b3 .desc *,
.page-id-10637 .elementor-element-0a9c45b3 h2,
.page-id-10637 .elementor-element-0a9c45b3 h3,
.page-id-10637 .elementor-element-0a9c45b3 p,
.page-id-10637 .elementor-element-0a9c45b3 li{
  color:#ffffff !important;
}
/* keep the white pill button legible */
.page-id-10637 .elementor-element-0a9c45b3 .vs-btn,
.page-id-10637 .elementor-element-0a9c45b3 .vs-btn *{
  color:var(--toa-olive) !important;
}
/* close the dead space under content blocks */
.page-id-10637 .section-title{margin-bottom:0;}
.page-id-10637 .elementor-widget:last-child{margin-bottom:0;}
.page-id-10637 .desc > p:last-child{margin-bottom:0;}
.page-id-10637 .elementor-widget-naturosectiontitle{margin-bottom:0 !important;}
/* --- 28. Any section title sitting on the olive band must be white --- */
.page-id-10637 .e-con[class*="elementor-element"] .sec-title1,
.page-id-10637 .sec-title1.subtitle-selector{color:#ffffff !important;}
.page-id-10637 .elementor-element-0a9c45b3 .sec-title1,
.page-id-10637 .elementor-element-0a9c45b3 .sec-title1 *{color:#ffffff !important;}
/* --- 29. Full-width photo band with caption (trip pages) --- */
.toa-figure-band{
  max-width:760px;
  margin:6px auto 34px;
  border-radius:8px;
  overflow:hidden;
  position:relative;
}
.toa-figure-band img{
  width:100%;
  height:auto;
  display:block;
}
.toa-figure-band figcaption{
  background:var(--toa-olive);
  color:#fff;
  font-size:14px;
  letter-spacing:.01em;
  padding:11px 18px;
  margin:0;
}
/* the two lists now sit as an even pair */
.toa-split{align-items:start;}
.toa-col{min-width:0;}

/* --- 30. Breathing room under the olive CTA band text --- */
.page-id-10637 .elementor-element-0a9c45b3 .desc,
.page-id-10637 .elementor-element-0a9c45b3 .section-title{padding-bottom:14px;}
.page-id-10637 .elementor-element-0a9c45b3{padding-bottom:18px !important;}
/* --- 31. Pricing cards: equal height, aligned tops and bottoms --- */
.vs-plan-wrapper .row{align-items:stretch;}
.vs-plan-wrapper .row > [class*="col-"]{
  display:flex;
  flex-direction:column;
}
.vs-plan-wrapper .plan{
  display:flex;
  flex-direction:column;
  width:100%;
  height:100%;
}
.vs-plan-wrapper .pr__body{flex:1 1 auto;}
.vs-plan-wrapper .pr__footer{margin-top:auto;}
/* keep the card headers (title + image + price) on one baseline */
.vs-plan-wrapper .pr__head{
  display:flex;
  flex-direction:column;
}
.vs-plan-wrapper .pr__head > :first-child{
  min-height:2.6em;
  display:flex;
  align-items:center;
  justify-content:center;
}
.vs-plan-wrapper .pr__head img{
  margin-left:auto;
  margin-right:auto;
}
@media (max-width:991px){
  .vs-plan-wrapper .pr__head > :first-child{min-height:0;}
}
/* --- 32. Trip page intro: lede + at-a-glance strip --- */
.toa-lede{
  font-size:22px;
  line-height:1.45;
  font-weight:600;
  color:var(--toa-olive);
  margin-bottom:16px;
}
.toa-lake-fishing-intro p{color:var(--toa-ink);line-height:1.75;}
.toa-lake-fishing-intro a{color:var(--toa-brass);font-weight:700;text-decoration:underline;}
.toa-glance{
  list-style:none;
  margin:26px 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:14px;
}
.toa-glance li{
  background:#fff;
  border:1px solid var(--toa-rule);
  border-top:3px solid var(--toa-brass);
  border-radius:6px;
  padding:14px 16px;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.toa-glance strong{
  font-size:18px;
  color:var(--toa-olive);
  line-height:1.2;
}
.toa-glance span{
  font-size:13.5px;
  color:var(--toa-ink);
  opacity:.85;
  line-height:1.35;
}
@media (max-width:600px){
  .toa-lede{font-size:19px;}
}
/* --- 33. Wildlife removal: two-column signs / why-us block --- */
.toa-nwr{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:38px;
  max-width:1140px;
  margin:0 auto;
}
.toa-nwr h2{
  color:var(--toa-olive);
  font-size:28px;
  margin:0 0 16px;
}
.toa-nwr .toa-list li{margin-bottom:12px;line-height:1.55;}
.toa-nwr .toa-list li strong{color:var(--toa-olive);}
@media (max-width:820px){
  .toa-nwr{grid-template-columns:1fr;gap:26px;}
  .toa-nwr h2{font-size:23px;}
}
/* --- 34. Booking / availability inquiry form --- */
.toa-book{max-width:100%;}
.toa-book-intro{font-size:16px;line-height:1.6;margin-bottom:20px;color:var(--toa-ink);}
.toa-book-row{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;}
.toa-book-row .toa-book-field{margin-bottom:14px;}
.toa-book label{display:block;font-weight:600;color:var(--toa-ink);margin-bottom:5px;}
.toa-book .req{font-weight:400;opacity:.65;font-size:.9em;}
.toa-book-block{
  border:1px solid var(--toa-rule);
  border-left:3px solid var(--toa-brass);
  border-radius:6px;
  padding:16px 18px 6px;
  margin:0 0 18px;
  background:rgba(255,255,255,.55);
}
.toa-book-block legend{
  font-weight:700;
  color:var(--toa-olive);
  font-size:17px;
  padding:0 8px;
  margin-left:-8px;
}
.toa-book-hint{font-size:14px;line-height:1.5;opacity:.9;margin:0 0 12px;}
.toa-book-block .wpcf7-checkbox{display:flex;flex-direction:column;gap:9px;}
.toa-book-block .wpcf7-list-item{margin:0;}
.toa-book-block .wpcf7-list-item label{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-weight:500;
  cursor:pointer;
  line-height:1.4;
}
.toa-book-block input[type=checkbox]{
  width:19px;height:19px;
  margin-top:1px;
  accent-color:var(--toa-brass);
  flex:0 0 19px;
}
.toa-book-dates input[type=date]{min-height:46px;}
.toa-book-submit{margin-top:6px;}
.toa-book-note{font-size:14px;margin-top:12px;opacity:.9;}
.toa-book-note a{color:var(--toa-brass);font-weight:700;}
@media (max-width:600px){
  .toa-book-row{grid-template-columns:1fr;}
}
/* --- 35. Wildlife removal: 3-step row + compact service-area CTA --- */
.toa-steps{max-width:1140px;margin:0 auto;}
.toa-steps h2{color:var(--toa-olive);font-size:28px;margin:0 0 20px;}
.toa-steps-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.toa-steps-grid li{background:#fff;border:1px solid var(--toa-rule);border-top:3px solid var(--toa-brass);border-radius:6px;padding:20px 22px;}
.toa-step-n{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--toa-brass);color:#fff;font-weight:700;font-size:15px;margin-bottom:10px;}
.toa-steps-grid h3{margin:0 0 7px;color:var(--toa-olive);font-size:19px;}
.toa-steps-grid p{margin:0;line-height:1.55;font-size:15.5px;}
.toa-nwr-cta{max-width:1140px;margin:0 auto;display:grid;grid-template-columns:1.15fr .85fr;gap:32px;align-items:center;background:var(--toa-olive);color:#fff;border-radius:8px;padding:30px 34px;}
.toa-nwr-cta h2{color:#fff;margin:0 0 10px;font-size:28px;}
.toa-nwr-cta p{color:#fff;line-height:1.6;margin:0 0 12px;}
.toa-nwr-towns{font-size:15px;opacity:.92;}
.toa-nwr-badge{font-size:13.5px;opacity:.85;margin:14px 0 0 !important;letter-spacing:.02em;}
.toa-nwr-map{margin:0;}
.toa-nwr-map img{width:100%;max-width:340px;height:auto;display:block;margin:0 auto;border-radius:6px;border:2px solid var(--toa-brass);}
.toa-nwr-map figcaption{text-align:center;font-size:13px;color:#fff;opacity:.8;margin-top:8px;}
@media (max-width:900px){.toa-steps-grid{grid-template-columns:1fr;}.toa-nwr-cta{grid-template-columns:1fr;padding:24px;}}
/* --- 36. Standalone booking section on pages without the theme contact widget --- */
.toa-booking-section{
  max-width:900px;
  margin:0 auto;
  background:var(--toa-surface-2,#F5F7F2);
  border:1px solid var(--toa-rule);
  border-top:4px solid var(--toa-brass);
  border-radius:8px;
  padding:30px 34px;
}
.toa-booking-section h2{
  color:var(--toa-olive);
  margin:0 0 6px;
  font-size:30px;
}
@media (max-width:600px){ .toa-booking-section{padding:22px 18px;} }
.toa-booking-lede{margin:0 0 18px;line-height:1.6;}

/* --- 37. FIX: theme hides every checkbox globally; restore them in the booking form --- */
.toa-book input[type="checkbox"],
.toa-book-block input[type="checkbox"],
.wpcf7 .toa-book input[type="checkbox"]{
  display:inline-block !important;
  opacity:1 !important;
  visibility:visible !important;
  width:19px !important;
  height:19px !important;
  min-width:19px;
  margin:1px 0 0 !important;
  appearance:auto !important;
  -webkit-appearance:checkbox !important;
  accent-color:var(--toa-brass);
  cursor:pointer;
  flex:0 0 19px;
}
.toa-book .wpcf7-list-item-label{cursor:pointer;}

/* --- 38. Contact section: stack testimonials above a comfortably wide form --- */
.elementor-widget-naturocontactform .row{
  flex-direction:column;
}
.elementor-widget-naturocontactform .row > [class*="col-"]{
  width:100%;
  max-width:100%;
  flex:0 0 100%;
}
.elementor-widget-naturocontactform .row > [class*="col-"]:last-child{
  max-width:1140px;
  margin-left:auto;
  margin-right:auto;
  margin-top:26px;
}
/* testimonials read better as a wide band above the form */
.elementor-widget-naturocontactform .row > [class*="col-"]:first-child{
  max-width:900px;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
@media (min-width:992px){
  .toa-book-row{grid-template-columns:1fr 1fr;}
}
/* --- 39. Service cards: the white shape must stretch to fit the text --- */
.elementor-widget-naturoserviceslider .service-style1{position:relative;}
.elementor-widget-naturoserviceslider .service-style1 .bg-shep{
  bottom:0 !important;
  height:auto !important;
  z-index:0;
}
.elementor-widget-naturoserviceslider .service-style1 .bg-shep img{
  width:100% !important;
  height:100% !important;
  object-fit:fill;
  display:block;
}
.elementor-widget-naturoserviceslider .vs-services-content3{
  position:relative;
  z-index:1;
  padding-bottom:22px;
}
/* --- 40. Booking form: two fieldsets side by side on desktop --- */
@media (min-width:900px){
  .toa-book-cols{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
    align-items:start;
  }
  .toa-book-cols .toa-book-block{margin-bottom:18px;}
  .toa-book-block .wpcf7-checkbox{gap:7px;}
}
@media (min-width:900px){
  .toa-book-dates .toa-book-row{grid-template-columns:1fr;}
}
/* --- 41. FIX: number and date inputs were not picked up by the field styling --- */
.wpcf7 input[type=number],
.wpcf7 input[type=date],
.toa-book input[type=number],
.toa-book input[type=date]{
  width:100% !important;
  font-family:inherit;
  font-size:16px;
  color:var(--toa-ink);
  padding:13px 15px;
  border:1px solid var(--toa-rule);
  border-radius:5px;
  background:#fff;
  min-height:52px;
  box-sizing:border-box;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.wpcf7 input[type=number]:focus,
.wpcf7 input[type=date]:focus{
  border-color:var(--toa-brass);
  box-shadow:0 0 0 3px rgba(159,151,79,.22);
  outline:none;
}
/* keep every field in the form on the same footprint */
.toa-book input[type=text],
.toa-book input[type=email],
.toa-book input[type=tel],
.toa-book textarea{
  min-height:52px;
  box-sizing:border-box;
}
.toa-book textarea{min-height:120px;}
/* --- 42. Season note on the booking form --- */
.toa-season-note{
  background:rgba(159,151,79,.13);
  border-left:3px solid var(--toa-brass);
  border-radius:4px;
  padding:10px 13px;
  margin:0 0 12px;
  font-size:14px;
  line-height:1.5;
  color:var(--toa-ink);
}
/* --- 43. FIX: nested containers must not outgrow their parent --- */
.elementor .e-con > .e-con,
.elementor .e-con-full > .e-con-full{max-width:100%;}
.elementor-widget-naturocontactform,
.elementor-widget-naturocontactform .join-wrapper,
.elementor-widget-naturocontactform .join-form,
.elementor-widget-naturocontactform .contact-form-box,
.elementor-widget-naturocontactform .contact-form,
.elementor-widget-naturocontactform .wpcf7{
  max-width:100% !important;
  box-sizing:border-box;
}
.elementor-widget-naturocontactform .join-form{padding-left:24px !important;}
@media (max-width:900px){
  .elementor-widget-naturocontactform .join-form{padding-left:0 !important;}
}

/* --- 44. Pricing cards: full-width horizontal layout for text-heavy trips --- */
@media (min-width:900px){
  .page-id-8549 .vs-plan-wrapper .row > [class*="col-"]{
    flex:0 0 100%;
    max-width:100%;
  }
  .page-id-8549 .vs-plan-wrapper .plan{
    display:grid;
    grid-template-columns:290px 1fr;
    grid-template-areas:"head body" "head footer";
    gap:4px 34px;
    text-align:left;
    align-items:start;
    padding:26px 30px;
  }
  .page-id-8549 .vs-plan-wrapper .pr__head{grid-area:head;text-align:center;}
  .page-id-8549 .vs-plan-wrapper .pr__body{grid-area:body;margin-bottom:0;}
  .page-id-8549 .vs-plan-wrapper .pr__footer{grid-area:footer;justify-self:start;margin-top:14px;}
  .page-id-8549 .vs-plan-wrapper .pr__body p{text-align:left;margin-bottom:10px;}
  .page-id-8549 .vs-plan-wrapper .pr__head img{max-width:250px;}
}
/* --- 45. Booking form: wide and compact, not tall and narrow --- */
.toa-book .toa-book-block{
  float:none !important;
  width:100% !important;
  max-width:100% !important;
  display:block;
  margin:0 0 18px;
}
.toa-book .toa-book-block .wpcf7-checkbox{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:9px 22px;
}
@media (min-width:900px){
  .toa-book-dates .toa-book-row{grid-template-columns:1fr 1fr !important;}
}
.toa-book-dates .toa-book-row + p{margin-top:2px;}
.toa-book .opt{font-weight:400;opacity:.65;font-size:.9em;}

/* --- 46. Contact section: give the form the width, keep the photo a slim column --- */
@media (min-width:992px){
  .elementor .e-con:has(> .elementor-widget-naturocontactform){ flex:1 1 100% !important; max-width:100% !important; }
}

/* --- 47. Trip cards: fill the row, match heights, read as one card --- */
.vs-plan-wrapper .row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(330px,1fr));
  gap:26px;
  margin-left:0;
  margin-right:0;
}
.vs-plan-wrapper .row > [class*="col-"]{
  width:100%;
  max-width:100%;
  flex:none;
  padding-left:0;
  padding-right:0;
}
.vs-plan-wrapper .plan{
  height:100%;
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--toa-rule,#e6e2d8);
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 2px 12px rgba(0,0,0,.05);
  transition:transform .2s ease, box-shadow .2s ease;
  margin-bottom:0 !important;
}
.vs-plan-wrapper .plan:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 28px rgba(0,0,0,.10);
}
.vs-plan-wrapper .pr__head{padding:0 0 14px;min-height:0;}
.vs-plan-wrapper .pr__head > :first-child{min-height:0;padding:0 26px;}
.vs-plan-wrapper .pr__head img{
  width:100%;
  max-width:none;
  height:200px;
  object-fit:cover;
  border-radius:0;
  margin:16px 0 14px;
}
.vs-plan-wrapper .pr__body{
  flex:1 1 auto;
  text-align:left;
  padding:0 26px;
}
.vs-plan-wrapper .pr__body p{text-align:left;}
.vs-plan-wrapper .pr__footer{
  margin-top:auto;
  padding:0 26px 26px;
}
.vs-plan-wrapper .pr__footer a{
  display:inline-block;
  width:100%;
  text-align:center;
}

/* --- 48. Text-heavy trips read better as wide horizontal cards --- */
@media (min-width:900px){
  .page-id-8549 .vs-plan-wrapper .row,
  .page-id-8551 .vs-plan-wrapper .row,
  .page-id-8547 .vs-plan-wrapper .row{grid-template-columns:1fr;}
  .page-id-8549 .vs-plan-wrapper .plan,
  .page-id-8551 .vs-plan-wrapper .plan,
  .page-id-8547 .vs-plan-wrapper .plan{
    display:grid;
    grid-template-columns:300px 1fr;
    grid-template-areas:"head body" "head footer";
    gap:6px 34px;
    text-align:left;
    align-items:start;
    padding:26px 30px;
  }
  .page-id-8549 .vs-plan-wrapper .pr__head,
  .page-id-8551 .vs-plan-wrapper .pr__head,
  .page-id-8547 .vs-plan-wrapper .pr__head{grid-area:head;text-align:center;padding:0;}
  .page-id-8549 .vs-plan-wrapper .pr__head > :first-child,
  .page-id-8551 .vs-plan-wrapper .pr__head > :first-child,
  .page-id-8547 .vs-plan-wrapper .pr__head > :first-child{padding:0;}
  .page-id-8549 .vs-plan-wrapper .pr__head img,
  .page-id-8551 .vs-plan-wrapper .pr__head img,
  .page-id-8547 .vs-plan-wrapper .pr__head img{
    max-width:100%;
    height:190px;
    border-radius:10px;
    margin:12px 0 10px;
  }
  .page-id-8549 .vs-plan-wrapper .pr__body,
  .page-id-8551 .vs-plan-wrapper .pr__body,
  .page-id-8547 .vs-plan-wrapper .pr__body{grid-area:body;margin-bottom:0;padding:0;}
  .page-id-8549 .vs-plan-wrapper .pr__footer,
  .page-id-8551 .vs-plan-wrapper .pr__footer,
  .page-id-8547 .vs-plan-wrapper .pr__footer{
    grid-area:footer;
    justify-self:start;
    margin-top:14px;
    padding:0;
  }
  .page-id-8549 .vs-plan-wrapper .pr__footer a,
  .page-id-8551 .vs-plan-wrapper .pr__footer a,
  .page-id-8547 .vs-plan-wrapper .pr__footer a{width:auto;}
  .page-id-8549 .vs-plan-wrapper .pr__body p,
  .page-id-8551 .vs-plan-wrapper .pr__body p,
  .page-id-8547 .vs-plan-wrapper .pr__body p{text-align:left;margin-bottom:10px;}
}

/* --- 49. Detail / seasonality cards (replaces long bordered text lists) --- */
.toa-lede{font-size:1.05rem;line-height:1.7;margin:0 0 26px;}
.toa-detail-grid,
.toa-season-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:20px;
  margin:0 0 10px;
}
.toa-detail-card,
.toa-season-card{
  background:#fff;
  border:1px solid var(--toa-rule,#e6e2d8);
  border-top:3px solid var(--toa-brass,#9f974f);
  border-radius:10px;
  padding:22px 22px 20px;
}
.toa-detail-card h4{
  margin:0 0 8px;
  font-size:1.05rem;
  color:var(--toa-forest,#2e3b28);
}
.toa-detail-card p,
.toa-season-card p{margin:0;line-height:1.65;}
.toa-season-when{
  display:block;
  font-weight:700;
  color:var(--toa-brass,#9f974f);
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:.82rem;
  margin-bottom:8px;
}

/* --- 50. Service cards: one grid, equal heights, aligned CTAs --- */
.elementor-widget-naturoserviceslider .vs-service-no-slider{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:30px;
  align-items:stretch;
}
.elementor-widget-naturoserviceslider .vs-service-no-slider > [class*="col-"]{
  width:100%;
  max-width:100%;
  flex:none;
  padding-left:0;
  padding-right:0;
}
.elementor-widget-naturoserviceslider .vs-services-box{
  height:100%;
  display:flex;
  flex-direction:column;
  margin-bottom:0 !important;
}
.elementor-widget-naturoserviceslider .vs-services-box .vs-services-thumb{width:100%;}
.elementor-widget-naturoserviceslider .vs-services-box .vs-services-thumb img{
  width:100%;
  height:225px;
  object-fit:cover;
}
.elementor-widget-naturoserviceslider .vs-services-box .vs-services-content{
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
}
.elementor-widget-naturoserviceslider .vs-services-box .vs-services-content > :last-child{margin-top:auto;}

/* --- 51. FIX: Bootstrap align-items utilities carry !important and broke equal-height cards --- */
.elementor-widget-naturoserviceslider .vs-service-no-slider,
.vs-plan-wrapper .row{align-items:stretch !important;}
.elementor-widget-naturoserviceslider .vs-service-no-slider > [class*="col-"],
.vs-plan-wrapper .row > [class*="col-"]{align-self:stretch !important;}

/* all card rows share the tallest row height, so every card matches */
.elementor-widget-naturoserviceslider .vs-service-no-slider,
.vs-plan-wrapper .row{grid-auto-rows:1fr;}

/* --- 53. GUARD: the circular icon cards use a different layout; never crop their icons --- */
.service-layout4 .vs-services-thumb img,
.service-style1 .vs-services-thumb img,
.vs-services-thumb.text-center img{width:auto !important;height:auto !important;max-width:100% !important;object-fit:initial !important;}

/* --- 54. Trout season window callout --- */
.toa-trout-window{margin:28px 0 0;padding:24px 26px;background:#fff;border:1px solid var(--toa-rule,#e6e2d8);border-left:4px solid var(--toa-brass,#9f974f);border-radius:10px;}
.toa-trout-window h4{margin:0 0 10px;font-size:1.1rem;color:var(--toa-forest,#2e3b28);}
.toa-trout-window p{margin:0 0 12px;line-height:1.7;}
.toa-trout-window p:last-child{margin-bottom:0;}

/* --- 55. Starting-price disclaimer under trip pricing --- */
.toa-price-disclaimer{max-width:1250px;margin:26px auto 0;padding:14px 18px;background:rgba(159,151,79,.10);border-left:3px solid var(--toa-brass,#9f974f);border-radius:6px;font-size:14px;line-height:1.6;color:var(--toa-ink,#333);text-align:left;box-sizing:border-box;}

/* --- 56. Centre the booking row: a fixed-width child of a column container is left-aligned by default --- */
.elementor .e-con:has(> .e-con > .elementor-widget-naturocontactform),
.elementor .e-con:has(> .e-con > .elementor-widget-naturogallerycarousel){margin-left:auto !important;margin-right:auto !important;}

/* --- 57. Centre the whole booking block (title + photo + form), not just the row --- */
.elementor .e-con:has(> .e-con > .e-con > .elementor-widget-naturocontactform){align-items:center;}

/* --- 58. Location map: portrait-ish frame so Maine fills it --- */
.toa-map{max-width:960px;margin:0 auto;}
.toa-map iframe{width:100%;height:600px;border:0;display:block;border-radius:10px;}
@media (max-width:768px){.toa-map iframe{height:420px;}}

/* --- 59. Lodging partner cards --- */
.toa-lodging{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,470px),1fr));grid-auto-rows:1fr;gap:30px;max-width:1250px;margin:10px auto 0;}
.toa-lodge{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--toa-rule,#e6e2d8);border-radius:14px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.05);transition:transform .2s ease,box-shadow .2s ease;}
.toa-lodge:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.10);}
.toa-lodge__media img{display:block;width:100%;height:230px;object-fit:cover;}
.toa-lodge__body{display:flex;flex-direction:column;flex:1 1 auto;padding:24px 26px 26px;}
.toa-lodge__region{margin:0 0 6px;font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;color:var(--toa-brass,#9f974f);font-weight:700;}
.toa-lodge__name{margin:0 0 12px;font-size:1.28rem;line-height:1.3;color:var(--toa-forest,#2e3b28);}
.toa-lodge__tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0;}
.toa-lodge__tags li{font-size:.76rem;letter-spacing:.03em;text-transform:uppercase;font-weight:700;color:var(--toa-forest,#2e3b28);background:rgba(159,151,79,.15);border-radius:999px;padding:5px 12px;}
.toa-lodge__intro{margin:0 0 14px;line-height:1.7;}
.toa-lodge__fact{margin:0 0 12px;line-height:1.65;font-size:.95rem;}
.toa-lodge__label{display:block;font-weight:700;color:var(--toa-forest,#2e3b28);font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;margin-bottom:2px;}
.toa-lodge__offer{margin:4px 0 14px;padding:11px 14px;background:rgba(159,151,79,.14);border-left:3px solid var(--toa-brass,#9f974f);border-radius:5px;font-size:.93rem;line-height:1.55;}
.toa-lodge__cta{margin-top:auto;align-self:flex-start;display:inline-block;background:var(--toa-blaze,#C6491C);color:#fff !important;font-weight:700;letter-spacing:.03em;text-decoration:none;padding:12px 22px;border-radius:6px;transition:filter .18s ease;}
.toa-lodge__cta:hover{filter:brightness(1.08);color:#fff !important;}
@media (max-width:600px){.toa-lodging{grid-template-columns:1fr;}.toa-lodge__body{padding:20px;}}

/* --- 60. Font Awesome: render light + regular icons with the solid face --- */
/* The light (186 KB) and regular (170 KB) webfonts were downloading for ~37 small
   icons. Pointing those classes at the solid face, which already loads, avoids
   356 KB of font downloads on every page. */
.fal, .far, .fa-light, .fa-regular{
  font-family:"Font Awesome 5 Pro" !important;
  font-weight:900 !important;
}

/* --- 61. Lightweight Instagram grid (replaces the Smash Balloon front end) --- */
.toa-ig{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.toa-ig__item{display:block;line-height:0;border-radius:4px;overflow:hidden;}
.toa-ig__item img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;display:block;transition:opacity .2s ease, transform .2s ease;}
.toa-ig__item:hover img{opacity:.85;transform:scale(1.04);}
@media (max-width:767px){.toa-ig{grid-template-columns:repeat(2,1fr);}}

/* --- 46. Booking form: one treatment for every field, box and label ---------
   Sections 37, 41, 43 and 45 above each patched this form in turn, and it ended
   up with two box styles, three content widths (535 / 501 / 461 at 1440px) and a
   focus ring on date and number inputs only. This section settles all of it and
   is deliberately last, so it wins without needing !important.
   The <details> styling that used to sit inline in the CF7 template lives here
   too, so every rule for this form is in one file.                           */

/* One field footprint, including the focus ring the text inputs never had. */
.toa-book input[type=text],
.toa-book input[type=email],
.toa-book input[type=tel],
.toa-book input[type=number],
.toa-book input[type=date],
.toa-book select,
.toa-book textarea{
  width:100%;
  box-sizing:border-box;
  min-height:52px;
  padding:13px 15px;
  font-family:inherit;
  font-size:16px;
  line-height:1.4;
  color:var(--toa-ink);
  background:#fff;
  border:1px solid var(--toa-rule);
  border-radius:5px;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.toa-book textarea{min-height:120px;resize:vertical;}
.toa-book input:focus,
.toa-book select:focus,
.toa-book textarea:focus{
  border-color:var(--toa-brass);
  box-shadow:0 0 0 3px rgba(159,151,79,.22);
  outline:none;
}
.toa-book ::placeholder{color:#8d8c84;opacity:1;}

/* One box style. The brass left stripe was on the fieldsets but not on the
   optional-details panel, so they read as two unrelated components. */
.toa-book .toa-book-block,
.toa-book .toa-book-more{
  border:1px solid var(--toa-rule);
  border-left-width:1px;
  border-radius:6px;
  background:#fbfaf6;
  margin:0 0 18px;
}
.toa-book .toa-book-block{padding:16px 18px 8px;}

/* A group inside the panel is not a box. Flattening kills the box-in-box look
   and the width cascade, so every field measures the same. */
.toa-book .toa-book-more__body .toa-book-block{
  border:0;
  background:none;
  border-radius:0;
  padding:0;
  margin:0 0 16px;
}
.toa-book .toa-book-more__body{padding:4px 18px 18px;}

/* Labels, legends and hints on one scale, all flush left. */
.toa-book label{font-size:15px;line-height:1.4;margin-bottom:6px;}
.toa-book .toa-book-block legend{
  font-weight:700;
  color:var(--toa-olive);
  font-size:16px;
  padding:0;
  margin-left:0;
  margin-bottom:6px;
}
.toa-book .toa-book-hint{
  font-size:14px;
  line-height:1.5;
  color:#7c7b73;
  opacity:1;
  margin:0 0 12px;
  text-align:left;
}

/* Checkbox groups share one column rhythm. */
.toa-book .toa-book-block .wpcf7-checkbox{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:10px 22px;
}
.toa-book .toa-book-block .wpcf7-list-item label{
  font-weight:500;
  font-size:15px;
  margin-bottom:0;
}

/* Stacked single fields match the spacing of the two-column rows. */
.toa-book > p:not(.toa-book-intro):not(.toa-book-note):not(.toa-book-submit),
.toa-book .toa-book-more__body > p{margin:0 0 14px;}

/* The optional-details panel. */
.toa-book .toa-book-more > summary{
  cursor:pointer;
  padding:13px 16px;
  font-weight:700;
  font-size:15px;
  color:var(--toa-olive);
  list-style:none;
  display:flex;
  align-items:center;
  gap:9px;
}
.toa-book .toa-book-more > summary::-webkit-details-marker{display:none;}
.toa-book .toa-book-more > summary::before{
  content:"";
  flex:0 0 8px;
  width:8px;height:8px;
  border-right:2px solid var(--toa-brass);
  border-bottom:2px solid var(--toa-brass);
  transform:rotate(-45deg);
  transition:transform .2s ease;
}
.toa-book .toa-book-more[open] > summary::before{transform:rotate(45deg);}
.toa-book .toa-book-more > summary:focus-visible{
  outline:2px solid var(--toa-brass);
  outline-offset:-2px;
}

@media (max-width:600px){
  .toa-book .toa-book-more__body{padding:4px 14px 14px;}
  .toa-book .toa-book-block{padding:14px 14px 6px;}
}