/* Responsive presentation layer. Keep after common.css. */
:root { --brand:#377f6d; --ink:#273833; --pale:#f1f7f4; }
html { -webkit-text-size-adjust:100%; scroll-padding-bottom:100px; }
*, *::before, *::after { box-sizing:border-box; }
body { color:var(--ink); font-size:16px; line-height:1.85; letter-spacing:.025em; padding-bottom:100px; overflow-wrap:anywhere; }
img,video { max-width:100%; height:auto; }
iframe { max-width:100%; }
button,a { -webkit-tap-highlight-color:transparent; }
button { font:inherit; cursor:pointer; }
a:focus-visible,button:focus-visible,[tabindex]:focus-visible { outline:3px solid #bb710e; outline-offset:4px; }
[hidden] { display:none !important; }
#header,#contents,#footMenu,#footer { width:calc(100% - 40px); max-width:940px; margin-left:auto; margin-right:auto; }
#header { padding:22px 0 0; }
#header h1 { padding:0 0 16px; line-height:1; }
#header h1 img { width:170px; height:auto; }
#menu { position:static; border-top:1px solid #e2e9e5; border-bottom:1px solid #e2e9e5; }
#menu ul { display:flex; flex-wrap:wrap; align-items:center; gap:0 20px; }
#menu li { float:none; padding:0; margin:0; overflow:visible; }
#menu li a { padding:12px 0; min-height:48px; font-size:14px; }
#menu li a:hover { border:0; color:var(--brand); text-decoration:underline; }
#menu li a[aria-current] { color:var(--brand); text-decoration:underline; text-underline-offset:6px; }
#contents { padding:26px 0; overflow:visible; display:flow-root; }
#conR { width:64%; float:right; min-width:0; }
#conL { width:32%; float:left; min-width:0; }
h3 { color:var(--brand); font-size:21px; margin-top:36px; }
h4 { font-size:18px; }
#conR a:not(:has(img)), .information a, .instagram-link a { color:#286d5d; text-decoration:underline; text-underline-offset:3px; }
.table-wrap { width:100%; overflow-x:auto; margin:16px 0; }
table { width:100%; margin:0; table-layout:auto; font-size:inherit; }
table th,table td { padding:12px 10px; white-space:normal; overflow-wrap:anywhere; vertical-align:top; }
table th { width:35%; background:var(--pale); }
.submenu li a { min-height:44px; padding:12px 0; }
.submenu h3 { background:var(--brand); }
.submenu h3::after { color:var(--brand); }
.bnrR { width:100%; }
.box img { max-width:40%; }
.box p { margin-left:45%; }
#footMenu ul { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:12px 20px; }
#footMenu li { display:block; margin:0; }
#footMenu li a { display:inline-flex; align-items:center; min-height:44px; }
.copyright { font-size:12px; line-height:1.9; color:#65736d; padding:16px 0; }
#pageTop { position:static; text-align:center; margin:20px auto; }
#pageTop a { display:inline-block; background:var(--brand); padding:12px 24px; font-size:14px; }
.contact-bar { position:fixed; right:20px; bottom:20px; z-index:10000; display:flex; gap:8px; padding:8px; border:1px solid #e0e8e2; border-radius:14px; background:#fff; box-shadow:0 4px 24px #173e2820; }
.contact-bar a { display:flex; align-items:center; justify-content:center; min-height:46px; padding:10px 16px; border-radius:8px; font-size:14px; font-weight:bold; line-height:1.3; text-decoration:none; }
.contact-book { background:var(--brand); color:white; }
.contact-phone { background:#edf2ef; color:#273833; }
.contact-line { background:#067b39; color:white; }
.contact-bar a:hover { color:inherit; filter:brightness(.92); }
.contact-book:hover,.contact-line:hover { color:#fff !important; }
.flight-gallery { margin:0; }
.gallery-track { display:flex; width:100%; overflow-x:auto; scroll-snap-type:x mandatory; border-radius:10px; scrollbar-width:thin; }
.gallery-track img { flex:0 0 100%; width:100%; min-width:0; object-fit:contain; scroll-snap-align:start; }
.gallery-controls { display:flex; align-items:center; justify-content:center; gap:20px; margin-top:8px; }
.gallery-controls button { min-width:44px; min-height:44px; background:#f1f7f4; color:var(--ink); border:1px solid #dbe6df; border-radius:50%; }
.gallery-status { min-width:45px; text-align:center; font-size:13px; }
.home-intro { padding:22px 0 28px; text-align:center; }
.home-intro .eyebrow { font-size:13px; color:var(--brand); letter-spacing:.12em; margin:0 0 10px; }
.home-intro h2 { font-size:30px; font-weight:bold; color:var(--ink); padding:0; }
.home-intro p { margin:12px 0; }
.intro-links { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-top:20px; }
.intro-links a { padding:12px 20px; border:1px solid var(--brand); border-radius:6px; font-weight:bold; text-decoration:none; }
.primary-link { background:var(--brand); color:white; }
.secondary-link { color:var(--brand); }
.primary-link:hover { color:white; }
.topNavi { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:0 0 28px; overflow:visible; }
.topNaviColumn { width:auto; float:none; margin:0; display:flex; flex-direction:column; min-width:0; }
.topNavi h2 { font-size:18px; background:var(--brand); border-radius:8px 8px 0 0; padding:14px 8px; }
.topNaviCon { flex:1; padding:0 0 10px; display:flex; flex-direction:column; border-radius:0 0 8px 8px; }
.topNaviPhoto { padding:10px; }
.topNaviPhoto img { margin:0; width:100%; }
.topNavi p { margin:10px 14px; }
.topNaviDetail { position:static; width:auto; text-align:left; margin-top:auto !important; }
.topNaviDetail a { display:block; padding:12px 0; color:var(--brand); background:none; font-weight:bold; }
.topNaviCon > br { display:none; }
.weather-note { background:var(--pale); padding:18px 22px; border-radius:8px; font-size:14px; }
.weather-note dl { margin:0; }
.weather-note b { font-weight:normal; }
.information dd { padding-left:9em; }
.snapwidget-widget { width:100% !important; height:374px; }
.instagram-link { text-align:center; margin:12px 0 30px; }
@media(max-width:900px) {
 #header,#contents,#footMenu,#footer { width:calc(100% - 32px); }
 #header { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:0 12px; padding-top:16px; }
 #header h1 { padding-bottom:16px; }
 #header h1 img { width:138px; }
 .mobile-menu-button { display:inline-flex; align-items:center; gap:10px; min-height:46px; padding:8px 12px; border:1px solid #ccdcd3; background:#fff; border-radius:7px; color:var(--ink); font-size:14px; margin-bottom:16px; }
 #menu { flex:0 0 100%; width:100%; }
 #menu ul { display:grid; grid-template-columns:1fr 1fr; gap:0; }
 #menu li { min-width:0; }
 #menu li a { padding:13px 10px; font-size:14px; white-space:normal; }
 #contents { padding-top:20px; }
 #conR,#conL { float:none; width:100%; }
 #conL { margin-top:36px; padding-top:24px; border-top:1px solid #e2e9e5; }
 .topNavi { gap:12px; }
 .contact-bar { right:0; left:0; bottom:0; gap:6px; border-radius:0; border-width:1px 0 0; padding:8px max(10px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left)); }
 .contact-bar a { flex:1; padding:10px 5px; font-size:13px; }
}
@media(min-width:901px) { .mobile-menu-button { display:none !important; } }
@media(max-width:600px) {
 .topNavi { grid-template-columns:1fr; gap:22px; }
 .home-intro { padding:18px 0 26px; text-align:left; }
 .home-intro h2 { font-size:clamp(22px,5.6vw,30px); }
 .home-intro .eyebrow { font-size:12px; }
 .intro-links { display:grid; grid-template-columns:1fr; gap:10px; }
 .intro-links a { text-align:center; }
 .topNaviPhoto { padding:14px; }
 .topNavi p { margin:8px 16px; }
 .topNaviDetail a { min-height:48px; }
 .weather-note { padding:16px; }
 .information dt { float:none; padding-top:12px; color:#65736d; font-size:13px; }
 .information dd { padding:6px 0 14px; margin:0; }
 table { font-size:15px; }
 table td,table th { padding:10px 8px; }
 h3 { font-size:20px; }
 #footMenu ul { gap:12px; }
 #footMenu li { max-width:calc(50% - 6px); }
 #footMenu li a { font-size:14px; }
 .box { padding:12px; border-width:4px; }
 .box img { float:none; max-width:100%; }
 .box p { margin:12px 0; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media print { .contact-bar,.mobile-menu-button,.gallery-controls,#pageTop { display:none !important; } body { padding-bottom:0; } #menu ul[hidden] { display:flex !important; } }
@media(max-width:600px) {
 .snapwidget-widget { display:none; }
 .instagram-link { margin:20px 0; padding:18px 12px; border:1px solid #dbe6df; border-radius:8px; background:#f6f9f7; }
 .instagram-link a { display:block; padding:8px 0; font-size:15px; font-weight:bold; }
}
/* English edition: preserve word boundaries and use the English contact route. */
body { letter-spacing:normal; overflow-wrap:break-word; }
.home-intro h2 { line-height:1.25; }
.feed-note { color:#65736d; text-align:center; font-size:14px; }
.video-embed { width:100%; height:auto; aspect-ratio:16/9; margin:20px 0; border:0; }
.whatsapp-page .box img { float:none; display:block; width:min(100%,400px); max-width:100%; margin:16px auto; }
.whatsapp-page .box p { margin:16px 0; }
@media(max-width:600px) {
 .snapwidget-widget { display:block; height:240px !important; }
 .home-intro h2 { font-size:29px; }
 .topNaviDetail a { background:none; }
 .contact-bar a { font-size:13px; }
}
