.lead {
  max-width: 760px;
  margin: -1rem 0 2rem;
  color: #526673;
  font-size: 1rem;
}

.situation-grid {
  grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 800px) {
  .situation-grid {
    grid-template-columns: 1fr;
  }
}

.footer-links { display:flex; gap:1.2rem; flex-wrap:wrap; margin:1.2rem 0; }
.footer-links a { color:#f1c271; text-decoration:none; font-size:.88rem; font-weight:600; }
.footer-links a:hover { text-decoration:underline; }

.situation-link { display:inline-block; color:var(--red); font-size:.88rem; font-weight:700; text-decoration:none; padding:.6rem 0; }
.situation-link:hover { text-decoration:underline; }
.article-index { background:#fff; }
.article-index-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.article-index-grid a { display:grid; grid-template-columns:52px 86px 1fr; align-items:center; gap:.8rem; padding:1.2rem; border:1px solid var(--line); border-left:4px solid var(--red); color:var(--ink); text-decoration:none; transition:.2s; }
.article-index-grid a:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(11,40,66,.09); }
.article-index-grid b { color:var(--red); font:700 1.25rem "Shippori Mincho",serif; }
.article-index-grid span { display:inline-block; text-align:center; padding:.2rem .5rem; background:var(--paper); color:#665b49; font-size:.75rem; font-weight:700; }
.article-index-grid strong { font-family:"Shippori Mincho",serif; }
.saving-guide { background:#f1f6f2; }
.saving-points { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:2rem 0 .5rem; }
.saving-points div { padding:1rem 1.1rem; background:#fff; border-left:4px solid #3f7656; }
.saving-points b { display:block; color:#244d35; font-family:"Shippori Mincho",serif; }
.saving-points span { color:var(--muted); font-size:.82rem; }
.saving-guide .essential-icon { background:#fff; }
.saving-advice { margin-top:2.3rem; padding:1.4rem 1.6rem; background:#244d35; color:#fff; border-left:6px solid #e0b962; }
.saving-advice strong { font-family:"Shippori Mincho",serif; font-size:1.15rem; color:#f4d58a; }
.saving-advice p { margin:.5rem 0 0; color:#e7f0ea; }
.solo-guide { background:#fff; }
.article-intro { max-width:880px; }
.article-no { color:var(--gold); font-family:"Shippori Mincho",serif; font-weight:700; margin:.1rem 0; }
.article-intro h2 { margin-bottom:1.2rem; }
.article-lead { max-width:800px; color:#435967; font-size:1.02rem; }
.essential-list { margin-top:2.5rem; border-top:1px solid var(--line); }
.essential-card { display:grid; grid-template-columns:70px 100px 1fr; gap:1.4rem; padding:2rem 0; border-bottom:1px solid var(--line); align-items:start; }
.essential-num { font:700 1.4rem "Shippori Mincho",serif; color:var(--red); }
.essential-icon { width:88px; height:88px; display:grid; place-items:center; background:#edf2f4; border-radius:50%; font-size:2.7rem; }
.essential-copy > span { color:var(--red); font-size:.76rem; font-weight:700; letter-spacing:.05em; }
.essential-copy h3 { color:var(--ink); font:700 1.45rem "Shippori Mincho",serif; margin:.2rem 0 .4rem; }
.essential-copy p { color:#526673; margin:.25rem 0; }
.essential-copy .check { margin:.8rem 0 1rem; padding:.7rem 1rem; background:var(--paper); font-size:.88rem; }
.essential-copy a { display:inline-block; color:var(--red); border:1px solid var(--red); border-radius:4px; padding:.65rem 1rem; text-decoration:none; font-weight:700; font-size:.9rem; }
.essential-copy a:hover { background:var(--red); color:#fff; }
.solo-advice { margin-top:2.3rem; padding:1.4rem 1.6rem; background:var(--ink); color:#fff; border-left:6px solid var(--gold); }
.solo-advice strong { font-family:"Shippori Mincho",serif; font-size:1.15rem; color:#f1c271; }
.solo-advice p { margin:.5rem 0 0; color:#e2eaf0; }
.article-note { font-size:.8rem; color:var(--muted); margin-top:1rem; }
.travel-guide { background:var(--paper); }
.travel-visual { margin:2rem 0 0; }
.travel-visual img { display:block; width:100%; max-height:560px; object-fit:cover; border-radius:8px; box-shadow:0 14px 34px rgba(11,40,66,.12); }
.travel-guide .essential-list { border-top-color:#d8d4c9; }
.travel-guide .essential-card { border-bottom-color:#d8d4c9; }
.travel-guide .essential-icon { background:#fff; }
.travel-advice { margin-top:2.3rem; padding:1.4rem 1.6rem; background:#fff; color:var(--ink); border-left:6px solid var(--red); box-shadow:0 8px 24px rgba(11,40,66,.07); }
.travel-advice strong { font-family:"Shippori Mincho",serif; font-size:1.15rem; color:var(--red); }
.travel-advice p { margin:.5rem 0 0; color:#435967; }
.winter-guide { background:#eef3f7; }
.winter-groups { display:grid; grid-template-columns:repeat(4,1fr); gap:.8rem; margin:2rem 0 .5rem; }
.winter-group { padding:1rem; background:#fff; border-top:4px solid var(--ink2); }
.winter-group span { color:var(--ink); font-family:"Shippori Mincho",serif; font-weight:700; }
.winter-group p { margin:.2rem 0 0; color:var(--muted); font-size:.8rem; }
.winter-guide .essential-icon { background:#fff; }
.winter-advice { margin-top:2.3rem; padding:1.4rem 1.6rem; background:var(--ink); color:#fff; border-left:6px solid #7db5d8; }
.winter-advice strong { font-family:"Shippori Mincho",serif; font-size:1.15rem; color:#b9ddf3; }
.winter-advice p { margin:.5rem 0 0; color:#e2eaf0; }
.extra-guide:nth-of-type(even) { background:#f7f4ed; }
.extra-guide:nth-of-type(odd) { background:#fff; }
.extra-guide .essential-icon { background:#edf2f4; }
.guide-advice { margin-top:2.3rem; padding:1.4rem 1.6rem; background:var(--ink); color:#fff; border-left:6px solid var(--gold); }
.guide-advice strong { font-family:"Shippori Mincho",serif; font-size:1.15rem; color:#f1c271; }
.guide-advice p { margin:.5rem 0 0; color:#e2eaf0; }

@media (max-width: 800px) {
  .essential-card { grid-template-columns:48px 1fr; gap:.9rem; }
  .essential-icon { width:70px; height:70px; font-size:2.1rem; grid-column:2; }
  .essential-copy { grid-column:1 / 3; }
  .saving-points { grid-template-columns:1fr; }
  .winter-groups { grid-template-columns:repeat(2,1fr); }
  .article-index-grid { grid-template-columns:1fr; }
  .article-index-grid a { grid-template-columns:42px 72px 1fr; padding:1rem; }
}

/* Phone layout: show the route into the guides sooner and make links easy to use. */
img { max-width:100%; }
.section > *, .essential-card > *, .article-index-grid a > * { min-width:0; }
h1, h2, h3, p, a, li { overflow-wrap:anywhere; }
@media (max-width: 600px) {
  .site-header { height:60px; padding:0 16px; }
  .site-header nav { top:60px; max-height:calc(100dvh - 60px); overflow-y:auto; padding:8px 16px 16px; gap:0; box-shadow:0 10px 18px rgba(11,40,66,.12); }
  .site-header nav a { display:flex; align-items:center; min-height:46px; padding:7px 5px; border-bottom:1px solid var(--line); font-size:1rem; }
  .menu { min-height:44px; min-width:72px; font:600 .95rem "Noto Sans JP",sans-serif; }
  .brand { gap:.45rem; font-size:.9rem; white-space:nowrap; }
  .noren { flex:none; }
  .hero { min-height:0; display:block; }
  .hero img { width:100%; height:210px; min-height:0; object-fit:cover; object-position:center; display:block; }
  .hero:after { display:none; }
  .hero-copy { position:relative; inset:auto; display:block; padding:23px 18px 28px; background:var(--ink); max-width:none; }
  .hero h1 { font-size:clamp(2rem,9vw,2.6rem); margin:.1rem 0 .7rem; }
  .hero-copy>p:not(.eyebrow) { font-size:1rem; margin:.6rem 0; }
  .primary { display:flex; justify-content:center; align-items:center; min-height:48px; text-align:center; margin-top:1rem; }
  .section { padding:42px 18px; scroll-margin-top:65px; }
  .section h2 { font-size:clamp(1.65rem,7vw,2.2rem); margin-bottom:1.2rem; }
  .lead { margin:0 0 1.3rem; }
  .article-index-grid { gap:.65rem; }
  .article-index-grid a { grid-template-columns:32px 1fr; gap:.35rem .7rem; min-height:68px; padding:.7rem .85rem; }
  .article-index-grid a span { grid-column:2; grid-row:1; justify-self:start; }
  .article-index-grid a strong { grid-column:2; grid-row:2; line-height:1.45; }
  .article-index-grid a b { grid-column:1; grid-row:1 / 3; }
  .situation-grid article { padding:1.25rem; }
  .situation-link { display:flex; align-items:center; min-height:44px; font-size:1rem; }
  .essential-list { margin-top:1.5rem; }
  .essential-card { grid-template-columns:40px 1fr; gap:.7rem; padding:1.35rem 0; }
  .essential-icon { width:58px; height:58px; font-size:1.8rem; }
  .essential-copy h3 { font-size:1.3rem; }
  .essential-copy a { display:flex; align-items:center; justify-content:center; min-height:48px; width:100%; text-align:center; font-size:1rem; }
  .saving-advice,.solo-advice,.travel-advice,.winter-advice,.guide-advice { padding:1.1rem; margin-top:1.5rem; }
  .saving-points,.winter-groups { grid-template-columns:1fr; gap:.65rem; margin-top:1.3rem; }
  .filters button { min-height:44px; }
  .product a { display:flex; align-items:center; justify-content:center; min-height:48px; }
  .footer-links a,.legal-footer a { display:inline-flex; align-items:center; min-height:44px; }
}

/* Smartphone-only presentation; existing desktop styles and content stay intact. */
@media (max-width:760px){
  body{background:#f4f7fb;overflow-wrap:anywhere}
  .notice{padding:10px 16px;font-size:.875rem;line-height:1.6;background:#0f2c52}
  .site-header{min-height:72px;height:auto;padding:10px 16px;gap:10px;background:linear-gradient(110deg,#102e56,#193e6d);border-color:#28496e}
  .site-header .brand{color:#fff;font-family:"Noto Sans JP",sans-serif;font-size:clamp(.875rem,4vw,1.2rem);gap:8px;white-space:normal;min-width:0;line-height:1.45}
  .site-header .noren{background:#ff9900;width:32px;height:38px;flex:none;border-radius:5px}
  .menu{display:block;flex:none;min-height:44px;min-width:68px;padding:8px;color:#fff;background:#ffffff12;border:1px solid #ffffff70;border-radius:8px;font:600 .875rem "Noto Sans JP",sans-serif}
  .site-header nav{top:100%;background:#fff;padding:8px 16px 16px;max-height:calc(100dvh - 72px);overflow-y:auto;gap:0;box-shadow:0 8px 20px #0f2c5220}
  .site-header nav a{display:flex;align-items:center;min-height:48px;padding:10px 8px;font-size:1rem;color:#14365f;border-bottom:1px solid #e0e7ef}
  .hero{display:grid;grid-template-columns:minmax(0,1fr);min-height:0;background:#fff;overflow:visible}
  .hero img{grid-column:1;grid-row:1;display:block;width:100%;height:auto;min-height:0;object-fit:contain}
  .hero:after{display:none}
  .hero-copy{display:contents}
  .hero .eyebrow{grid-column:1;grid-row:1;align-self:start;justify-self:start;max-width:calc(100% - 32px);margin:16px;padding:6px 12px;border-radius:999px;background:#ffffffeb;color:#12345b;font-size:.875rem;letter-spacing:.03em;z-index:2}
  .hero h1{grid-column:1;grid-row:1;align-self:end;justify-self:start;z-index:2;max-width:calc(100% - 32px);margin:60px 16px 16px;padding:10px 16px;border-radius:14px;background:#ffffffed;color:#13375f;font-family:"Noto Sans JP",sans-serif;font-size:clamp(1.75rem,8vw,2.5rem);line-height:1.35;letter-spacing:.02em}
  .hero h1 span{color:#aa5900}
  .hero-copy>p:not(.eyebrow){grid-column:1;grid-row:2;color:#42566d;font-size:1rem;max-width:none;margin:0;padding:18px 16px 10px;line-height:1.8}
  .primary{grid-column:1;grid-row:3;display:flex;align-items:center;justify-content:center;min-height:50px;margin:8px 16px 20px;padding:13px 16px;background:#ff9900;color:#142d4c;border-radius:12px;font-size:1rem;text-align:center;box-shadow:0 4px 12px #db850020}
  .section{padding:36px 16px;scroll-margin-top:84px;min-width:0}
  .section h2{font-family:"Noto Sans JP",sans-serif;font-weight:700;font-size:clamp(1.5rem,6.3vw,2rem);line-height:1.5;margin-bottom:18px}
  .section-head{display:block}
  .section-head>*{min-width:0}
  .eyebrow,.updated,.tag,.article-note,.fine,.essential-copy>span,.article-index-grid span,.saving-points span,.winter-group p{font-size:.875rem;line-height:1.65}
  .lead,.article-lead,.product p,.situation-grid p,.policy-grid p,.essential-copy p{font-size:1rem;line-height:1.8}
  .lead{margin:0 0 20px}
  .prime-sale{padding:24px 16px;background:#eaf2fc}
  .prime-sale-inner{grid-template-columns:minmax(0,1fr);gap:16px}
  .prime-sale h2{font-size:1.5rem;margin:12px 0}
  .prime-sale-banner{width:100%;max-width:640px;margin:auto;border-radius:12px;overflow:hidden}
  .prime-sale-banner img{display:block;width:100%;height:auto}
  .article-index-grid{grid-template-columns:minmax(0,1fr);gap:10px}
  .article-index-grid a{grid-template-columns:36px minmax(0,1fr);gap:4px 12px;padding:14px;min-height:76px;border:1px solid #dbe4ef;border-left:4px solid #ff9900;border-radius:12px;background:#fff}
  .article-index-grid a b{grid-column:1;grid-row:1 / 3;color:#966000;font-size:1.25rem}
  .article-index-grid a span{grid-column:2;grid-row:1;justify-self:start;background:#eaf2fb;color:#183e6b;border-radius:6px;padding:2px 8px}
  .article-index-grid a strong{grid-column:2;grid-row:2;font-size:1rem;line-height:1.6}
  .situation-grid,.policy-grid,.saving-points,.winter-groups{grid-template-columns:minmax(0,1fr);gap:14px}
  .situation-grid article{padding:20px;border-top:4px solid #ff9900;border-radius:14px}
  .situation-grid h3{font-size:1.125rem;line-height:1.6}
  .situation-link{display:flex;align-items:center;min-height:48px;font-size:1rem;color:#9d5100}
  .essential-card{grid-template-columns:36px minmax(0,1fr);gap:10px;padding:22px 0}
  .essential-copy{grid-column:1 / 3;min-width:0}
  .essential-icon{width:64px;height:64px;font-size:2rem}
  .essential-copy h3{font-size:1.25rem;line-height:1.6}
  .essential-copy .check{font-size:1rem;padding:12px;border-radius:10px}
  .essential-copy a,.product a{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;padding:13px 12px;border:0;border-radius:10px;background:#ff9900;color:#17304d;font-size:1rem;line-height:1.6;text-align:center}
  .essential-copy a:hover,.product a:hover{background:#f3a522;color:#17304d}
  .product-grid{grid-template-columns:minmax(0,1fr);gap:18px}
  .product{min-width:0;border-color:#dce5ef;border-radius:16px;box-shadow:0 5px 18px #0d30540a}
  .product:hover{transform:none}
  .product-top{padding:18px;min-height:112px;background:#edf3fb}
  .rank{top:12px;left:12px;padding:4px 12px;border-radius:999px;background:#173f6a;font-family:"Noto Sans JP",sans-serif;font-size:.875rem}
  .product-body{padding:18px}
  .product h3{font-size:1.125rem;line-height:1.6;margin:8px 0 12px}
  .product p{margin:0 0 18px}
  .tag{color:#9b5100}
  .important{font-size:1rem;line-height:1.8;padding:16px;border-radius:10px}
  .filters{gap:8px;margin:20px 0}
  .filters button{min-height:46px;max-width:100%;padding:10px 14px;font-size:1rem}
  .filters button.active{background:#173f6a;border-color:#173f6a}
  .profile{grid-template-columns:minmax(0,1fr);gap:20px}
  .profile-mark{width:82px;height:90px;font-size:2.7rem}
  .travel-visual img{width:100%;height:auto;max-height:none;object-fit:contain}
  img:not([width="1"]){max-width:100%;height:auto}
  .saving-advice,.solo-advice,.travel-advice,.winter-advice,.guide-advice{padding:18px;border-radius:12px}
  footer{padding:32px 16px}
  .footer-links{gap:8px 16px}
  .footer-links a{display:inline-flex;align-items:center;min-height:44px;font-size:1rem}
  a:focus-visible,button:focus-visible{outline:3px solid #176dcc;outline-offset:3px}
}
