/* Shared controls, scoped so the approved homepage keeps its layout. */
.hanon-share-block{margin:40px auto;max-width:740px;padding:28px 24px;background:#eafaff;border:1px solid #cfdae0;border-radius:18px;color:#102b3c;text-align:center;font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}
.hanon-share-block p{margin:12px 0 0;font-size:14px;line-height:1.8}
.hanon-share-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:64px;padding:14px 28px;max-width:100%;border:3px double #fff6cc;border-radius:48px;background:linear-gradient(120deg,#a7e9e8,#e4f7ff 43%,#ffd0bf);box-shadow:0 5px 0 #15364a,0 8px 16px #16303d19;color:#15364a;font:700 clamp(16px,2vw,20px)/1.55 sans-serif;cursor:pointer;transition:transform .18s,box-shadow .18s}
.hanon-share-button::before{content:'↗';font-size:28px}.hanon-share-button:hover{transform:translateY(-3px);box-shadow:0 8px 0 #15364a}.hanon-share-button:active{transform:translateY(3px);box-shadow:0 2px 0 #15364a}
.hanon-dialog{box-sizing:border-box;inset:0;max-height:calc(100dvh - 32px);width:min(760px,calc(100% - 24px));margin:auto;padding:28px;border:1px solid #cfdae0;border-radius:22px;color:#102b3c;background:white;overflow:auto;overscroll-behavior:contain;font:16px/1.8 'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}
.hanon-dialog::backdrop{background:#102b3ccc;backdrop-filter:blur(4px)}.hanon-dialog[open]{animation:hanon-enter .18s ease-out}
.hanon-dialog h2{font:700 clamp(24px,4vw,32px)/1.45 'Yu Mincho',serif;margin:8px 0 16px;text-wrap:balance}.hanon-dialog p{margin:12px 0}.hanon-dialog a{color:#006a98}.hanon-dialog small,.hanon-dialog .hanon-help{font-size:14px;line-height:1.8;color:#586c79}
.hanon-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.hanon-dialog-head .hanon-logo{width:180px;aspect-ratio:3.2;overflow:hidden}.hanon-dialog-head img{width:100%;height:100%;object-fit:cover;object-position:50% 53%}
.hanon-close{flex:none;min-width:48px;min-height:48px;background:white;border:1px solid #cfdae0;border-radius:50%;font:28px/1 sans-serif;color:#102b3c;cursor:pointer}
.hanon-services{display:grid;gap:12px;margin:20px 0}.hanon-services>a,.hanon-services>button{box-sizing:border-box;text-align:left;display:flex;justify-content:space-between;align-items:center;padding:16px 20px;min-height:64px;border:1px solid #cfdae0;border-radius:12px;background:#f3fbfd;color:#102b3c;font:inherit;text-decoration:none;cursor:pointer}.hanon-services b,.hanon-services small{display:block}.hanon-services>a:hover,.hanon-services>button:hover{background:#ffe064}
.hanon-dialog textarea{display:block;box-sizing:border-box;width:100%;min-height:210px;padding:12px;font:14px/1.8 sans-serif;color:#102b3c;border:1px solid #586c79;border-radius:8px;resize:vertical}.hanon-dialog button.hanon-copy{min-height:48px;padding:10px 18px;background:#ffe064;border:1px solid #15364a;border-radius:8px;font:inherit;cursor:pointer}.hanon-dialog summary{min-height:44px;padding:8px 0;cursor:pointer}.hanon-copy-status{min-height:28px;color:#006a98;font-weight:700}.hanon-share-url{width:100%;box-sizing:border-box;min-height:48px;padding:10px;font:15px/1.4 sans-serif;border:1px solid #cfdae0}
.hanon-dialog .hanon-services[hidden],.hanon-dialog [hidden]{display:none}.hanon-dialog-open .hanon-dock{visibility:hidden}.hanon-floor-button{display:block;width:100%;padding:0;border:1px solid #cfdae0;border-radius:14px;overflow:hidden;background:#f8f6f0;cursor:zoom-in}.hanon-floor-button img{display:block;width:100%;height:auto}.hanon-floor-label{display:block;padding:14px;color:#006a98;background:white;font:700 16px/1.7 sans-serif}.hanon-floor-dialog{width:min(1540px,calc(100% - 16px));padding:16px}.hanon-floor-scroll{overflow:auto;max-height:calc(100dvh - 180px);touch-action:pan-x pan-y}.hanon-floor-scroll img{display:block;width:100%;min-width:1100px;height:auto}.hanon-floor-dialog h2{font:700 20px/1.5 sans-serif}.hanon-floor-dialog .hanon-help{margin:4px 0 10px}
.hanon-dialog :focus-visible,.hanon-share-button:focus-visible,.hanon-floor-button:focus-visible{outline:3px solid #006a98;outline-offset:4px}
@keyframes hanon-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:600px){.hanon-dialog{padding:20px}.hanon-share-block{padding:24px 16px;margin:28px 0}.hanon-share-button{padding:12px 16px;border-radius:28px}.hanon-services>a,.hanon-services>button{padding:14px}.hanon-floor-dialog{padding:12px}}
@media(prefers-reduced-motion:reduce){.hanon-dialog[open]{animation:none}.hanon-share-button{transition:none}}
