/* ---------- Contact ---------- */
  .contact {
    background: #F3F3F1;
    padding: clamp(48px, 8vw, 100px) 0;
    color: #4A4A48;
  }

  .contact-inner {
    max-width: 520px;
    width: 100%;
  }

  .contact-brand {
    display: flex;
    align-items: center;
    margin-bottom: clamp(32px, 5vw, 48px);
  }

  /* Half of previous Design Square block width (~226px → ~113px) */
  .contact-brand-logo {
    display: block;
    width: 113px;
    max-width: 50%;
    height: auto;
  }

  .contact-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: clamp(24px, 4vw, 36px);
    margin: 0;
    padding: 0;
  }

  .contact-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
  }

  .contact-item-icon {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    margin-top: 3px;
    color: #7A7A76;
  }

  .contact-item-icon svg {
    width: 100%;
    height: 100%;
    display: block;
  }

  .contact-item-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 1;
  }

  .contact-line {
    font-family: 'Kanit', 'Inter', sans-serif;
    font-weight: 400;
    font-size: clamp(0.95rem, 3.2vw, 1.05rem);
    line-height: 1.55;
    color: #4A4A48;
  }

  .contact-line--sub {
    font-size: clamp(0.8rem, 2.8vw, 0.88rem);
    color: #7A7A76;
  }

  .contact-line-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 12px;
  }

  .line-add-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px 7px 8px;
    background: #06C755;
    color: #FFFFFF;
    border: none;
    border-radius: 6px;
    font-family: 'Kanit', 'Inter', sans-serif;
    font-size: 0.82rem;
    font-weight: 500;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: opacity 0.2s ease;
    white-space: nowrap;
    -webkit-tap-highlight-color: transparent;
  }

  .line-add-btn:hover,
  .line-add-btn:active {
    opacity: 0.88;
  }

  .line-add-btn svg {
    width: 18px;
    height: 18px;
    display: block;
    flex-shrink: 0;
  }

  .contact-link {
    color: inherit;
    text-decoration: none;
    display: inline-block;
    width: fit-content;
    max-width: max-content;
    align-self: flex-start;
    -webkit-tap-highlight-color: transparent;
  }

  .contact-link:hover {
    color: #1C1A17;
  }

  @media (max-width: 480px) {
    .contact {
      padding: 40px 0 56px;
    }
    .contact-item {
      gap: 12px;
    }
  }

  footer {
    background: transparent;
    padding: 0;
    display: flex;
    flex-direction: column;
    font-size: 0.8rem;
    color: var(--teak);
  }

  .footer-top {
    width: 100%;
    padding: 16px clamp(20px, 5vw, 64px);
    font-family: 'Kanit', 'Inter', sans-serif;
    font-size: clamp(0.72rem, 2.5vw, 0.85rem);
    font-weight: 500;
    color: var(--teak);
    text-align: left;
    letter-spacing: 0.02em;
    background: #F5F5F5;
  }

  .footer-contact-social {
    margin: 20px 0 0 36px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
  }
  @media (max-width: 480px) {
    .footer-contact-social { margin-left: 34px; }
  }

  .footer-social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    border-radius: 50%;
    background: transparent;
    border: 1.25px solid #4A4A48;
    color: #4A4A48;
    box-shadow: none;
    transition: opacity 0.2s ease, transform 0.2s ease, background 0.2s ease;
  }
  .footer-social[aria-label="Facebook"],
  .footer-social[aria-label="LINE"] { width: 48px; height: 48px; border: 0; background: #1877F2; color: #FFFFFF; }
  .footer-social[aria-label="LINE"] { background: #06C755; }
  .footer-social[aria-label="LINE"] text { fill: #06C755; }
  .footer-social[aria-label="Facebook"]:focus-visible,
  .footer-social[aria-label="LINE"]:focus-visible,
  .footer-social[aria-label="Gmail"]:focus-visible { outline: 3px solid #3A4A3F; outline-offset: 3px; }

  .footer-social:is(a):hover {
    opacity: 0.75;
    transform: translateY(-1px);
  }

  .footer-social svg {
    width: 12px;
    height: 12px;
    display: block;
  }
  .footer-social[aria-label="Facebook"] svg,
  .footer-social[aria-label="LINE"] svg { fill: currentColor; stroke: none; }
  .footer-social[aria-label="Facebook"] svg { width: 44px; height: 44px; }
  .footer-social[aria-label="LINE"] svg { width: 36px; height: 36px; }
  .footer-social[aria-label="Gmail"] { width: 48px; height: 48px; background: #FFFFFF; }
  .footer-social[aria-label="Gmail"] svg { width: 40px; height: 40px; }
  .footer-social--instagram,
  .footer-social--tiktok,
  .footer-social--whatsapp {
    width: 48px;
    height: 48px;
    padding: 0;
    border: 0;
    color: #FFFFFF;
    cursor: default;
    opacity: 1;
  }
  .footer-social--instagram {
    background: radial-gradient(circle at 30% 105%, #FEDA75 0 18%, #FA7E1E 34%, #D62976 58%, #962FBF 78%, #4F5BD5 100%);
  }
  .footer-social--tiktok { background: #111111; }
  .footer-social--whatsapp { background: #25D366; }
  .footer-social--instagram svg { width: 28px; height: 28px; }
  .footer-social--tiktok svg {
    width: 25px;
    height: 25px;
    fill: currentColor;
    filter: drop-shadow(1.2px 0 #25F4EE) drop-shadow(-1.2px 0 #FE2C55);
  }
  .footer-social--whatsapp svg { width: 28px; height: 28px; fill: currentColor; }

  @media (max-width: 380px) {
    .footer-contact-social { margin-left: 0; gap: 8px; }
    .footer-social[aria-label="Facebook"],
    .footer-social[aria-label="LINE"],
    .footer-social[aria-label="Gmail"],
    .footer-social--instagram,
    .footer-social--tiktok,
    .footer-social--whatsapp { width: 44px; height: 44px; }
  }


/* Interior pages keep the home page's palette and contact footer. */
.page-shell { min-height:100vh; }
.destination-content { max-width:1180px; min-height:70vh; padding-top:calc(var(--header-height) + clamp(42px,6vw,84px)); padding-bottom:clamp(72px,10vw,130px); }
.destination-content h1 { font:500 clamp(38px,5vw,68px)/1.2 'Kanit',sans-serif; margin:0 0 20px; letter-spacing:-.025em; }
.destination-content h2 { font:500 clamp(23px,2.5vw,34px)/1.35 'Kanit',sans-serif; margin:0 0 14px; }
.destination-content h3 { font:500 21px/1.4 'Kanit',sans-serif; margin:0 0 8px; }
.destination-content p,.destination-content li { font:400 clamp(16px,1.45vw,18px)/1.8 'Kanit',sans-serif; }
.destination-content p { margin:0; }
.destination-content ul { padding-left:1.4em; }
.page-back { display:inline-block; margin-bottom:30px; color:var(--pine); font:500 15px 'Kanit',sans-serif; }
.page-lead { max-width:780px; color:#494842; }
.page-intro { border-bottom:1px solid var(--line); padding-bottom:clamp(36px,5vw,64px); }
.page-intro::after { content:''; display:block; width:72px; height:6px; margin-top:34px; background:var(--teak); }
.page-block { padding:clamp(38px,5vw,70px) 0; border-bottom:1px solid var(--line); }
.page-block:last-child { border-bottom:0; }
.page-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(24px,6vw,90px); align-items:start; }
.page-split > * { min-width:0; }
.page-copy { max-width:680px; }
.page-list { display:grid; gap:18px; margin-top:20px; }
.page-list li { padding-left:4px; }
.page-empty { display:grid; place-items:center; min-height:260px; margin-top:24px; border:1px solid var(--line); background:var(--plaster-deep); text-align:center; color:#595850; }
.page-empty p { padding:24px; }
.page-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:28px; }
.page-links a { display:flex; align-items:center; justify-content:space-between; min-height:94px; padding:20px 24px; background:var(--white); border:1px solid var(--line); font:500 18px 'Kanit',sans-serif; }
.page-links a:hover,.page-links a:focus-visible { border-color:var(--pine); }
.page-links a::after { content:'↗'; color:var(--teak); font:400 24px 'Inter',sans-serif; }
.page-note { color:#696961; font-size:15px !important; }
.page-action { display:inline-flex; margin-top:28px; padding:14px 23px; background:var(--pine); color:var(--white); font:500 17px 'Kanit',sans-serif; }
.page-action:hover { background:var(--ink); }
.page-faq details { border-top:1px solid var(--line); padding:20px 0; }
.page-faq details:last-child { border-bottom:1px solid var(--line); }
.page-faq summary { cursor:pointer; font:500 19px 'Kanit',sans-serif; }
.page-faq details p { margin:14px 0 0; max-width:800px; }
.page-article { max-width:850px; }
.page-article + .page-article { margin-top:48px; padding-top:48px; border-top:1px solid var(--line); }
.page-contact-list { list-style:none; padding:0 !important; display:grid; gap:16px; }
.page-contact-list a { text-decoration:underline; text-underline-offset:4px; }
.page-contact-list a:hover { color:var(--pine); }
@media(max-width:760px) { .page-split { grid-template-columns:1fr; } .page-links { grid-template-columns:1fr; } .page-empty { min-height:190px; } }
