.saito-page-shell {
  position:relative;
  isolation:isolate;
  padding-top:1px
}
.saito-page-paper-top {
  content:"";
  z-index:-1;
  position:absolute;
  inset:0 0 auto;
  height:688.424px;
  background:none;
  overflow:clip;
  mask:url(../images/page-top-mask.svg) 0 0/100% 100% no-repeat;
  mask-mode:alpha;
  opacity:.7
}
.saito-breadcrumb {
  max-width:1170px;
  width:calc(100% - 80px);
  margin:25px auto 0;
  display:flex;
  justify-content:flex-end;
  gap:8px;
  align-items:center;
  font-size:11px;
  line-height:20px;
  color:#66715d
}
.saito-breadcrumb a { text-decoration:none; }
.saito-breadcrumb [aria-hidden] { width:14px; text-align:center; flex-shrink:0; }
.saito-page-heading {
  position:relative;
  display:grid;
  grid-template-columns:125px minmax(0,1fr);
  align-items:start;
  min-height:321px;
  margin:28px 0 74px max(98px,calc((100% - 1170px)/2))
}
.saito-page-title-wrap { display:flex; gap:13px; align-items:flex-start; }
.saito-page-title {
  margin:0;
  writing-mode:vertical-rl;
  color:var(--saito-green);
  font-size:48px;
  font-weight:600;
  line-height:1;
  letter-spacing:0;
  max-height:390px;
  overflow-wrap:anywhere
}
.saito-page-title-long { font-size:36px; max-height:350px; }
.saito-page-subtitle {
  writing-mode:vertical-rl;
  font-family:"DIN Condensed",serif;
  font-size:12px;
  color:var(--saito-red);
  letter-spacing:.1em;
  line-height:1.2
}
.saito-page-featured { margin:0; height:321px; border-radius:40px 0 0 40px; overflow:hidden; }
.saito-page-featured img { width:100%; height:100%; object-fit:cover; }
.saito-page-shell .saito-page-featured:empty { background:#ddd; }
.saito-page-heading-no-image { min-height:220px; grid-template-columns:1fr; }
.saito-page-heading-no-image .saito-page-title { writing-mode:horizontal-tb; max-height:none; }
/* Long editable titles flow above the image instead of overlapping it. */
.saito-page-heading:has(.saito-page-title-long) {
  grid-template-columns:minmax(0,1fr);
  gap:24px;
  margin-right:max(40px,calc((100% - 1170px)/2))
}
.saito-page-heading:has(.saito-page-title-long) .saito-page-title-wrap { flex-direction:column; }
.saito-page-heading:has(.saito-page-title-long) .saito-page-title { writing-mode:horizontal-tb; max-height:none; }
.saito-page-heading:has(.saito-page-title-long) .saito-page-subtitle { writing-mode:horizontal-tb; }
.saito-content { font-size:18px; line-height:31px; letter-spacing:.05em; min-width:0; }
.saito-content::after { content:""; display:block; clear:both; }
.saito-content>* { margin-block:0 28px; }
.saito-content h2 {
  position:relative;
  width:max-content;
  max-width:100%;
  text-align:center;
  font-size:42px;
  line-height:62px;
  font-weight:600;
  letter-spacing:.05em;
  color:var(--saito-green);
  padding:18px 32px;
  margin:81px auto 42px;
  background:none
}
.saito-content h2::before {
  content:"";
  position:absolute;
  inset:-8px 0;
  pointer-events:none;
  background:url(../images/heading-corner.svg) left top/46px 16px no-repeat,
    url(../images/heading-corner-top-right.svg) right top/46px 16px no-repeat,
    url(../images/heading-corner-bottom-left.svg) left bottom/46px 16px no-repeat,
    url(../images/heading-corner-bottom-right.svg) right bottom/46px 16px no-repeat
}
.saito-content h3 { font-size:32px; font-weight:600; line-height:36px; margin:51px 0 31px; padding-bottom:32px; position:relative; }
.saito-content h3::after { content:""; position:absolute; width:65px; height:4px; background:var(--saito-green); left:0; bottom:0; }
.saito-content h4 { position:relative; font-size:28px; font-weight:600; line-height:36px; border-bottom:5px solid transparent; margin:35px 0 23px; padding-bottom:27px; }
/* XD: 1px red dashes and a 2px gold rule, their centers 4px apart. */
.saito-content h4::after { content:""; position:absolute; left:0; right:0; bottom:-4px; height:5.5px; pointer-events:none; background:repeating-linear-gradient(to right,#6c2735 0 1px,transparent 1px 2px) left top/100% 1px no-repeat,linear-gradient(#c1ab48,#c1ab48) left bottom/100% 2px no-repeat; }
.saito-content h5 { font-size:24px; font-weight:600; line-height:36px; margin:37px 0 18px; }
.saito-content h5::before { content:""; display:inline-block; width:24px; height:5px; background:var(--saito-gold); margin-right:10px; vertical-align:middle; }
.saito-content a { color:var(--saito-green); }
.saito-content a:hover { color:var(--saito-red); }
.saito-content ul,.saito-content ol { padding-left:34px; margin-block:0; line-height:28px; }
.saito-content li { padding-left:0; margin-block:0 14px; }
.saito-content li:last-child { margin-bottom:0; }
.saito-content li a,.saito-content .saito-inline-link { font-weight:600; }
.saito-content :where(li a:not(:has(img,svg)):not(.saito-text-link),.saito-inline-link:not(:has(img,svg)))::after { content:""; display:inline-block; width:18px; height:18px; margin-left:6px; background:url(../images/xd/icon__link.svg) center/contain no-repeat; vertical-align:middle; }
.saito-content ul { list-style:none; }
.saito-content ul>li { position:relative; }
.saito-content ul>li::before { content:""; position:absolute; left:-21px; top:8px; width:12px; height:12px; border:0; background:url(../images/list-bullet.svg) center/12px 12px no-repeat; }
.saito-content a[href$=".pdf" i]::after,
.saito-content a[href*=".pdf?" i]::after,
.saito-content a[href*=".pdf#" i]::after,
.saito-content a[href$=".xls" i]::after,
.saito-content a[href*=".xls?" i]::after,
.saito-content a[href*=".xls#" i]::after,
.saito-content a[href$=".doc" i]::after,
.saito-content a[href*=".doc?" i]::after,
.saito-content a[href*=".doc#" i]::after {
  display:inline-block;
  margin-left:6px;
  width:30px;
  height:15px;
  content:"";
  background:center/30px 15px no-repeat;
  vertical-align:middle
}
.saito-content a:is([href$=".pdf" i],[href*=".pdf?" i],[href*=".pdf#" i])::after { width:30px; height:15px; background-image:url(../images/file-pdf.svg); }
.saito-content a:is([href$=".xls" i],[href*=".xls?" i],[href*=".xls#" i])::after { width:30px; height:15px; background-image:url(../images/file-xls.svg); }
.saito-content a:is([href$=".doc" i],[href*=".doc?" i],[href*=".doc#" i])::after { width:30px; height:15px; background-image:url(../images/file-doc.svg); }
.saito-content hr { clear:both; border:0; border-top:2px solid #ada464; margin:32px 0 33px; }
.saito-content table { width:100%; border-collapse:collapse; border-block:2px solid #d5c9b9; font-size:16px; line-height:27px; letter-spacing:0; }
.saito-content th,.saito-content td { padding:24px 20px 26px; text-align:left; font-weight:400; border-bottom:1px dashed #d5c9b9; }
.saito-content th { background:rgb(213 201 185/.2); }
.saito-content thead { background:transparent; }
.saito-content th { font-weight:600; padding-top:23px; padding-bottom:28px; }
.saito-content td { background:rgb(213 201 185/.1); }
.saito-content .wp-block-table { overflow-x:auto; }
.saito-content img { max-width:100%; height:auto; }
.saito-content figure { margin:0 0 28px; }
.saito-content figure.wp-block-table { margin-top:33px; }
.saito-content p:has(>.saito-text-link) { margin:59px 0 0; font-size:16px; line-height:24px; letter-spacing:0; }
.saito-content figcaption,.saito-content .wp-caption-text { font-size:14px; line-height:24px; letter-spacing:0; color:#666; margin-top:10px; }
.saito-content .aligncenter { display:block; margin-inline:auto; }
.saito-content .alignright { float:right; margin:0 0 25px 30px; }
.saito-content .alignleft { float:left; margin:0 30px 25px 0; }
.saito-content .wp-block-columns { display:flex; gap:30px; }
.saito-content .wp-block-column { flex:1; min-width:0; }
.saito-content .wp-block-columns ul,.saito-content .wp-block-columns ol { margin-top:-5px; }
.saito-content .wp-block-columns figure { margin-bottom:0; }
.saito-content iframe { max-width:100%; }
.saito-content blockquote { border-left:3px solid var(--saito-green); padding-left:24px; margin-inline:0; }
.saito-content pre { white-space:pre-wrap; overflow-wrap:anywhere; }
.saito-page-bottom {
  position:relative;
  z-index:-1;
  height:343.278px;
  margin-top:-93px;
  margin-bottom:-.277px;
  background:none;
  overflow:clip;
  mask:url(../images/page-bottom-mask.svg) 0 0/100% 100% no-repeat;
  mask-mode:alpha;
  opacity:.7
}
@media(max-width:1000px) {
  .saito-page-heading { margin-left:40px; grid-template-columns:100px minmax(0,1fr); }
  .saito-page-title { font-size:42px; }
  .saito-page-title-long { font-size:30px; }
  .saito-page-subtitle { font-size:11px; }
}
@media(max-width:600px) {
  .saito-breadcrumb { width:calc(100% - 40px); font-size:11px; margin-top:18px; }
  .saito-page-paper-top {
    top:calc(-1 * var(--saito-header));
    height:474.731px;

    mask-image:url(../images/page-top-mask-mobile.svg)
  }
  .saito-page-heading { margin:15px 0 48px 20px; grid-template-columns:88px minmax(0,1fr); min-height:241px; }
  .saito-page-title-wrap { gap:14px; }
  .saito-page-title { font-size:32px; max-height:240px; line-height:34px; }
  .saito-page-title-long { font-size:24px; max-height:none; }
  .saito-page-subtitle { font-size:12px; }
  .saito-page-featured { height:241px; border-radius:40px 0 0 40px; }
  .saito-page-heading-no-image { grid-template-columns:1fr; min-height:130px; margin-bottom:30px; }
  .saito-page-heading-no-image .saito-page-title-wrap { display:block; }
  .saito-page-heading-no-image .saito-page-subtitle { writing-mode:horizontal-tb; }
  .saito-page-heading:has(.saito-page-title-long) { margin-right:20px; }
  .saito-content { font-size:15px; line-height:26px; }
  .saito-content>* { margin-bottom:0; }
  .saito-content > * + * { margin-top:25px; }
  .saito-content h2 { width:100%; font-size:32px; line-height:38px; padding:20px 12px; margin:47px auto 45px; }
  .saito-content h3 { font-size:24px; margin:31px 0 25px; padding-bottom:28px; }
  .saito-content h4 { font-size:20px; line-height:36px; padding-bottom:11px; margin:15px 0 25px; }
  .saito-content h5 { font-size:17px; line-height:36px; margin:21px 0 15px; }
  .saito-content h5::before { width:24px; height:5px; }
  .saito-content .wp-block-columns { display:grid; grid-template-columns:minmax(0,1fr); gap:17px; margin-top:18px; margin-bottom:0; }
  .saito-content .wp-block-columns ul,.saito-content .wp-block-columns ol { margin-block:0; }
  .saito-content .wp-block-column { margin-block:0; }
  .saito-content .wp-block-column:last-child { margin-bottom:0; }
  .saito-content li { margin-bottom:7px; }
  .saito-content table { display:block; width:100%; max-width:100%; overflow-x:auto; }
  .saito-content .wp-block-table table { display:table; width:max-content; min-width:100%; max-width:none; overflow:visible; }
  .saito-content th,.saito-content td { min-width:110px; padding:16px 20px 12px; font-size:15px; line-height:27px; }
  .saito-content th { padding-top:15px; padding-bottom:10px; }
  .saito-content figure.wp-block-table { margin-top:25px; margin-bottom:0; }
  .saito-content hr { margin:23px 0 24px; }
  .saito-content p:has(>.saito-text-link) { margin-top:20px; line-height:24px; font-size:16px; }
  .saito-content .saito-text-link { font-size:16px; font-weight:600; line-height:24px; }
  .saito-content .alignleft,.saito-content .alignright { float:none; display:block; margin:0 auto 25px; }
  .saito-content figcaption { font-size:12px; }
  .saito-content h2 + p { margin-top:45px; }
  .saito-content h3 + p,.saito-content h4 + p { margin-top:25px; }
  .saito-content h5 + p { margin-top:15px; }
  .saito-content hr + p { margin-top:24px; }
  .saito-page-bottom { height:129.992px; margin-top:-40px; margin-bottom:0; mask-image:url(../images/page-bottom-mask-mobile.svg); }
}

.saito-content .saito-text-link { position:relative; padding:0 3px 7px 4.5px; border-bottom-color:#355e3b; color:#385132; font-size:16px; font-weight:600; transition:color .3s ease-out,border-color .3s ease-out; }
.saito-content .saito-text-link:is(:hover,:focus-visible) { color:#6c2735; border-bottom-color:#6c2735; }
.saito-content .saito-text-link::after { content:""; display:inline-block; width:11px; height:11.911px; margin-left:9.5px; background:url(../images/arrow.svg) center/contain no-repeat; vertical-align:-.2055px; }

/* Original paper pattern: cover transform, flipX, crop and .7 opacity from XD. */
.saito-page-paper-top img,.saito-page-bottom img { position:absolute; left:0; width:100%; max-width:none; height:auto; transform:scaleX(-1); }
.saito-page-paper-top img { top:calc(100vw * -.073478328); }
.saito-page-bottom img { top:calc(100vw * -.0095556835); }
@media(max-width:600px) {
 .saito-page-paper-top img { width:1366px; left:auto; right:0; top:-1145.972222px; }
 .saito-page-bottom img { top:calc(100vw * -.0095558118); }
}

/* Generic index headings inherit a body line height smaller than their font. */
.saito-content > article > .saito-fallback-post-title { line-height: 1.4; }

/* Keep the supplied mascot complete inside existing card frames only. */
.saito-home .saito-card .saito-card-image img.saito-card-fallback,
.saito-home ~ .saito-pickup .saito-pickup-image img.saito-card-fallback,
.saito-main img.saito-card-fallback,
.saito-main .saito-course-card .saito-course-photo img.saito-card-fallback,
.saito-main .saito-tourism-card .saito-tourism-card-photo img.saito-card-fallback,
.saito-main.saito-places-archive .saito-tourism-card .saito-tourism-card-photo img.saito-card-fallback { object-fit: contain; object-position: center; transform: none; }

/* Gallery block grids are images, not the article's decorated text lists. */
:is(.saito-experience-single .saito-detail-body,.saito-tourism-shell .saito-tourism-body) ul.blocks-gallery-grid { padding-left:0; list-style:none; }
:is(.saito-experience-single .saito-detail-body,.saito-tourism-shell .saito-tourism-body) ul.blocks-gallery-grid > li { margin:0; padding:0; }
:is(.saito-experience-single .saito-detail-body,.saito-tourism-shell .saito-tourism-body) ul.blocks-gallery-grid > li::before,
:is(.saito-experience-single .saito-detail-body,.saito-tourism-shell .saito-tourism-body) :is(.wp-block-gallery,.gallery) a::after { content:none; display:none; }
