:root {
  --tol-ink: #172d31;
  --tol-moss: #2e4b43;
  --tol-clay: #b65d3a;
  --tol-sand: #f0eadf;
  --tol-sun: #f7b84d;
  --tol-paper: #fbfaf6;
}

/* The shortcode can sit inside a theme's narrow prose wrapper. Make the guide
   itself a deliberate full-width destination experience and let its hero own
   the single visible H1. */
/* The guide owns its visible hero title. Suppress only the theme's duplicate
   post/page heading across the Places hub, regional hubs, and city guides. */
body:has(.tol-places) .wp-block-post-title,
body:has(.tol-places) .entry-header,
body:has(.tol-places) .entry-title,
body:has(.tol-region) .wp-block-post-title,
body:has(.tol-region) .entry-header,
body:has(.tol-region) .entry-title,
body:has(.tol-city) .wp-block-post-title,
body:has(.tol-city) .entry-header,
body:has(.tol-city) .entry-title { display: none !important; }
html:has(.tol-places), body:has(.tol-places),
html:has(.tol-region), body:has(.tol-region),
html:has(.tol-city), body:has(.tol-city) { overflow-x: clip; }
body:has(.tol-places) .wp-site-blocks > main,
body:has(.tol-region) .wp-site-blocks > main,
body:has(.tol-city) .wp-site-blocks > main { margin-top: 0 !important; padding-top: 0 !important; }
/* Divi's default post template keeps a sidebar divider even when the sidebar
   is empty. The hub is a full-bleed destination layout, so remove that
   inherited column and its rule instead of allowing it to cut across cards. */
