/* 桌面、平板、手機斷點與減少動態偏好 */
@media(min-width:1450px) {
  .hero {
    min-height:590px;
  }
  .hero-inner {
    padding-top:60px;
  }
  .hero h1 {
    font-size:65px;
  }
  .hero h1 span {
    font-size:41px;
  }
  .hero-copy {
    margin-top:23px;
  }
  .finder {
    margin-top:43px;
  }
  .hero-note {
    bottom:24px;
  }
}

@media(max-width:1150px) {
  .header-inner {
    gap:16px;
    padding-inline:24px;
  }
  .brand {
    font-size:21px;
  }
  .brand-mark {
    width:42px;
    font-size:34px;
  }
  .header nav {
    gap:15px;
    font-size:13px;
  }
  .header-cta {
    display:none;
  }
  .towns-menu-inner {
    width:calc(100% - 40px);
    gap:22px 20px;
    padding-top:24px;
  }
  .towns-menu-zone li a {
    flex-direction:column;
    gap:0;
    padding:6px 0;
  }
  .container {
    width:calc(100% - 40px);
  }
  .hero-note {
    display:none;
  }
  .answer {
    gap:26px;
    padding:22px 24px;
  }
  .answer-zones a {
    grid-template-columns:13em 1fr;
    column-gap:14px;
  }
  .compare thead th,.compare tbody th,.compare td {
    padding-inline:15px;
  }
  .compare tbody th {
    width:24%;
  }
  .facts {
    column-gap:24px;
  }
  .experience-section {
    grid-template-columns:160px 1fr;
    gap:15px;
  }
  .experiences {
    gap:10px;
  }
  .experience img {
    width:min(70px,100%);
    height:auto;
  }
  .experience strong {
    font-size:14px;
  }
  .explore-grid {
    grid-template-columns:minmax(0,1.2fr) minmax(160px,.65fr) minmax(0,1.2fr);
  }
  .region {
    padding:18px 15px;
  }
  .region-heading h3 {
    font-size:24px;
  }
  .town img {
    height:86px;
  }
  .town strong {
    font-size:14px;
  }
  .town small {
    font-size:12px;
  }
  .region-city,.region-islands {
    grid-template-columns:1fr 1.4fr;
    gap:8px;
  }
  .section-heading {
    gap:10px;
  }
  .section-heading h2 {
    font-size:28px;
  }
  .theme {
    height:200px;
  }
  .choices h3 {
    font-size:19px;
  }

}

@media(min-width:801px) and (max-width:1000px) {
  .header nav>a.nav-home {
    display:none;
  }
  .favorite-button span {
    display:none;
  }
}

