/*
 * WordPress-only additions. site.css is a verbatim copy of dist/site.css — change the design there
 * and re-copy; put rules that only the WordPress build needs here.
 */

/* Editable headings render emphasis as <em>; the static intro used a <span>. */
.intro-lead em{font-style:normal;color:var(--taupe)}

/* Seller details (Consumer Protection Act). */
.footer-seller{display:flex;flex-wrap:wrap;gap:24px 56px;margin:56px 0 0;padding-top:34px;border-top:1px solid #ffffff1c}
.footer-seller div{min-width:0}
.footer-seller dt{font:500 10.5px/1.5 var(--sans);letter-spacing:.22em;color:var(--gold-soft)}
.footer-seller dd{margin:10px 0 0;font-size:13.5px;line-height:1.7;letter-spacing:.04em;color:var(--on-dark);overflow-wrap:anywhere}
.footer-seller dd small{display:block;margin-top:2px;font-size:11.5px;letter-spacing:.06em;color:var(--on-dark-muted)}
.footer-seller a{border-bottom:1px solid #ffffff33;transition:border-color .2s,color .2s}
.footer-seller a:hover{border-color:var(--gold-soft);color:#fff}
.footer-seller+.footer-bottom{margin-top:40px}
@media(max-width:600px){.footer-seller{display:grid;grid-template-columns:1fr 1fr;grid-auto-flow:row dense;gap:20px 24px;margin-top:40px}.footer-seller div:last-child,.footer-seller div:has(a[href^="mailto:"]){grid-column:1/-1}}

/* Logged-in editors see the admin bar; keep sticky parts below it. */
body.admin-bar .header{top:calc(14px + 32px)}
body.admin-bar .stay-stage{top:calc(var(--header-h) + 32px)}
@media(max-width:782px){
 body.admin-bar .header{top:calc(10px + 46px)}
 body.admin-bar .stay-stage{top:calc(var(--header-h) + 46px)}
}

/* Rich text from the editor (news posts, policy pages). */
.entry-content{max-width:760px;color:var(--ink-soft);line-height:2}
.entry-content>*+*{margin-top:1.1em}
.entry-content h2,.entry-content h3{margin-top:2em;font:500 clamp(20px,2vw,26px)/1.6 var(--serif);letter-spacing:.06em;color:var(--ink)}
.entry-content a{text-decoration:underline;text-underline-offset:3px}
.entry-content ul,.entry-content ol{padding-left:1.4em}
/* News images are often low resolution: keep them within the text column and never upscale inline ones. */
.entry-media{max-width:760px;margin-bottom:clamp(36px,5vw,56px)}
.entry-media img{aspect-ratio:3/2;height:auto;border-radius:var(--r-card)}
.entry-content img{width:auto;height:auto;border-radius:var(--r-card)}
.entry-content figure{margin:2em 0}

/* ---- home ---- */

/* ---- locations ---- */
/* Locations: keep the stay count in the last column even when a region has no description. */
.region-head>.region-count{grid-column:-2}
/* Locations stay cards, made to compare (no7_stay_card(…, true)): three photos — the cover large, two more under it (beside
   it on a wide card) — and 人數 · 客房. The photo box is as tall as 90% of a card's width in every row, so a wide card lines
   up with its neighbours and nothing shifts while photos load; a stay without two photos of its own (not shown on
   another card) shows its cover alone. */
.stay-grid.is-compare{container-type:inline-size}
.is-compare .stay-card-media{display:grid;gap:5px;height:calc((100cqw - 56px) / 3 * .9)}
.is-compare .stay-card-media.is-trio{grid-template:"a a" 2fr "b c" 1fr / 1fr 1fr;background:transparent}
.stay-card-shot{min-width:0;min-height:0;overflow:hidden;background:var(--sand)}
.stay-card-shot:first-child{grid-area:a}
.stay-card-facts{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.stay-card-facts span{padding:3px 11px;border:1px solid var(--line-strong);border-radius:999px;font-size:12px;line-height:1.7;letter-spacing:.06em;color:var(--ink-soft)}
@media(min-width:1101px){.stay-card.is-wide .is-trio{grid-template:"a b" 1fr "a c" 1fr / 2fr 1fr}}
@media(max-width:1100px){.is-compare .stay-card-media{height:calc((100cqw - 28px) / 2 * .9)}}
@media(max-width:640px){.is-compare .stay-card-media{height:calc(100cqw * .9);aspect-ratio:auto}}

/* ---- stay ---- */
/* Stay page: a room without photos has no media column, so its copy takes the full card. */
.room-card:not(:has(.room-media)){grid-template-columns:1fr}

/* ---- news ---- */
/* News list, news posts and editor pages (archive.php, home.php, single.php, page.php). */
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.news-grid .stay-card-media:not(:has(img))::before{content:'NO7 STAY';position:absolute;inset:0;display:grid;place-items:center;font:italic 400 clamp(30px,3vw,42px)/1 var(--display);letter-spacing:.04em;color:var(--taupe)}
.pagination{margin-top:clamp(56px,7vw,88px)}
.pagination .nav-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 16px;border:1px solid var(--line-strong);border-radius:999px;font:500 14px/1 var(--sans);letter-spacing:.06em;color:var(--ink-soft);transition:border-color .2s}
.pagination a.page-numbers:hover{border-color:var(--ink)}
.pagination .current{border-color:var(--ink);background:var(--ink);color:var(--surface)}
.pagination .dots{border-color:transparent}
.single-post .page-hero .display,.page-template-default .page-hero .display{font-size:clamp(40px,5vw,76px);line-height:1.2}
.entry-back{margin-top:clamp(48px,6vw,72px)}
@media(max-width:900px){.motion-ready .shop-grid .reveal{opacity:1;transform:none}}
/* 最新消息: hero and the text column centred on the page (the text itself stays left-aligned for reading). */
.single-post .page-hero{display:block;text-align:center}
.single-post .page-hero-aside{justify-items:center;margin-top:26px}
.single-post .entry-media,.single-post .entry-content,.single-post .entry-back,.single-post .entry-content img{margin-inline:auto}
.single-post .entry-back{max-width:760px;text-align:center}
.entry-content blockquote{padding-left:1.4em;border-left:2px solid var(--gold-soft)}
.entry-content table{width:100%;border-collapse:collapse;font-size:14px}
.entry-content th,.entry-content td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}

/* ---- shop ---- */
/* Footer with the SHOP column (查詢訂單 and the policy pages). */
@media(min-width:901px){.footer-top:has(>:nth-child(5)){grid-template-columns:1.5fr repeat(4,1fr)}}
/* Cart drawer (inc/woo.php, assets/cart.js): subtotal and Store API errors. */
dialog.drawer{max-width:none} /* the browser's modal max-width would narrow dist's full-width bottom sheet on phones */
/* 合作洽詢 result (page-contact.php, contact.js): a small centred card on the shared dialog styles. */
.result-dialog{width:min(460px,calc(100vw - 32px));text-align:center}
.result-dialog .dialog-body{padding-top:44px}
.result-dialog.is-error .kicker{color:#a4553f}
.drawer-foot .drawer-total{display:flex;align-items:baseline;justify-content:space-between;gap:16px;font-size:14px;color:var(--ink)}
.drawer-total strong{font:500 20px/1.4 var(--serif);letter-spacing:.02em}
.drawer-error{margin:14px 30px 0;padding:10px 14px;border-radius:12px;background:#a4553f14;font-size:13px;line-height:1.8;color:#a4553f}
.cart-item .qty button:disabled{opacity:.3;cursor:default}
/* Touch: 44px-tall targets where dist's are smaller (drawer, footer links); the drawer keeps dist's widths. */
@media(pointer:coarse){
 .cart-remove{padding:10px 0}
 .cart-item .qty button{height:44px}
 .footer-col{row-gap:0} /* the links' padding replaces the 10px gap */
 .footer-col a{padding-block:10px}
}

/* Owner: the closing CTA is centred at every width, and the site shows no QR codes (the LINE card is text only). */
.contact-cta-bottom{display:grid;grid-template-columns:1fr;justify-items:center;gap:28px;text-align:center}
.contact-cta-bottom .actions{justify-content:center}
.contact-card.is-line{grid-template-columns:1fr}

/* 關於我們 / 餐飲品牌 */
.dining{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.dine{display:flex;flex-direction:column;align-items:flex-start;padding:40px 48px 0 0}
.dine+.dine{padding:40px 0 0 48px;border-left:1px solid var(--line)}
.dine h3{margin-top:18px;font:500 clamp(24px,2.4vw,32px)/1.4 var(--serif);letter-spacing:.08em}
.dine-tagline{margin-top:6px;font:500 15px/1.6 var(--serif);letter-spacing:.12em;color:var(--taupe)}
.dine-text{margin-top:22px;font-size:14px;line-height:1.95;color:var(--muted)}
.dine-text p+p{margin-top:10px}
.dine-note{margin-top:18px;font-size:13px;letter-spacing:.06em;color:var(--ink)}
.dine .link{margin-top:auto;padding-top:24px}
@media(max-width:900px){.dining{grid-template-columns:1fr}.dine,.dine+.dine{padding:32px 0;border-left:0}.dine+.dine{border-top:1px solid var(--line)}}

/* 首頁 Instagram: the site's own cards (Behold feed or hand-picked posts). One row on desktop, swipe on phones. */
.ig-cards{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:18px;width:calc(100% - 2 * var(--gutter));max-width:var(--max);margin:auto;padding:0;list-style:none}
.ig-card{display:flex;flex-direction:column;height:100%;color:var(--ink)}
.ig-card-media{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;border-radius:var(--r-card);background:var(--beige)}
.ig-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.ig-card:hover .ig-card-media img{transform:scale(1.04)}
.ig-card-type{position:absolute;top:12px;right:12px;padding:4px 10px;border-radius:999px;background:#15120fa6;font:500 11px/1.4 var(--sans);letter-spacing:.08em;color:#fff}
.ig-card-caption{display:-webkit-box;margin-top:14px;overflow:hidden;font-size:13.5px;line-height:1.8;color:var(--ink-soft);-webkit-box-orient:vertical;-webkit-line-clamp:3}
.ig-card-meta{margin-top:auto;padding-top:10px;font:500 11.5px/1.4 var(--sans);letter-spacing:.06em;color:var(--taupe-deep)}
@media(max-width:900px){.ig-cards{grid-auto-columns:68%;gap:12px;width:100%;padding:0 var(--gutter) 12px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter)}.ig-cards>li{scroll-snap-align:start}}

/* 查詢訂單 (page.php): hero and form centred */
.store-hero.is-centered{display:block;text-align:center}
.store-hero.is-centered .page-hero-aside{justify-items:center;margin-top:22px}
.store.is-centered .woocommerce{justify-items:center}
.store.is-centered .woocommerce>*{width:100%;max-width:760px}

/* 經營者資訊 on the legal pages ([no7_seller], inc/legal.php) */
.entry-content .no7-seller{margin-block:1.6em;padding:6px 28px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.no7-seller div{display:grid;grid-template-columns:7em minmax(0,1fr);gap:16px;padding:14px 0;border-top:1px solid var(--line)}
.no7-seller div:first-child{border-top:0}
.no7-seller dt{font:500 12px/1.9 var(--sans);letter-spacing:.16em;color:var(--taupe-deep)}
.no7-seller dd{margin:0;color:var(--ink);overflow-wrap:anywhere}
@media(max-width:600px){.entry-content .no7-seller{padding:4px 20px}.no7-seller div{grid-template-columns:1fr;gap:2px;padding:12px 0}}