body:has(.tol-places) #main-content .container,
body:has(.tol-region) #main-content .container,
body:has(.tol-city) #main-content .container { width: 100% !important; max-width: none !important; padding-top: 0 !important; }
body:has(.tol-places) #left-area,
body:has(.tol-region) #left-area,
body:has(.tol-city) #left-area { float: none !important; width: 100% !important; padding-right: 0 !important; }
body:has(.tol-places) #sidebar,
body:has(.tol-region) #sidebar,
body:has(.tol-city) #sidebar,
body:has(.tol-places) #main-content .container:before,
body:has(.tol-region) #main-content .container:before,
body:has(.tol-city) #main-content .container:before { display: none !important; }
.entry-content > .tol-places,
.wp-block-post-content > .tol-places { width: 100vw; max-width: none; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; }
body:has(.tol-places) .wp-block-post-content { margin-block-start: 0 !important; }
.tol-places { color: var(--tol-ink); background: var(--tol-paper); font-family: Georgia, 'Times New Roman', serif; overflow: hidden; }
.tol-places *, .tol-places *:before, .tol-places *:after { box-sizing: border-box; }
.tol-places__shell { width: min(1180px, calc(100% - 42px)); margin: 0 auto; }
.tol-places__hero { min-height: 720px; display: grid; align-items: end; position: relative; color: #fff; background: #172d31 url('https://thatoregonlife.com/wp-content/uploads/2019/06/10300474763_9506ba7c05_o-1024x682.jpg') center / cover no-repeat; isolation: isolate; }
.tol-places__hero-overlay { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(8,28,31,.90) 0%, rgba(8,28,31,.54) 48%, rgba(8,28,31,.08) 100%), linear-gradient(0deg, rgba(8,28,31,.70), transparent 50%); }
.tol-places__hero-copy { padding: 110px 0 115px; max-width: 790px; }
.tol-places__eyebrow { margin: 0 0 14px; font-family: Arial, sans-serif; font-size: 11px; font-weight: 800; letter-spacing: .17em; line-height: 1.2; text-transform: uppercase; }
.tol-places h1, .tol-places h2, .tol-places h3, .tol-places p { margin-top: 0; }
.tol-places h1 { max-width: 720px; margin-bottom: 21px; color: #fff !important; font-size: clamp(3.7rem, 8vw, 7.25rem); letter-spacing: -.065em; line-height: .9; font-weight: 600; }
.tol-places__lede { max-width: 600px; margin-bottom: 34px; font-family: Arial, sans-serif; font-size: clamp(1rem, 1.8vw, 1.3rem); font-weight: 400; line-height: 1.6; }
.tol-places__actions { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; font-family: Arial, sans-serif; font-size: 14px; font-weight: 700; }
.tol-places__button { padding: 15px 21px; background: var(--tol-sun); color: #172d31; text-decoration: none; }
.tol-places__button:hover, .tol-places__button:focus { background: #fff1bf; }
.tol-places__text-button { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.65); padding-bottom: 4px; }
.tol-places__credit { position: absolute; bottom: 15px; right: max(21px, calc((100% - 1180px) / 2)); margin: 0; font: 11px/1.35 Arial, sans-serif; opacity: .8; }
.tol-places__jump { position: relative; background: #fff; border-bottom: 1px solid #dedbd1; font: 700 12px/1 Arial, sans-serif; }
.tol-places__jump .tol-places__shell { display: flex; overflow-x: auto; }
.tol-places__jump a { padding: 21px 23px 19px 0; color: #28433e; text-decoration: none; white-space: nowrap; }
.tol-places__jump a:hover { color: var(--tol-clay); }
.tol-places__section { padding: 110px 0; }
.tol-places__heading { max-width: 670px; margin-bottom: 46px; }
.tol-places__heading .tol-places__eyebrow { color: var(--tol-clay); }
.tol-places h2 { margin-bottom: 17px; color: var(--tol-ink); font-size: clamp(2.4rem, 5.1vw, 4.5rem); letter-spacing: -.056em; line-height: .98; font-weight: 600; }
.tol-places__heading > p:last-child { margin-bottom: 0; color: #50625e; font: 17px/1.65 Arial, sans-serif; }
.tol-places__heading--inline { max-width: none; display: grid; grid-template-columns: minmax(0, .9fr) minmax(320px, .7fr); gap: 64px; align-items: end; }
.tol-places__heading--inline > p { margin-bottom: 7px !important; }
.tol-places__regions { background: var(--tol-sand); }
.tol-places__region-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 18px; }
.tol-places__region-card { min-height: 350px; position: relative; grid-column: span 4; display: flex; overflow: hidden; color: #fff; text-decoration: none; background: var(--tol-moss); isolation: isolate; }
.tol-places__region-card--lead { grid-column: span 8; min-height: 500px; }
.tol-places__region-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; z-index: -2; }
.tol-places__region-card:hover img { transform: scale(1.04); }
.tol-places__region-scrim { position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(12,30,31,.92) 4%, rgba(12,30,31,.18) 73%); }
.tol-places__region-body { padding: 28px; margin-top: auto; display: flex; flex-direction: column; align-items: flex-start; }
.tol-places__region-body p { margin-bottom: 34px; font: 800 11px/1 Arial,sans-serif; letter-spacing: .15em; }
.tol-places__region-body h3 { margin-bottom: 9px; color: #fff !important; font-size: clamp(2rem, 3vw, 3.1rem); line-height: .94; letter-spacing: -.06em; font-weight: 600; text-shadow: 0 2px 18px rgba(0,0,0,.76); }
.tol-places__region-card .tol-places__region-body span,
.tol-places__region-card .tol-places__region-body b { color: #fff !important; text-shadow: 0 2px 14px rgba(0,0,0,.76); }
.tol-places__region-body span { max-width: 500px; margin-bottom: 15px; font: 15px/1.45 Arial,sans-serif; }
.tol-places__region-body small { margin-bottom: 16px; color: #e8d5a4; font: 700 11px/1.4 Arial,sans-serif; text-transform: uppercase; letter-spacing: .08em; }
.tol-places__region-body b { padding-top: 3px; border-bottom: 1px solid currentColor; font: 700 13px/1.4 Arial,sans-serif; }
.tol-places__region-body i { color: var(--tol-sun); font-style: normal; padding-left: 6px; }
.tol-places__region-card:not(a) { cursor: default; }
.tol-places__featured { background: var(--tol-paper); }
.tol-places__feature-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 21px; }
.tol-places__city-card { grid-column: span 4; background: #fff; border: 1px solid #e5e1d8; }
.tol-places__city-card--lead { grid-column: span 8; display: grid; grid-template-columns: 1.16fr .84fr; }
.tol-places__city-image { display: block; overflow: hidden; background: var(--tol-moss); }
.tol-places__city-image img { width: 100%; height: 260px; display: block; object-fit: cover; transition: transform .5s ease; }
.tol-places__city-card--lead .tol-places__city-image img { height: 100%; min-height: 385px; }
.tol-places__city-card:hover .tol-places__city-image img { transform: scale(1.035); }
.tol-places__city-body { padding: 25px 25px 28px; }
.tol-places__city-body p { margin-bottom: 14px; color: var(--tol-clay); font: 800 11px/1 Arial,sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.tol-places__city-body h3 { margin-bottom: 12px; font-size: clamp(2rem, 3.1vw, 3.25rem); letter-spacing: -.06em; line-height: .93; font-weight: 600; }
.tol-places__city-body h3 a { color: var(--tol-ink); text-decoration: none; }
.tol-places__city-body h3 a:hover { color: var(--tol-clay); }
.tol-places__city-body span { display: block; margin-bottom: 20px; color: #50625e; font: 15px/1.55 Arial,sans-serif; }
.tol-places__city-body small { color: var(--tol-moss); font: 700 11px/1.4 Arial,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.tol-places__directory { background: #e9eeeb; }
.tol-places__directory-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid #b9c5bf; border-left: 1px solid #b9c5bf; }
.tol-places__directory-grid a { min-height: 92px; padding: 20px 22px; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; column-gap: 16px; align-content: center; color: var(--tol-ink); text-decoration: none; background: rgba(255,255,255,.48); border-right: 1px solid #b9c5bf; border-bottom: 1px solid #b9c5bf; }
.tol-places__directory-grid strong { font-size: 23px; line-height: 1.05; letter-spacing: -.035em; font-weight: 600; }
.tol-places__directory-grid span { margin-top: 7px; color: #586a65; font: 700 10px/1.2 Arial,sans-serif; letter-spacing: .11em; text-transform: uppercase; }
.tol-places__directory-grid i { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--tol-clay); font-style: normal; transition: transform .2s ease; }
.tol-places__directory-grid a:hover, .tol-places__directory-grid a:focus-visible { color: #fff; background: var(--tol-moss); outline: none; }
.tol-places__directory-grid a:hover span, .tol-places__directory-grid a:focus-visible span { color: #d9e5df; }
.tol-places__directory-grid a:hover i, .tol-places__directory-grid a:focus-visible i { color: var(--tol-sun); transform: translateX(4px); }
.tol-places__trip-types { background: #203f3d; color: #fff; }
.tol-places__trip-types h2 { color: #fff; }
.tol-places__trip-types .tol-places__heading .tol-places__eyebrow { color: #f4c265; }
.tol-places__trip-types .tol-places__heading > p:last-child { color: #d2dfd8; }
.tol-places__trip-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.tol-places__trip-card { min-height: 290px; display: flex; flex-direction: column; justify-content: flex-end; padding: 26px; color: #fff; text-decoration: none; background-color: #31524d; background-size: cover; background-position: center; box-shadow: inset 0 -170px 110px -70px rgba(11,27,28,.92); transition: transform .25s ease; }
.tol-places__trip-card:hover { transform: translateY(-5px); }
.tol-places__trip-card--coast { background-image: url('https://thatoregonlife.com/wp-content/uploads/2019/06/15083330453_50b997c716_o-1024x565.jpg'); }
.tol-places__trip-card--waterfalls { background-image: url('https://thatoregonlife.com/wp-content/uploads/2019/12/drift-creek-falls4.jpg'); }
.tol-places__trip-card--hiking { background-image: url('https://thatoregonlife.com/wp-content/uploads/2015/04/01-Cascade-Head.jpg'); }
.tol-places__trip-card--events { background-image: url('https://thatoregonlife.com/wp-content/uploads/2017/11/heceta_head_lighthouse.jpg'); }
.tol-places__trip-card span { margin-bottom: 10px; color: #f4c265; font: 800 10px/1 Arial,sans-serif; text-transform: uppercase; letter-spacing: .15em; }
.tol-places__trip-card strong { margin-bottom: 10px; color: #fff !important; font-size: 31px; letter-spacing: -.055em; line-height: .95; font-weight: 600; text-shadow: 0 2px 18px rgba(0,0,0,.76); }
.tol-places__trip-card em { color: #fff !important; font: 14px/1.45 Arial,sans-serif; font-style: normal; text-shadow: 0 2px 14px rgba(0,0,0,.76); }
.tol-places__plan { padding: 90px 0; background: #e29a4a; }
.tol-places__plan-inner { display: grid; grid-template-columns: 1.1fr .9fr; gap: 80px; align-items: end; }
.tol-places__plan .tol-places__eyebrow { color: #773a26; }
.tol-places__plan h2 { max-width: 650px; margin-bottom: 18px; font-size: clamp(2.35rem,4.6vw,4rem); }
.tol-places__plan p:not(.tol-places__eyebrow) { max-width: 650px; margin-bottom: 0; font: 16px/1.6 Arial,sans-serif; }
.tol-places__plan-links { display: grid; border-top: 1px solid rgba(36,50,44,.45); }
.tol-places__plan-links a { padding: 18px 0; display: flex; justify-content: space-between; color: #172d31; border-bottom: 1px solid rgba(36,50,44,.45); text-decoration: none; font: 700 16px/1.25 Arial,sans-serif; }
.tol-places__plan-links a:hover span { transform: translateX(4px); }
.tol-places__plan-links span { transition: transform .2s ease; }
@media (max-width: 850px) { .tol-places__hero { min-height: 590px; } .tol-places__region-card, .tol-places__region-card--lead { min-height: 390px; grid-column: span 6; } .tol-places__heading--inline, .tol-places__plan-inner { grid-template-columns: 1fr; gap: 24px; } .tol-places__city-card, .tol-places__city-card--lead { grid-column: span 6; display: block; } .tol-places__city-card--lead .tol-places__city-image img { min-height: 0; height: 300px; } .tol-places__directory-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .tol-places__trip-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px) { .tol-places__shell { width: min(100% - 30px, 1180px); } .tol-places__hero { min-height: 590px; background-position: 59% center; } .tol-places__hero-copy { padding: 110px 0 84px; } .tol-places h1 { font-size: clamp(3.4rem,16vw,5rem); } .tol-places__credit { display: none; } .tol-places__section { padding: 72px 0; } .tol-places__region-grid, .tol-places__feature-grid { gap: 14px; } .tol-places__region-card, .tol-places__region-card--lead, .tol-places__city-card, .tol-places__city-card--lead { grid-column: 1 / -1; } .tol-places__region-card, .tol-places__region-card--lead { min-height: 355px; } .tol-places__city-image img, .tol-places__city-card--lead .tol-places__city-image img { height: 240px; } .tol-places__directory-grid { grid-template-columns: 1fr; } .tol-places__directory-grid a { min-height: 82px; } .tol-places__trip-grid { grid-template-columns: 1fr; } .tol-places__trip-card { min-height: 235px; } .tol-places__plan { padding: 68px 0; } }