@media(max-width:800px) {
  .header-inner {
    min-height:70px;
    gap:12px;
    padding-inline:20px;
  }
  .brand {
    font-size:20px;
    gap:8px;
  }
  .brand small {
    font-size:8px;
  }
  .brand-mark {
    font-size:32px;
    width:37px;
  }
  .header nav {
    position:absolute;
    top:70px;
    left:0;
    right:0;
    display:none;
    background:#fffefb;
    padding:16px 20px;
    box-shadow:0 8px 16px #0001;
    gap:0;
    flex-direction:column;
    max-height:calc(100dvh - 70px);
    overflow-y:auto;
    font-size:15px;
    align-items:stretch;
  }
  .header nav.open {
    display:flex;
  }
  .header nav>a {
    padding:12px 0;
    border-bottom:1px solid var(--line-soft);
  }
  .header nav>a.active:after,.header nav>a:hover:after,.nav-towns-button:hover:after,.nav-towns.open .nav-towns-button:after {
    display:none;
  }
  .nav-towns {
    display:block;
    border-bottom:1px solid var(--line-soft);
  }
  .nav-towns-button {
    width:100%;
    justify-content:space-between;
    padding:12px 0;
  }
  .towns-menu {
    position:static;
    display:none;
    visibility:visible;
    opacity:1;
    transform:none;
    transition:none;
    border:0;
    box-shadow:none;
    background:none;
  }
  .nav-towns.open .towns-menu {
    display:block;
  }
  .towns-menu-inner {
    width:auto;
    padding:4px 0 14px;
    grid-template-columns:1fr;
    gap:16px;
  }
  .towns-menu-zone ul {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    column-gap:16px;
  }
  .towns-menu-zone li a {
    padding:9px 0;
  }
  .towns-menu-foot {
    padding-top:14px;
  }
  .header nav>:last-child {
    border-bottom:0;
  }
  .menu-button {
    display:flex;
    margin-left:auto;
    font-size:14px;
    padding:9px;
    align-items:center;
    gap:6px;
    font-weight:600;
  }
  .favorite-button {
    font-size:22px;
    padding:0;
  }
  .favorite-button span {
    display:none;
  }
  .hero {
    min-height:575px;
  }
  .hero-photo {
    background-position:65% center;
  }
  .hero:before {
    background:linear-gradient(90deg,#fff9e5e6,#fff9e5b3 52%,#fff9e533);
  }
  .hero-inner {
    padding-top:33px;
  }
  .hero h1 {
    font-size:44px;
  }
  .hero h1 span {
    font-size:29px;
  }
  .hero h2 {
    font-size:17px;
  }
  .hero-copy {
    font-size:14.5px;
  }
  .finder {
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-top:24px;
    padding:15px;
  }
  .finder label {
    padding-inline:8px;
  }
  .finder label:nth-child(2) {
    border:0;
  }
  .finder select {
    font-size:16px;
  }
  .finder .button {
    border-radius:8px;
    padding:10px;
  }
  .popular {
    flex-wrap:wrap;
    font-size:13px;
    gap:7px;
  }
  .popular a {
    padding:5px 12px;
  }
  .image-note {
    bottom:5px;
  }
  .answer {
    grid-template-columns:1fr;
    gap:14px;
    margin-top:20px;
    padding:20px 22px;
  }
  .answer-zones a {
    grid-template-columns:13.5em 1fr;
    column-gap:18px;
  }
  .compare,.compare tbody,.compare tr,.compare tbody th,.compare td {
    display:block;
  }
  .compare thead {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip-path:inset(50%);
  }
  .compare tr {
    padding:14px 18px;
    border-top:1px solid #eeebe2;
  }
  .compare tr:first-child {
    border-top:0;
  }
  .compare tbody th,.compare td {
    width:auto;
    padding:0;
    border:0;
  }
  .compare tbody th {
    margin-bottom:6px;
  }
  .compare td {
    display:grid;
    grid-template-columns:5.5em 1fr;
    gap:10px;
    padding-left:17px;
  }
  .compare td::before {
    content:attr(data-label);
    color:var(--muted);
  }
  .facts {
    grid-template-columns:1fr;
  }
  .experience-section {
    display:block;
    padding-block:26px;
  }
  .experience-intro {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:24px;
  }
  .experience-intro h2 {
    font-size:24px;
  }
  .experience-intro h2 br {
    display:none;
  }
  .experience-intro p {
    font-size:13px;
    margin:0;
  }
  .experiences {
    gap:15px 10px;
    grid-template-columns:repeat(8,minmax(0,1fr));
  }
  .experience img {
    width:min(60px,100%);
    height:auto;
  }
  .experience small {
    font-size:12px;
  }
  .explore-grid {
    grid-template-columns:1fr 1fr;
    gap:15px;
  }
  .region-valley {
    grid-column:1/3;
    grid-row:1;
  }
  .region-city {
    grid-column:1;
    grid-row:2;
    display:block;
  }
  .region-islands {
    grid-column:1;
    grid-row:3;
    display:block;
  }
  .region-coast {
    grid-column:1;
    grid-row:4;
  }
  .region-south {
    grid-column:2;
    grid-row:4;
  }
  .map {
    grid-column:2;
    grid-row:2/4;
    width:80%;
    justify-self:center;
  }
  .map svg {
    max-height:440px;
  }
  .region-valley {
    display:grid;
    grid-template-columns:1fr 2.3fr;
    gap:20px;
    align-items:center;
  }
  .region-valley .towns {
    margin:0;
  }
  .region-city .towns,.region-islands .towns {
    margin-top:13px;
  }
  .region-south .towns {
    grid-template-columns:repeat(4,1fr);
    gap:7px;
  }
  .region-coast,.region-south {
    grid-column:1/3;
    display:grid;
    grid-template-columns:1fr 2.3fr;
    gap:20px;
    align-items:center;
  }
  .region-south {
    grid-row:5;
  }
  .region-coast .towns,.region-south .towns {
    margin:0;
  }
  .region-south .town img,.town img {
    height:88px;
  }
  .section-heading p {
    flex-basis:100%;
    padding-left:20px;
  }
  .section-heading>a {
    margin-left:20px;
  }
  .choices {
    grid-template-columns:1fr;
  }
  .choices>a {
    min-height:158px;
    padding:20px 25px;
  }
  .choices>a:before {
    background:linear-gradient(90deg,#f8f3e8 10%,#f8f3e8ea 52%,#f8f3e85c),var(--photo) center/cover;
  }
  .choices h3 {
    font-size:22px;
  }
  .faq-layout {
    grid-template-columns:1fr;
  }
  .closing {
    min-height:180px;
    background-position:center 50%;
  }
  .closing p {
    font-size:24px;
  }

}

@media(max-width:520px) {
  .container {
    width:calc(100% - 32px);
  }
  .answer {
    padding:18px 16px;
  }
  .answer h2 {
    font-size:23px;
  }
  .compare tr {
    padding:13px 14px;
  }
  .compare td {
    grid-template-columns:4.8em 1fr;
    gap:8px;
  }
  .facts li {
    grid-template-columns:5em 1fr;
    gap:10px;
    padding-inline:0;
  }
  .answer-lead {
    font-size:15px;
  }
  .answer-zones a {
    grid-template-columns:1fr;
    grid-template-areas:"name" "towns" "hint";
    row-gap:2px;
    padding:11px 0;
  }
  .answer-zones span {
    padding-left:17px;
  }
  .header-inner {
    padding-inline:16px;
  }
  .brand {
    font-size:17px;
  }
  .brand small {
    font-size:8px;
    letter-spacing:.16em;
  }
  .brand-mark {
    font-size:29px;
    width:32px;
  }
  .menu-button {
    padding:7px 0;
  }
  .towns-menu-zone ul {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .hero {
    min-height:610px;
  }
  .hero-inner {
    padding-top:31px;
  }
  .eyebrow {
    font-size:12.5px;
    letter-spacing:.16em;
  }
  .hero h1 {
    font-size:37px;
    letter-spacing:.03em;
  }
  .hero h1 span {
    font-size:23px;
    letter-spacing:.03em;
    margin-top:11px;
  }
  .hero h2 {
    font-size:16px;
    line-height:1.7;
    max-width:23ch;
  }
  .hero-copy {
    font-size:14.5px;
    line-height:1.9;
    max-width:31ch;
    margin-top:14px;
  }
  .hero-copy br {
    display:none;
  }
  .hero-photo {
    background-position:54% center;
  }
  .finder {
    margin-top:22px;
    padding:6px 16px 16px;
    gap:0;
    grid-template-columns:1fr;
  }
  .finder label {
    padding:0;
    display:grid;
    grid-template-columns:7em 1fr;
    align-items:center;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .finder label:nth-child(2) {
    border-bottom:1px solid var(--line);
  }
  .finder label:nth-child(3) {
    border-bottom:0;
  }
  .finder select {
    font-size:16px;
    min-height:48px;
  }
  .finder label>span {
    font-size:13px;
    white-space:nowrap;
  }
  .finder .button {
    font-size:15px;
    gap:8px;
    height:48px;
    padding:10px;
    margin-top:14px;
  }
  .popular {
    line-height:1.8;
  }
  .popular>span {
    flex-basis:100%;
    color:#264854;
  }
  .experience-intro {
    display:block;
    margin-bottom:20px;
  }
  .experience-intro h2 {
    font-size:22px;
  }
  .experience-intro p {
    font-size:12.5px;
    margin-top:4px;
  }
  .experience-intro p br {
    display:none;
  }
  .experiences {
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:21px 12px;
  }
  .experience img {
    width:min(65px,100%);
    height:auto;
  }
  .experience strong {
    font-size:14px;
  }
  .experience small {
    font-size:12px;
  }
  .section-heading h2 {
    font-size:24px;
    letter-spacing:.015em;
  }
  .section-heading h2 i {
    margin-right:8px;
  }
  .section-heading p {
    font-size:13.5px;
    padding-left:15px;
  }
  .explore-section {
    padding-top:23px;
  }
  .explore-grid {
    gap:12px;
  }
  .region {
    border-radius:12px;
    padding:15px 12px;
  }
  .region-heading h3 {
    font-size:24px;
  }
  .region-heading p {
    font-size:13px;
  }
  .region-valley,.region-coast,.region-south {
    display:block;
  }
  .region-valley .towns,.region-coast .towns,.region-south .towns {
    margin-top:13px;
  }
  .region-valley .towns {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px 8px;
  }
  .region-valley .town img {
    height:78px;
  }
  .region-city,.region-islands {
    grid-column:1;
    min-width:0;
    padding:14px 10px;
  }
  .region-city .towns,.region-islands .towns {
    gap:7px;
  }
  .region-city .town img,.region-islands .town img {
    height:67px;
  }
  .region-city .region-heading h3 {
    font-size:21px;
  }
  .region-city .town strong,.region-islands .town strong {
    font-size:13.5px;
  }
  .region-city .town small,.region-islands .town small {
    font-size:12px;
  }
  .map {
    width:112%;
    margin:0 -6px 0 -10px;
  }
  .map figcaption {
    font-size:12.5px;
    line-height:1.8;
  }
  .map figcaption small {
    font-size:11.5px;
  }
  .region-south .towns {
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:7px;
  }
  .region-south .town img {
    height:75px;
  }
  .town strong {
    font-size:14px;
  }
  .town small {
    font-size:12px;
  }
  .all-towns {
    justify-content:flex-start;
    gap:0 20px;
    font-size:14.5px;
  }
  .all-towns strong {
    flex-basis:100%;
  }
  .all-towns a {
    padding:7px 0;
  }
  .route-title {
    font-size:24px;
    right:20px;
    top:20px;
  }
  .route-tabs {
    gap:6px;
    margin-bottom:16px;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .route-tabs button {
    font-size:13.5px;
    padding:8px 4px;
    line-height:1.45;
    border-radius:14px;
  }
  .route-tabs button i {
    display:none;
  }
  .route-tabs button span {
    display:block;
    font-size:12px;
    opacity:.85;
  }
  .route-landscape {
    height:150px;
  }
  .route-stop {
    padding-inline:3px;
  }
  .route-stop strong {
    font-size:14.5px;
  }
  .route-stop small {
    font-size:12px;
  }
  .route-help {
    font-size:12px;
  }
  .themes {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  .theme {
    height:188px;
  }
  .theme h3 {
    font-size:23px;
  }
  .theme p {
    font-size:13px;
  }
  .choices h3 {
    font-size:20px;
  }
  .faq-list {
    grid-template-columns:1fr;
  }
  .faq-list summary {
    font-size:15px;
    padding-block:15px;
  }

  .toast {
    white-space:nowrap;
    font-size:13.5px;
  }
  .results {
    padding:20px;
  }
  .results h2 {
    font-size:21px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    transition:none!important;
    animation:none!important;
  }
}
