/* HN visual refinement 0.1.14. Jiro Dental Header/Services licensed adaptation:
   image containment, rounded frames and understated hover surfaces.
   Provenance: app/references/jiro-dental/README.md. No external assets or runtime. */
:root{--hn-border:#dce6eb;--hn-shadow:0 10px 24px rgba(24,51,70,.07);--hn-radius:12px}
body{background:#fff;color:var(--ink);text-rendering:optimizeLegibility}
a{text-underline-offset:.2em}h1,h2,h3{text-wrap:pretty}p{line-height:1.75}
.site-header{max-width:1320px;margin:auto;padding:24px;gap:16px;border-bottom:1px solid var(--hn-border)}
.site-header nav{align-items:center;gap:8px 24px}.site-header .brand{letter-spacing:.02em}
.site-header nav a{border-bottom:2px solid transparent}.site-header nav a:hover{border-color:var(--accent);text-decoration:none}
.nav-more{position:relative}.nav-more[open]{padding:8px 16px;background:var(--canvas);border-radius:var(--hn-radius)}
.button,button{border-radius:8px;min-height:48px;font-weight:600;transition:background-color .2s ease,box-shadow .2s ease}
.button:hover,button:hover:not(:disabled){box-shadow:0 4px 12px rgba(24,51,70,.12)}
.home-page main>section{padding:48px 24px;gap:24px}
.home-page main>section>h2{position:relative;padding-top:16px}
.home-page main>section>h2::before{content:"";position:absolute;left:0;top:0;width:32px;height:3px;background:var(--accent);border-radius:2px}
.home-page .hero{background:var(--brand);padding:40px 24px;gap:32px}
.hero-copy{gap:24px}.hero-copy h1{line-height:1.45;font-weight:700}.hero-copy>p:last-child{max-width:35em;color:#eef7fc}
.hero-copy .small{letter-spacing:.08em;color:#e0f1fb}.accent{width:56px;border-radius:2px}
.hero-image{height:auto;max-height:none;aspect-ratio:624/350;object-fit:contain;background:white;border:8px solid #fff;border-radius:var(--hn-radius);box-shadow:var(--hn-shadow)}
.card{padding:24px;background:#fff;border:1px solid var(--hn-border);border-radius:var(--hn-radius);gap:16px}
.services .card{border-top:3px solid var(--brand)}.services .card h3{color:var(--brand)}
/* Adapted from Jiro Services ds-item-block / ds-col-image: natural flow replaces its fixed canvas. */
.news .card{transition:background-color .25s ease;border:1px solid var(--hn-border);border-radius:var(--hn-radius);padding:24px}
.news .card:hover,.news .card:focus-within{background-color:rgba(18,107,154,.025)}
.news .card>a:has(picture){display:block;overflow:hidden;border-radius:12px;box-shadow:var(--hn-shadow)}
.article-card-image{aspect-ratio:16/9;object-fit:cover;border-radius:12px}
.news .card h2,.news .card h3{font-size:24px;line-height:1.5}.news .card h2 a,.news .card h3 a{text-decoration:none}
.news .card h2 a:hover,.news .card h3 a:hover{text-decoration:underline}.news .card>p:last-child{color:var(--muted)}
.category{font-weight:600}.filters{gap:8px 16px;padding:8px 0;border-bottom:1px solid var(--hn-border)}
.filters button,.filters a{min-height:48px;padding:8px 16px;border-radius:8px;margin:0;text-decoration:none}
.filters [aria-pressed=true],.filters a[aria-current=page]{background:#e5f1f8;color:#105a82;text-decoration:none;box-shadow:inset 0 -2px var(--brand)}
.home-page #about,.home-page #licences{border-top:1px solid var(--hn-border)}
.home-page footer{border-top:1px solid var(--hn-border);gap:24px;padding:40px 24px}
.news-page{padding:40px 24px;gap:32px}.news-page>h1{line-height:1.4}.pager{padding:16px 0;border-top:1px solid var(--hn-border)}
.article-header{border-bottom:1px solid var(--hn-border)}
.article{max-width:1000px;padding:40px 24px 64px;gap:24px}.article h1{line-height:1.45}.article time{color:var(--muted);font-size:16px}
.article>.lines{line-height:1.9}.article>p:not(.category){max-width:100%}
.article-hero-image{padding:16px;background:var(--canvas);border:1px solid var(--hn-border);border-radius:var(--hn-radius)}
.article-hero-image img{width:100%;height:auto;max-height:520px;object-fit:contain;border-radius:8px}
.article-hero-image figcaption{overflow-wrap:anywhere;font-size:14px;line-height:1.65}
.article-meta{border-left:3px solid var(--brand);padding:20px;border-radius:0 8px 8px 0;line-height:1.9}
.article-disclaimer{border-top:1px solid var(--hn-border);padding-top:24px;color:var(--muted)}.article-actions{padding-top:8px}
.share-page{background:var(--canvas);min-height:100dvh}.share-page main{max-width:760px;margin:32px 16px;padding:32px 24px;background:#fff;border:1px solid var(--hn-border);border-radius:16px;box-shadow:var(--hn-shadow);gap:24px}
.share-page h1{line-height:1.45}.share-page #share-message{padding:16px;background:var(--canvas);border-left:3px solid var(--brand);border-radius:4px}
.share-page #share-url{background:var(--canvas);font-size:16px}.share-page .back-home{background:white;color:var(--brand)}
.unavailable-page main{max-width:900px;margin:48px auto;padding:24px;display:flex;flex-direction:column;gap:24px}.unavailable-page .button{width:100%}
.hn-admin{background:var(--canvas)}.hn-admin .site-header{background:#fff}.maintenance{max-width:1320px;padding:24px}
.maintenance>nav{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--hn-border)}
.maintenance>h1{margin-bottom:16px}.maintenance>p{color:var(--muted)}
.maintenance-grid{gap:24px}.maintenance-grid>aside,.maintenance-grid>#editor{padding:24px;border:1px solid var(--hn-border);border-radius:var(--hn-radius);background:#fff;min-width:0}
.maintenance-grid>aside button{margin:0 0 12px;padding:12px 16px;font-size:16px;white-space:normal;overflow-wrap:anywhere}
.maintenance fieldset{padding:20px;border:1px solid var(--hn-border);border-radius:8px;min-width:0;display:flex;flex-direction:column;gap:16px}
.maintenance legend{padding:0 8px;color:var(--brand);font-weight:600}.maintenance input,.maintenance textarea,.maintenance select{border-color:#8095a3}
.maintenance textarea{resize:vertical}.maintenance .actions{gap:8px}.maintenance .actions button{margin:0}
.maintenance #navigation,.maintenance #theme{padding:24px;background:#fff;border:1px solid var(--hn-border);border-radius:var(--hn-radius)}
.maintenance #nav-message:not(:empty),.maintenance #theme-message:not(:empty),.maintenance #message:not(:empty){padding:16px;border-left:3px solid var(--brand);background:#e5f1f8;color:var(--ink)}
.maintenance .pager button{width:auto;margin:0}.maintenance #audit{padding-left:24px;font-size:16px}
@media(min-width:900px){
 .site-header{padding:24px 48px;justify-content:space-between;gap:32px}.site-header .brand{flex:0 1 auto}
 .home-page main>section{padding:64px max(48px,calc((100vw - 1224px)/2))}
 .home-page .hero{padding:64px max(48px,calc((100vw - 1224px)/2));grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:48px;row-gap:32px}
 .hero-copy h1{font-size:48px}.hero-image{width:100%;height:auto}.hero-action{margin:0}
 .services,.home-news{gap:24px}.home-page footer{padding:48px max(48px,calc((100vw - 1224px)/2))}
 .news-page{padding:48px}.article{padding:48px 48px 80px}.share-page main{margin:64px auto;padding:48px}
 .maintenance{padding:32px 48px}.maintenance-grid{grid-template-columns:280px minmax(0,1fr)}
 .unavailable-page .button{width:300px}
}
@media(max-width:599px){.maintenance{padding:24px 16px}.maintenance-grid>aside,.maintenance-grid>#editor,.maintenance #navigation,.maintenance #theme{padding:16px}.maintenance fieldset{padding:16px}.maintenance .actions button{flex:1 1 100%}.site-header nav{gap:8px 16px}.share-page main{margin:24px 16px}.article-header{padding:24px}}
.theme-large{font-size:22px}.theme-large .news .card h2,.theme-large .news .card h3{font-size:28px}
.theme-relaxed.home-page main>section{padding-top:64px;padding-bottom:64px;gap:32px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* P05 user-directed hero art revision: creative scene plus secondary real-store photo. */
.home-page .hero{background:radial-gradient(ellipse at 85% 45%,#d9eefa 0,#edf6fc 54%,#f6fafe 100%);color:var(--ink);overflow:hidden}
.home-page .hero h1{color:var(--brand);line-height:1.4;letter-spacing:.02em}
.home-page .hero-copy .small{color:var(--brand);letter-spacing:.12em}
.home-page .hero-copy>p:last-child{color:var(--muted)}
.home-page .hero .hero-image{aspect-ratio:3/2;background:transparent;border:0;border-radius:20px;box-shadow:0 20px 60px rgba(18,107,154,.10);transition:transform .5s ease,box-shadow .5s ease}
.home-page .hero-image:hover{transform:translateY(-5px);box-shadow:0 26px 64px rgba(18,107,154,.16)}
.home-page .hero-action{background:var(--brand);color:white;border-color:var(--brand)}
.store-photo{margin:0;max-width:360px;align-self:flex-start;padding:8px;background:var(--canvas);border:1px solid var(--hn-border);border-radius:12px}
.store-photo img{display:block;width:100%;height:auto;max-height:220px;object-fit:contain;border-radius:6px}
.store-photo figcaption{font-size:14px;color:var(--muted);padding:8px 4px 0}
@media(max-width:899px){.home-page .hero{padding-top:40px;padding-bottom:40px}.home-page .hero-image{width:100%;border-radius:12px}.store-photo{max-width:280px}}
@media(prefers-reduced-motion:no-preference){
 .home-page .hero-copy>*{animation:hn-hero-enter .75s cubic-bezier(.2,.7,.2,1) both}
 .home-page .hero-copy>*:nth-child(2){animation-delay:.1s}.home-page .hero-copy>*:nth-child(3){animation-delay:.18s}.home-page .hero-copy>*:nth-child(4){animation-delay:.26s}
 .home-page .hero-image{animation:hn-art-enter 1s cubic-bezier(.2,.7,.2,1) .15s both}
 .home-page .hero-action{animation:hn-hero-enter .75s ease .38s both}
 @keyframes hn-hero-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
 @keyframes hn-art-enter{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
}
