.obs-wrap{--obs-ink:#152b2c;--obs-accent:#a6c8bd;--obs-paper:#f8f7f2;--obs-muted:#66716e;color:var(--obs-ink);font-family:inherit;width:100%;max-width:100%;overflow:hidden;box-sizing:border-box}.obs-wrap *{box-sizing:border-box}.obs-hero{position:relative;min-height:clamp(380px,65vh,720px);display:flex;align-items:end;background-color:#1c3336;background-image:var(--obs-hero-image,linear-gradient(130deg,#213f40,#456c69));background-size:cover;background-position:center;color:#fff}.obs-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.12) 5%,rgba(7,22,23,.76) 100%)}.obs-hero-inner{position:relative;width:min(1200px,calc(100% - 56px));margin:0 auto;padding:100px 0 75px}.obs-kicker{font-size:12px;font-weight:700;letter-spacing:.23em;text-transform:uppercase;color:#d0e2d8}.obs-hero h1{color:#fff!important;font-size:clamp(44px,7vw,100px)!important;line-height:1.03!important;letter-spacing:-.045em;margin:20px 0!important;max-width:1000px;font-weight:750}.obs-hero p{font-size:clamp(16px,1.5vw,20px);max-width:690px;line-height:1.6;color:#f0f4f0;margin:0}.obs-index-body{max-width:1200px;margin:0 auto;padding:82px 28px 110px}.obs-index-heading{margin-bottom:36px}.obs-index-heading>span{font-size:11px;letter-spacing:.2em;font-weight:700;color:#647e74}.obs-index-heading h2{font-size:clamp(28px,4vw,48px);letter-spacing:-.04em;margin:10px 0}.obs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.obs-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 5px 30px rgba(17,37,37,.08);transition:transform .2s,box-shadow .2s}.obs-card:hover{transform:translateY(-5px);box-shadow:0 15px 36px rgba(17,37,37,.14)}.obs-card-link{display:block;color:inherit!important;text-decoration:none!important;height:100%}.obs-card-photo{height:245px;overflow:hidden;background:#25413f}.obs-card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.obs-card:hover .obs-card-photo img{transform:scale(1.05)}.obs-photo-fallback{display:grid;place-items:center;height:100%;color:#fff;letter-spacing:.25em}.obs-card-content{padding:25px 25px 28px}.obs-card-date{font-size:11px;color:#66716e;text-transform:uppercase;letter-spacing:.1em}.obs-card h2{font-size:24px;line-height:1.18;letter-spacing:-.025em;margin:12px 0;color:#152b2c}.obs-card p{font-size:15px;line-height:1.7;color:#596663;min-height:50px}.obs-read{display:inline-flex;gap:8px;margin-top:12px;font-size:11px;letter-spacing:.15em;font-weight:750}.obs-pages{display:flex;justify-content:center;gap:10px;margin-top:50px}.obs-pages a{padding:10px 15px;border:1px solid #d5ded9;border-radius:6px;text-decoration:none}.obs-pages a.active{background:#203f3d;color:#fff}.obs-story-hero{min-height:clamp(460px,70vh,780px)}.obs-story-hero h1{font-size:clamp(40px,6.3vw,88px)!important;max-width:1100px}.obs-story-date{font-size:13px!important;letter-spacing:.06em}.obs-article-body{width:min(820px,calc(100% - 44px));margin:0 auto;padding:76px 0 100px}.obs-lead{font-size:clamp(20px,2.1vw,26px);line-height:1.65;color:#3b514c;margin:0 0 65px}.obs-content-section{margin:0 0 60px}.obs-content-section h2{font-size:clamp(28px,3.3vw,42px);letter-spacing:-.035em;line-height:1.16;margin:0 0 22px;color:#163532}.obs-prose p{font-size:18px;line-height:1.9;margin:0 0 22px;color:#374744}.obs-content-section figure{margin:36px 0 0}.obs-inline-photo{width:100%;height:auto;max-height:700px;object-fit:cover;border-radius:10px}.obs-content-section figcaption{font-size:13px;color:#6e7c76;margin-top:11px}.obs-article-footer{border-top:1px solid #e3e9e5;padding-top:30px;margin-top:80px}.obs-article-footer a{color:#204e47;text-decoration:none;font-weight:700}@media(max-width:960px){.obs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.obs-grid{grid-template-columns:1fr}.obs-hero-inner{width:calc(100% - 36px);padding:80px 0 50px}.obs-hero{min-height:430px}.obs-index-body{padding:56px 18px}.obs-card-photo{height:235px}.obs-article-body{padding:50px 0 70px}.obs-prose p{font-size:16px}.obs-content-section{margin-bottom:44px}}

/* v1.1: Full-width layout inside constrained WordPress block themes. */
body:has(.obs-archive) .wp-block-post-content:has(.obs-archive),
body:has(.obs-archive) .entry-content:has(.obs-archive),
body:has(.obs-archive) .is-layout-constrained:has(> .obs-archive){max-width:none!important;width:100%!important;padding-left:0!important;padding-right:0!important}
.obs-wrap.obs-archive{width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;overflow:hidden}
.obs-archive .obs-hero{min-height:clamp(410px,68vh,750px)}
.obs-archive .obs-hero-inner{width:min(1280px,calc(100% - 72px))}
.obs-archive .obs-index-body{max-width:1320px;width:100%;padding:72px 44px 110px}
.obs-archive .obs-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.obs-archive .obs-card-photo{height:clamp(210px,19vw,290px)}
.obs-archive .obs-card h2{font-size:clamp(21px,1.6vw,27px)}
/* Remove legacy theme sidebar widgets from traditional blog posts, not other pages. */
body.single-post #secondary,body.single-post aside.widget-area,body.single-post .sidebar-primary,body.single-post .site-sidebar,body.single-post .primary-sidebar{display:none!important}
body.single-post #primary,body.single-post .content-area,body.single-post .site-main{max-width:100%!important;width:100%!important;flex:1 1 100%!important}
@media(max-width:960px){.obs-archive .obs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.obs-archive .obs-index-body{padding:60px 28px 90px}}
@media(max-width:640px){.obs-archive .obs-grid{grid-template-columns:1fr}.obs-archive .obs-index-body{padding:48px 18px 72px}.obs-archive .obs-hero-inner{width:calc(100% - 36px)}}

/* v1.2: accurate full-bleed positioning, independent of theme column alignment. */
.obs-wrap.obs-archive,.obs-wrap.obs-article{position:relative;box-sizing:border-box;max-width:none!important;}
.obs-wrap.obs-archive.obs-bleed-ready,.obs-wrap.obs-article.obs-bleed-ready{margin-right:0!important;transform:none!important;}
html,body{overflow-x:clip}
@media(min-width:961px){.obs-archive .obs-index-body{max-width:1400px!important;width:100%!important;padding-left:48px!important;padding-right:48px!important}}

/* v1.4: useful, crawlable trip-planning links beneath each published Story. */
.obs-next-trip{margin-top:64px;padding:clamp(28px,4vw,48px);background:#eaf0ec;border-radius:10px;color:#163532}
.obs-next-kicker{display:block;font-size:11px;letter-spacing:.16em;font-weight:700;color:#55786f}
.obs-next-trip h2{font-size:clamp(28px,3.3vw,39px);margin:13px 0!important;line-height:1.17}
.obs-next-trip p{font-size:16px;line-height:1.75;max-width:640px;margin:0 0 25px}
.obs-trip-resources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:24px}
.obs-trip-resources a{display:flex;justify-content:space-between;gap:12px;padding:13px 15px;background:#fff;border:1px solid #dce5df;border-radius:6px;color:#214b43!important;font-size:14px;font-weight:600;text-decoration:none!important}
.obs-trip-resources a:hover,.obs-trip-resources a:focus-visible{border-color:#528074}
.obs-trip-cta{display:inline-flex;gap:18px;align-items:center;justify-content:space-between;background:#183e3a;color:#fff!important;padding:15px 20px;border-radius:4px;text-decoration:none!important;font-weight:700}
.obs-article-footer{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
@media(max-width:640px){.obs-next-trip{margin-top:40px;padding:24px 19px}.obs-trip-resources{grid-template-columns:1fr}.obs-trip-resources a{min-height:44px;align-items:center}}

/* v1.4.1: Story pages in block themes use the actual Site Editor header/footer.
   Avoid injecting theme template spacing above the full-bleed photo hero. */
body.obs-block-story-template .wp-site-blocks > .obs-story-main{
  display:block;width:100%!important;max-width:none!important;min-width:0;
  padding:0!important;margin:0!important;
}
body.obs-block-story-template .wp-site-blocks > header + .obs-story-main{
  margin-block-start:0!important;
}
body.obs-block-story-template .obs-story-main .obs-article{
  margin-block-start:0!important;
}
/* Only used when a theme does not provide a Site Editor header template part. */
.obs-story-fallback-header{background:#0c0d0e;color:#fff;display:flex;align-items:center;
  justify-content:space-between;gap:24px;min-height:74px;padding:12px clamp(20px,4vw,68px);
  position:relative;z-index:50;box-sizing:border-box}
.obs-story-fallback-logo{color:#fff!important;text-decoration:none!important;font-size:17px;
  line-height:1.1;letter-spacing:.14em;font-weight:750;white-space:nowrap}
.obs-story-fallback-logo span{font-weight:400;letter-spacing:.1em}
.obs-story-fallback-links{display:flex;gap:clamp(16px,3vw,40px);align-items:center}
.obs-story-fallback-links a,.obs-story-mobile-menu nav a{color:#fff!important;
  text-decoration:none!important;text-transform:uppercase;letter-spacing:.12em;
  font-size:11px;font-weight:650;padding:12px 4px}
.obs-story-fallback-links a:hover,.obs-story-fallback-links a:focus-visible,
.obs-story-mobile-menu nav a:hover,.obs-story-mobile-menu nav a:focus-visible{opacity:.75;text-decoration:underline!important;text-underline-offset:5px}
.obs-story-mobile-menu{display:none}
@media(max-width:700px){
  .obs-story-fallback-header{min-height:64px}
  .obs-story-fallback-logo{font-size:13px}
  .obs-story-fallback-links{display:none}
  .obs-story-mobile-menu{display:block;position:relative;margin-left:auto}
  .obs-story-mobile-menu summary{list-style:none;display:flex;gap:12px;align-items:center;
    min-height:44px;padding:0 8px;color:#fff;cursor:pointer;font-weight:650;font-size:12px}
  .obs-story-mobile-menu summary::-webkit-details-marker{display:none}
  .obs-story-mobile-menu nav{position:absolute;right:-12px;top:100%;min-width:210px;
    background:#111517;display:flex;flex-direction:column;gap:2px;padding:14px 20px;
    box-shadow:0 15px 30px #0004;z-index:60}
  .obs-story-mobile-menu nav a{display:block;padding:13px 2px}
}


/* v1.4.2: Journal index — remove the full-height green banner. Keep article photo heroes. */
.obs-archive .obs-index-body{padding-top:42px!important}
.obs-archive .obs-index-heading{margin-bottom:30px}
.obs-archive .obs-index-heading>span{
  display:block;font-size:11px;line-height:1.5;font-weight:700;
  color:#527067;letter-spacing:.16em;text-transform:uppercase;
}
.obs-archive .obs-index-heading h1{
  color:#183431!important;font-size:clamp(30px,4.4vw,54px)!important;
  line-height:1.12!important;letter-spacing:-.04em!important;
  font-weight:750;margin:10px 0 12px!important;text-transform:uppercase;
}
.obs-archive .obs-index-heading p{
  max-width:750px;color:#566b63;font-size:clamp(14px,1.25vw,17px);
  line-height:1.65;margin:0;
}
@media(max-width:960px){.obs-archive .obs-index-body{padding-top:34px!important}}
@media(max-width:640px){
  .obs-archive .obs-index-body{padding-top:28px!important}
  .obs-archive .obs-index-heading{margin-bottom:24px}
  .obs-archive .obs-index-heading h1{font-size:clamp(29px,7.4vw,40px)!important}
}

/* Accessibility pass v1.4.3 — focus visibility and a keyboard-first skip link. */
.obs-skip-link{position:fixed!important;left:12px!important;top:-100px!important;z-index:2147483646!important;background:#fff!important;color:#111!important;border:3px solid #111!important;border-radius:4px!important;padding:12px 18px!important;font-size:16px!important;font-weight:700!important;text-decoration:none!important}
.obs-skip-link:focus,.obs-skip-link:focus-visible{top:12px!important;outline:3px solid #ffcf42!important;outline-offset:2px!important}
.obs-wrap :is(a,button,summary):focus-visible,.obs-story-fallback-header :is(a,summary):focus-visible{outline:3px solid #ffcf42!important;outline-offset:3px!important;box-shadow:0 0 0 2px #111!important}
.obs-story-mobile-menu summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
