/* Local to Local - Travel Plan */
.ltl-travel-plan{--green:#2f684f;--green2:#234f3c;--pale:#eef7f0;--pale2:#f7fbf8;--ink:#243129;--muted:#6f7972;--line:#dce9df;background:#fff;color:var(--ink);font-family:"Noto Sans JP","Yu Gothic",sans-serif}.ltl-travel-shell{width:min(1040px,calc(100% - 48px));margin:auto}.ltl-ui-icon{display:inline-block;width:1.25em!important;height:1.25em!important;max-width:1.25em!important;max-height:1.25em!important;flex:0 0 1.25em;fill:none!important;stroke:currentColor!important;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.2em}.ltl-travel-favorite .ltl-ui-icon{width:14px!important;height:14px!important;max-width:14px!important;max-height:14px!important;flex-basis:14px}.ltl-travel-facts h2 .ltl-ui-icon,.ltl-travel-points h2 .ltl-ui-icon,.ltl-travel-section-head h2 .ltl-ui-icon{width:1.05em!important;height:1.05em!important;max-width:1.05em!important;max-height:1.05em!important}.ltl-travel-facts dt .ltl-ui-icon{width:1em!important;height:1em!important;max-width:1em!important;max-height:1em!important}.ltl-travel-hero{position:relative;width:min(1040px,calc(100% - 48px));height:360px;margin:24px auto 0;overflow:hidden;border-radius:12px;background:var(--pale)}.ltl-travel-hero__image,.ltl-travel-hero__image img{width:100%;height:100%}.ltl-travel-hero__image img{object-fit:cover}.ltl-travel-hero:after{position:absolute;inset:0;background:linear-gradient(90deg,transparent 48%,rgba(25,61,43,.08));content:"";pointer-events:none}.ltl-travel-hero__catch{position:absolute;z-index:2;max-width:340px;margin:0;color:#fff;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(22px,2.1vw,30px);line-height:1.65;letter-spacing:.08em;text-shadow:0 2px 16px rgba(0,0,0,.32)}.ltl-travel-hero__catch--left-top{top:36px;left:36px}.ltl-travel-hero__catch--right-top{top:36px;right:36px}.ltl-travel-hero__catch--left-bottom{bottom:36px;left:36px}.ltl-travel-hero__catch--right-bottom{right:36px;bottom:36px}.ltl-travel-summary{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(300px,.62fr);gap:42px;align-items:start;padding:34px 0 42px}.ltl-travel-summary__main{min-width:0}.ltl-travel-border-links{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 10px;font-size:14px}.ltl-travel-border-links:before{content:"県境エリア";color:var(--muted);font-size:13px;font-weight:700}.ltl-travel-border-links a{padding:2px 2px 4px;border-bottom:1px solid #a9cdb5;color:var(--green2);font-size:14px;font-weight:700;text-decoration:none}.ltl-travel-border-links a:hover{color:var(--green);border-bottom-color:var(--green)}.ltl-travel-title-row{display:flex;gap:20px;align-items:center}.ltl-travel-title-row h1{flex:1;max-width:620px;margin:4px 0 16px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(36px,3.25vw,44px);font-weight:600;line-height:1.38;letter-spacing:.02em}.ltl-travel-favorite{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:9px 14px;border:1px solid #9fc8ad;border-radius:999px;background:#fff;color:var(--green);font:inherit;font-size:12px;font-weight:700}.ltl-travel-favorite:disabled{opacity:.9}.ltl-travel-tag-groups,.ltl-travel-tags{display:flex;flex-wrap:wrap;gap:7px}.ltl-travel-tag-groups{max-width:640px;margin-bottom:16px}.ltl-travel-tags span{padding:5px 11px;border-radius:999px;font-size:12px;font-weight:700}.ltl-travel-tags--style span{border:1px solid #c8dfcf;background:#eaf5ed;color:var(--green2)}.ltl-travel-tags--genre span{border:1px solid #a9cdb5;background:#fff;color:var(--green)}.ltl-travel-intro{max-width:640px;padding:0 0 20px;color:#4f5d54;font-size:16px;line-height:1.95}.ltl-travel-intro>:first-child{margin-top:0}.ltl-travel-intro>:last-child{margin-bottom:0}.ltl-travel-facts{padding:24px 26px;border-radius:12px;background:linear-gradient(145deg,var(--pale2),#fff);box-shadow:0 8px 24px rgba(35,79,60,.06)}.ltl-travel-facts h2,.ltl-travel-points h2,.ltl-travel-section-head h2{margin:0;color:var(--green2);font-size:24px;font-weight:700}.ltl-travel-facts h2{margin-bottom:16px}.ltl-travel-facts dl{margin:0}.ltl-travel-facts dl div{display:grid;grid-template-columns:minmax(0,1fr) 104px;gap:12px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}.ltl-travel-facts dt{font-size:14px;font-weight:700}.ltl-travel-facts dd{margin:0;color:var(--ink);font-size:14px;font-weight:800;text-align:right}.ltl-travel-plan-button{display:block;margin-top:18px;padding:12px 16px;border-radius:999px;background:var(--green);color:#fff;font-size:13px;font-weight:700;text-align:center;text-decoration:none}.ltl-travel-plan-button:hover{background:var(--green2);color:#fff}.ltl-travel-points{max-width:640px;padding:22px 24px;border-radius:10px;background:var(--pale2)}.ltl-travel-points h2{margin-bottom:16px}.ltl-travel-points ol{display:grid;gap:12px;margin:0;padding:0;counter-reset:point;list-style:none}.ltl-travel-points li{position:relative;padding-left:38px;color:#405048;font-size:15px;line-height:1.75}.ltl-travel-points li:before{counter-increment:point;content:counter(point,decimal-leading-zero);position:absolute;top:0;left:0;display:grid;width:27px;height:27px;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:10px;font-weight:800}.ltl-travel-empty{color:var(--muted)}.ltl-travel-spots,.ltl-travel-itinerary,.ltl-travel-gallery{padding:36px 0;border-top:1px solid var(--line)}.ltl-travel-section-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}.ltl-travel-section-head>a{color:var(--green);font-size:13px;font-weight:700;text-decoration:none}.ltl-travel-spot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.ltl-travel-spot-card{overflow:hidden;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:0 5px 16px rgba(35,79,60,.05)}.ltl-travel-spot-card__image{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--pale)}.ltl-travel-spot-card__image img{width:100%;height:100%;object-fit:cover}.ltl-travel-spot-card__body{padding:14px}.ltl-travel-spot-card h3{margin:0 0 10px;font-size:16px}.ltl-travel-spot-card h3 a{color:inherit;text-decoration:none}.ltl-travel-spot-card__links{display:flex;flex-wrap:wrap;gap:6px}.ltl-travel-spot-card__links a{padding:5px 8px;border:1px solid #cfe2d4;border-radius:999px;color:var(--green);font-size:11px;font-weight:700;text-decoration:none}.ltl-travel-day+.ltl-travel-day{margin-top:32px}.ltl-travel-day>h3{display:inline-flex;margin:0 0 16px;padding:8px 16px;border-radius:8px 8px 0 0;background:var(--green);color:#fff;font-size:14px}.ltl-travel-timeline{position:relative;max-width:780px;padding-left:78px}.ltl-travel-timeline:before{position:absolute;top:18px;bottom:16px;left:42px;width:2px;background:#8fbea0;content:""}.ltl-travel-stop{position:relative;display:grid;grid-template-columns:54px 1fr;gap:14px;align-items:start;padding:0 0 14px}.ltl-travel-stop__time{padding-top:18px;color:var(--green);font-size:15px;font-weight:800;text-align:right}.ltl-travel-stop__dot{position:absolute;top:22px;left:-42px;width:11px;height:11px;border:2px solid #fff;border-radius:50%;background:var(--green);box-shadow:0 0 0 2px var(--green)}.ltl-travel-stop__content{display:grid;grid-template-columns:130px 1fr;gap:16px;align-items:center;min-height:96px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#fff}.ltl-travel-stop__image{display:block;overflow:hidden;border-radius:6px;aspect-ratio:16/10}.ltl-travel-stop__image img{width:100%;height:100%;object-fit:cover}.ltl-travel-stop h4{margin:0 0 5px;font-size:16px}.ltl-travel-stop h4 a{color:inherit;text-decoration:none}.ltl-travel-stop__duration{display:block;margin-bottom:6px;color:var(--muted);font-size:12px}.ltl-travel-stop p{margin:0;color:#59665e;font-size:13px;line-height:1.7}.ltl-travel-tip{margin:4px 0 12px -36px}.ltl-travel-gallery__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ltl-travel-gallery figure{margin:0;overflow:hidden;border-radius:8px;aspect-ratio:4/3}.ltl-travel-gallery img{width:100%;height:100%;object-fit:cover}
@media(max-width:980px){.ltl-travel-shell{width:min(100% - 40px,1040px)}.ltl-travel-hero{width:min(100% - 40px,1040px);height:320px}.ltl-travel-summary{grid-template-columns:1fr}.ltl-travel-facts{max-width:none}.ltl-travel-spot-grid{grid-template-columns:repeat(2,1fr)}.ltl-travel-title-row{align-items:flex-start}.ltl-travel-title-row h1,.ltl-travel-intro,.ltl-travel-points,.ltl-travel-tag-groups{max-width:none}.ltl-travel-timeline{max-width:none}}
@media(max-width:700px){.ltl-travel-shell{width:min(100% - 32px,1040px)}.ltl-travel-hero{width:100%;height:220px;margin-top:0;border-radius:0}.ltl-travel-hero__catch{right:22px!important;bottom:24px!important;left:22px!important;top:auto!important;font-size:21px}.ltl-travel-summary{padding-top:22px}.ltl-travel-title-row{display:block}.ltl-travel-title-row h1{font-size:34px}.ltl-travel-favorite{margin-bottom:10px}.ltl-travel-spot-grid,.ltl-travel-gallery__grid{grid-template-columns:1fr}.ltl-travel-section-head{align-items:flex-start;flex-direction:column}.ltl-travel-timeline{padding-left:54px}.ltl-travel-timeline:before{left:27px}.ltl-travel-stop{grid-template-columns:42px 1fr;gap:10px}.ltl-travel-stop__dot{left:-32px}.ltl-travel-stop__content{grid-template-columns:1fr}.ltl-travel-stop__image{max-width:180px}.ltl-travel-tip{margin-left:-20px}}


/* Give each stop room to read as a chapter, with tips attached to that stop. */
.ltl-travel-itinerary{padding:72px 0 96px}
.ltl-travel-itinerary .ltl-travel-section-head{margin-bottom:52px}
.ltl-travel-itinerary .ltl-travel-day+.ltl-travel-day{margin-top:96px}
.ltl-travel-itinerary .ltl-travel-day>h3{margin:0 0 40px;padding:10px 20px;border-radius:2px;font-size:16px;letter-spacing:.08em}
.ltl-travel-itinerary .ltl-travel-timeline{max-width:880px;margin:0 auto;padding-left:72px}
.ltl-travel-itinerary .ltl-travel-timeline:before{left:25px;top:14px;bottom:0;background:#e0e9e3;width:1px}
.ltl-travel-itinerary .ltl-travel-stop{display:block;padding:0 0 80px}
.ltl-travel-itinerary .ltl-travel-stop:last-child{padding-bottom:0}
.ltl-travel-itinerary .ltl-travel-stop__dot{top:8px;left:-52px;width:9px;height:9px;box-shadow:0 0 0 1px var(--green)}
.ltl-travel-itinerary .ltl-travel-stop__time{margin-bottom:16px;padding:0;font-size:14px;letter-spacing:.08em;text-align:left}
.ltl-travel-itinerary .ltl-travel-stop__time:empty{display:none}
.ltl-travel-itinerary .ltl-travel-stop__content{display:block;min-height:0;padding:0;border:0;border-radius:0;background:transparent}
.ltl-travel-itinerary .ltl-travel-stop__image{width:100%;max-width:none;aspect-ratio:16/9;margin:0 0 30px;border-radius:3px;background:var(--pale)}
.ltl-travel-itinerary .ltl-travel-stop__image img{display:block;width:100%;height:100%;object-fit:cover}
.ltl-travel-itinerary .ltl-travel-stop__content>div{max-width:660px;margin:0 auto}
.ltl-travel-itinerary .ltl-travel-stop h4{margin:0 0 20px;padding:0;border:0;background:none;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(24px,2.8vw,32px);font-weight:600;line-height:1.55}
.ltl-travel-itinerary .ltl-travel-stop__duration{margin:0 0 18px;font-size:13px}
.ltl-travel-itinerary .ltl-travel-stop p{font-size:16px;line-height:2.1;letter-spacing:.025em}
.ltl-travel-itinerary .ltl-travel-tip{display:block;max-width:660px;margin:30px auto 0}
.ltl-travel-itinerary .ltl-travel-tip__rail{display:none}
.ltl-travel-itinerary .ltl-travel-tip__card{border:0;border-left:3px solid #b8cbbd;border-radius:0;background:#f6f8f4;box-shadow:none}
.ltl-travel-itinerary .ltl-travel-tip__inner{padding:24px 28px;gap:24px}
.ltl-travel-itinerary .ltl-travel-tip h4{margin:0 0 12px;font-size:20px}
.ltl-travel-itinerary .ltl-travel-tip p{font-size:14px;line-height:1.95}
.ltl-travel-itinerary .ltl-travel-tip__label{color:var(--green);margin-bottom:12px}
.ltl-travel-itinerary .ltl-travel-tip--caution .ltl-travel-tip__card{border-left-color:#b99c66;background:#fbf8f1}
@media(max-width:700px){
.ltl-travel-itinerary{padding:48px 0 64px}
.ltl-travel-itinerary .ltl-travel-section-head{margin-bottom:32px}
.ltl-travel-itinerary .ltl-travel-day+.ltl-travel-day{margin-top:64px}
.ltl-travel-itinerary .ltl-travel-day>h3{margin-bottom:28px}
.ltl-travel-itinerary .ltl-travel-timeline{padding-left:24px}
.ltl-travel-itinerary .ltl-travel-timeline:before{left:3px}
.ltl-travel-itinerary .ltl-travel-stop{padding-bottom:56px}
.ltl-travel-itinerary .ltl-travel-stop__dot{left:-25px}
.ltl-travel-itinerary .ltl-travel-stop__image{aspect-ratio:4/3;margin-bottom:24px}
.ltl-travel-itinerary .ltl-travel-stop p{font-size:15px;line-height:2}
.ltl-travel-itinerary .ltl-travel-tip__inner{grid-template-columns:1fr;padding:20px}
.ltl-travel-itinerary .ltl-travel-tip__image{width:100%;height:auto;aspect-ratio:16/9}
}


/* Text-led itinerary: photos support the writing alongside each stop. */
.ltl-travel-itinerary .ltl-travel-stop__content{
    display:grid;
    grid-template-columns:minmax(0,1fr) 220px;
    column-gap:36px;
    align-items:start;
}
.ltl-travel-itinerary .ltl-travel-stop__content>div{
    grid-column:1;
    grid-row:1;
    width:100%;
    max-width:none;
    margin:0;
    min-width:0;
}
.ltl-travel-itinerary .ltl-travel-stop__image{
    grid-column:2;
    grid-row:1;
    width:100%;
    max-width:220px;
    aspect-ratio:4/3;
    margin:4px 0 0;
    border-radius:3px;
}
.ltl-travel-itinerary .ltl-travel-stop__content:not(:has(.ltl-travel-stop__image)){
    grid-template-columns:minmax(0,1fr);
}
.ltl-travel-itinerary .ltl-travel-stop h4{
    font-family:"Noto Sans JP","Yu Gothic",sans-serif;
    font-size:clamp(21px,2.3vw,26px);
    margin-bottom:18px;
    font-weight:700;
}
.ltl-travel-itinerary .ltl-travel-stop{padding-bottom:72px}
.ltl-travel-itinerary .ltl-travel-tip{max-width:none;margin:26px 0 0}
.ltl-travel-itinerary .ltl-travel-tip h4{font-size:18px;margin-bottom:10px}
@media(max-width:700px){
    .ltl-travel-itinerary .ltl-travel-stop__content{
        grid-template-columns:minmax(0,1fr) 104px;
        column-gap:18px;
    }
    .ltl-travel-itinerary .ltl-travel-stop__image{
        max-width:104px;
        aspect-ratio:1;
        margin:4px 0 0;
    }
    .ltl-travel-itinerary .ltl-travel-stop{padding-bottom:52px}
}
@media(max-width:380px){
    .ltl-travel-itinerary .ltl-travel-stop__content{grid-template-columns:minmax(0,1fr) 80px;column-gap:12px}
    .ltl-travel-itinerary .ltl-travel-stop__image{max-width:80px}
}


/* One heading gutter for English labels and Japanese title text. */
.ltl-travel-shell .ltl-section-heading{
    position:relative;
    display:block;
    box-sizing:border-box;
    width:100%;
    max-width:none;
    margin-left:0;
    margin-right:0;
    padding-left:38px;
    padding-right:0;
}
.ltl-travel-shell .ltl-section-heading>div:first-child{margin:0;padding:0}
.ltl-travel-shell .ltl-section-heading>p:first-child,
.ltl-travel-shell .ltl-section-heading>div:first-child>p:first-child{
    margin-left:0;
    padding-left:0;
    text-indent:0;
}
.ltl-travel-shell .ltl-section-heading>h2,
.ltl-travel-shell .ltl-section-heading>div:first-child>h2{
    position:relative;
    margin-left:0;
    padding-left:0;
    text-indent:0;
}
.ltl-travel-shell .ltl-section-heading h2>.ltl-ui-icon{
    position:absolute;
    left:-38px;
    top:.2em;
    margin:0;
}
.ltl-travel-shell .ltl-external-related{
    width:100%;
    max-width:none;
    box-sizing:border-box;
    margin-left:0;
    margin-right:0;
    padding-left:0;
    padding-right:0;
}
@media(max-width:700px){
    .ltl-travel-shell .ltl-section-heading{padding-left:32px}
    .ltl-travel-shell .ltl-section-heading h2>.ltl-ui-icon{left:-32px}
}


/* Keep actions above the title and give facts their full reading width. */
.ltl-travel-plan .ltl-travel-summary__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-bottom:18px}
.ltl-travel-plan .ltl-travel-summary__toolbar .ltl-travel-border-links{margin:0;flex:1 1 180px}
.ltl-travel-plan .ltl-travel-summary__toolbar .ltl-travel-favorite{margin:0;white-space:nowrap}
.ltl-travel-plan .ltl-travel-title-row{display:block}
.ltl-travel-plan .ltl-travel-title-row h1{max-width:none}
.ltl-travel-plan .ltl-travel-facts dl>div{display:block;padding:20px 0}
.ltl-travel-plan .ltl-travel-facts dt{margin:0 0 12px;padding:0;border:0}
.ltl-travel-plan .ltl-travel-facts dd{margin:0;padding:0;border:0;text-align:left;font-weight:600;line-height:1.85;overflow-wrap:anywhere}
.ltl-travel-plan .ltl-travel-facts .ltl-travel-fact-options{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.ltl-travel-plan .ltl-travel-facts .ltl-travel-fact-options>li{margin:0;padding:4px 12px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:13px;line-height:1.7;word-break:normal;overflow-wrap:anywhere}
@media(max-width:700px){
.ltl-travel-plan .ltl-travel-summary__toolbar{gap:12px;margin-bottom:20px}
.ltl-travel-plan .ltl-travel-summary__toolbar .ltl-travel-favorite{font-size:12px}
}

/* Difficulty uses the same badge treatment as seasons, with a separate memo. */
.ltl-travel-plan .ltl-travel-facts .ltl-travel-difficulty-label{display:inline-block;padding:4px 12px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:13px;line-height:1.7}
.ltl-travel-plan .ltl-travel-facts .ltl-travel-difficulty-memo{display:block;margin-top:10px;color:#59665e;font-size:13px;font-weight:400;line-height:1.9}


/* 基本情報のアイコンとラベルのサイズ・間隔を統一する。 */
.ltl-travel-plan .ltl-travel-facts h2,
.ltl-travel-plan .ltl-travel-facts dt {
    display: flex;
    align-items: center;
    gap: 10px;
}
.ltl-travel-plan .ltl-travel-facts dt .ltl-ui-icon {
    width: 22px !important;
    height: 22px !important;
    max-width: 22px !important;
    max-height: 22px !important;
    flex: 0 0 22px;
    margin: 0;
    color: var(--green2);
    stroke-width: 1.7;
}
.ltl-travel-plan .ltl-travel-facts h2 .ltl-ui-icon {
    width: 28px !important;
    height: 28px !important;
    max-width: 28px !important;
    max-height: 28px !important;
    flex: 0 0 28px;
    margin: 0;
    stroke-width: 1.7;
}


/* 入れ子の関連セクションでは、本文コンテナの余白に統一する。 */
.ltl-travel-shell > .ltl-photo-related,
.ltl-travel-shell > .ltl-related-columns,
.ltl-travel-shell > .ltl-external-related {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin-right: 0;
    margin-left: 0;
    padding-right: 0;
    padding-left: 0;
}
.ltl-travel-shell > .ltl-external-related .ltl-external-carousel {
    padding: 0 0 56px;
}
.ltl-travel-shell > .ltl-external-related .ltl-external-carousel__viewport {
    padding-right: 0;
    padding-left: 0;
}
.ltl-travel-shell > .ltl-external-related .ltl-external-carousel__button {
    top: auto;
    bottom: 0;
    height: 36px;
    transform: none;
}

