/* First-view composition. Text stays live; photography is an independent asset. */
.masthead{width:min(740px,100%);margin:auto;min-height:82px;padding:17px 26px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#086aa6;background:#fff}
.masthead-name{font-size:25px;font-weight:900;line-height:1.25;letter-spacing:.01em}
.masthead-name small{display:block;font-size:12px;font-weight:700;letter-spacing:.12em;margin-bottom:5px}
.masthead-service{font-size:13px;font-weight:700;border-left:1px solid #c9dce8;padding-left:18px;line-height:1.5}
.first-view{background:#076baa;isolation:isolate;overflow:hidden;color:#fff}
.first-view-copy{text-align:center;padding:27px 24px 28px;position:relative;z-index:2}
.first-view-kicker{margin:0 0 13px;font-size:23px;line-height:1.5;font-weight:800;letter-spacing:-.04em}
.first-view-kicker em{font-style:normal;color:#ffeb35}
.first-view h1{margin:0;color:#076baa;font-size:clamp(27px,5.5vw,50px);letter-spacing:-.055em;font-weight:900;line-height:1.3;background:white;padding:8px 5px 10px;white-space:nowrap}
.first-view-brand{font-size:30px;font-weight:800;margin:14px 0 0;line-height:1.4;letter-spacing:-.045em}
.first-view-brand strong{color:#ffeb35;font-size:39px;letter-spacing:-.04em}
.first-view-scene{position:relative;margin:0;background:#eff7fb;aspect-ratio:3/2}
.first-view-scene>img{display:block;width:100%;height:100%;object-fit:contain}
.first-view-price{position:absolute;right:22px;bottom:25px;width:47%;color:#15364c;background:#fff;border:3px solid white;box-shadow:0 5px 18px #16486824;text-align:center}
.first-view-price h2{margin:0;background:#0872b3;color:white;padding:10px 6px;font-size:22px;line-height:1.35;letter-spacing:0}
.first-view-price h2 span{color:#fff057}
.first-view-price>p{font-size:16px;line-height:1.5;margin:10px 4px 0;font-weight:700}
.first-view-price .saving{display:flex;align-items:baseline;justify-content:center;gap:1px;white-space:nowrap;color:#df4907;line-height:1.1;margin:2px 0 8px}
.saving b{font-size:66px;letter-spacing:-.07em;font-family:Arial,sans-serif;font-weight:800}
.saving span{font-size:27px;font-weight:900;letter-spacing:-.04em}
.first-view-price small{display:block;border-top:1px solid #deebf2;margin:0 9px;padding:7px 0 5px;font-size:12px;color:#3e5b6d}
.first-view-caption{position:absolute;left:12px;bottom:6px;margin:0;padding:2px 5px;background:#ffffffd9;color:#475a68;font-size:12px;line-height:1.5}
.first-view-bottom{display:flex;justify-content:center;align-items:center;gap:25px;padding:17px 20px;font-size:17px;font-weight:700;line-height:1.5}
.first-view-bottom p{margin:0}.first-view-bottom strong{font-size:31px;letter-spacing:-.025em;color:#ffeb35}.first-view-bottom small{font-size:13px}.first-view-bottom>span{border:1px solid #81b9db;border-radius:2px;padding:5px 12px;font-size:14px}
.first-view-follow{background:white;text-align:center;margin:0;padding:25px 16px 28px;color:#273d4d;font-size:17px;line-height:1.7}.first-view-follow strong{font-weight:800;color:#076baa;font-size:22px}.first-view-follow span{display:block;font-size:14px;color:#546777;margin-top:3px}
@media(max-width:600px){
 .masthead{min-height:66px;padding:12px 16px}.masthead-name{font-size:20px}.masthead-name small{font-size:10px;letter-spacing:.04em;margin-bottom:3px}.masthead-service{font-size:11px;padding-left:10px}
 .first-view-copy{padding:20px 13px 23px}.first-view-kicker{font-size:clamp(14px,3.65vw,21px);margin-bottom:12px}.first-view h1{font-size:clamp(24px,6.6vw,39px);padding:7px 3px 9px;letter-spacing:-.055em}.first-view-brand{font-size:clamp(19px,5vw,28px);margin-top:13px}.first-view-brand strong{font-size:clamp(23px,6.3vw,35px)}
 .first-view-price{right:10px;bottom:18px;width:49%;border-width:2px}.first-view-price h2{font-size:clamp(14px,3.7vw,21px);padding:7px 3px}.first-view-price>p{font-size:12px;margin-top:7px}.first-view-price .saving{margin:2px 0 5px}.saving b{font-size:clamp(34px,10.6vw,59px)}.saving span{font-size:clamp(17px,4.8vw,25px)}.first-view-price small{font-size:10px;padding:4px 0 2px;margin:0 4px}.first-view-caption{font-size:10px;left:7px;bottom:3px;padding:1px 3px}
 .first-view-bottom{gap:10px;padding:13px 10px;font-size:13px}.first-view-bottom strong{font-size:26px}.first-view-bottom small{font-size:10px}.first-view-bottom>span{font-size:11px;padding:4px 7px}.first-view-follow{padding:21px 14px 24px;font-size:15px}.first-view-follow strong{font-size:19px}.first-view-follow span{font-size:13px}
}
@media(max-width:360px){.masthead-service{display:none}.first-view-price>p{font-size:11px}.first-view-bottom>span{font-size:10px;padding:4px}.first-view-bottom{gap:7px}.first-view-bottom strong{font-size:24px}}
@media(max-width:360px){.first-view-kicker{font-size:13px;white-space:nowrap}.first-view-bottom p{white-space:nowrap;font-size:11px}.first-view-bottom>span{font-size:10px}.first-view-follow strong{font-size:17px}.first-view-follow{font-size:14px}.first-view-price>p{font-size:11px}}
/* Osaka-ya identity and first-view contact panel. */
.masthead{padding:13px 22px;min-height:76px}.osakaya-logo{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:#0872b3;line-height:1.1;font-weight:900;width:max-content}.logo-owner{font-size:23px;letter-spacing:.1em;margin-bottom:3px}.logo-service{font-size:19px;letter-spacing:-.06em;border-top:3px solid #f69227;border-bottom:3px solid #0872b3;border-radius:12px 0 12px 0;padding:3px 6px 4px}.masthead-wordmark{font-size:25px;font-weight:900;color:#0872b3;letter-spacing:-.06em}.first-view-contact{background:#fff;text-align:center;padding:26px 18px 0}.contact-catch{margin:0 0 13px;color:#e94e00;font-size:24px;font-weight:800;line-height:1.4}.contact-catch:before{content:'＼';margin-right:8px}.contact-catch:after{content:'／';margin-left:8px}.hero-booking-link{min-height:110px;display:flex;align-items:center;gap:18px;background:#e94e00;color:#fff;border:2px solid #e94e00;border-radius:6px;text-decoration:none;overflow:hidden}.booking-guide{align-self:stretch;width:25%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#fff;color:#e94e00;border-radius:0 55% 55% 0;font-size:17px;line-height:1.3;font-weight:800;padding:13px 9px 13px 4px}.hero-booking-link strong{font-size:31px;flex:1;white-space:nowrap}.booking-chevron{font:44px/1 Arial,sans-serif;padding-right:22px}.hero-booking-link:hover{background:#cd4100}.hero-booking-link:focus-visible,.osakaya-logo:focus-visible,.hero-phone a:focus-visible{outline:3px solid #006db4;outline-offset:4px}.hero-phone{background:#eaf3f8;margin:24px -18px 0;padding:23px 10px;color:#183c53}.hero-phone p{margin:0;font-size:21px;line-height:1.6}.hero-phone a{color:inherit;text-decoration:underline;white-space:nowrap}.hero-phone .phone-hours{font-size:16px;margin-top:3px}
@media(max-width:600px){.masthead{padding:9px 13px;min-height:62px}.logo-owner{font-size:17px}.logo-service{font-size:14px;border-width:2px;padding:2px 5px 3px}.masthead-wordmark{font-size:20px}.first-view-contact{padding:22px 12px 0}.contact-catch{font-size:clamp(13px,4vw,20px);letter-spacing:-.04em;margin-bottom:11px}.contact-catch:before{margin-right:3px}.contact-catch:after{margin-left:3px}.hero-booking-link{min-height:76px;gap:8px}.booking-guide{font-size:11px;width:28%;padding:10px 8px 10px 3px}.hero-booking-link strong{font-size:clamp(16px,4.8vw,24px)}.booking-chevron{font-size:31px;padding-right:14px}.hero-phone{margin:16px -12px 0;padding:20px 9px}.hero-phone p{font-size:14px}.hero-phone .phone-hours{font-size:12px}}
@media(max-width:360px){.hero-phone p{font-size:12px}.booking-guide{font-size:10px}.booking-chevron{padding-right:10px}.hero-booking-link{gap:6px}}
/* Photo-overlay ranking medal, paired with the discount card. */
.hero-award{position:absolute;left:8%;bottom:38px;width:25%;aspect-ratio:1;z-index:2;filter:drop-shadow(0 3px 3px #18364e55);color:#fff;text-align:center}.hero-award-face{position:absolute;inset:0;border-radius:50%;padding:13% 5% 9%;background:radial-gradient(circle at 38% 25%,#1977b6,#004675 85%);border:6px solid #dfbc64;box-shadow:0 0 0 2px #92631c,inset 0 0 0 2px #fff0bd;display:flex;flex-direction:column;align-items:center;justify-content:center}.hero-award-face>span{font-size:12px;line-height:1.3;font-weight:700}.hero-award-face>strong{font:800 65px/.9 Arial,sans-serif;color:#ffe184;white-space:nowrap;margin:4px 0}.hero-award-face strong small{font-size:21px}.hero-award-face>b{font-size:21px;line-height:1.4;color:#fff3ca}.hero-award-face>.award-stars{font-size:14px;letter-spacing:4px;color:#f9d778;margin-top:3px}.hero-award-ribbon{position:absolute;bottom:-6%;left:-10%;width:120%;padding:7px 2px;background:linear-gradient(105deg,#9d6b20,#ffe9a4 25%,#d9ae50 68%,#fff0b4 85%,#ac7a2a);clip-path:polygon(0 0,10% 8%,90% 8%,100% 0,96% 50%,100% 100%,80% 90%,20% 90%,0 100%,4% 50%);color:#634311;font-size:14px;font-weight:900;line-height:1.4}.hero-award-note{background:white;color:#667580;font-size:11px;line-height:1.6;padding:9px 13px;margin:0}
@media(max-width:600px){.hero-award{left:7%;bottom:27px;width:26%}.hero-award-face{border-width:4px;box-shadow:0 0 0 1px #92631c,inset 0 0 0 1px #fff0bd}.hero-award-face>span{font-size:clamp(7px,1.85vw,11px)}.hero-award-face>strong{font-size:clamp(31px,9vw,53px);margin:2px 0}.hero-award-face strong small{font-size:clamp(12px,3.4vw,20px)}.hero-award-face>b{font-size:clamp(11px,3vw,17px)}.hero-award-face>.award-stars{font-size:8px;letter-spacing:2px;margin-top:1px}.hero-award-ribbon{font-size:clamp(8px,2.3vw,13px);padding:5px 1px}.hero-award-note{font-size:10px;padding:8px 11px}}
/* Reference composition: white headline band, arched photograph and paired overlays. */
.first-view{container-type:inline-size;background:#006eb3}.first-view-copy{padding:4.2% 5.5% 3.6%}.first-view-kicker{font-size:4.05cqw;line-height:1.5;letter-spacing:-.045em;margin:0 0 2.4%;white-space:nowrap}.first-view-kicker em{font-size:4.8cqw;color:#fff000}.first-view h1{font-size:7.3cqw;line-height:1.3;padding:1.2% .3% 1.8%;letter-spacing:-.055em;color:#006eb3}.first-view-brand{font-size:6.4cqw;line-height:1.4;margin:2.1% 0 0;white-space:nowrap;letter-spacing:-.04em}.first-view-brand strong{font-size:8.5cqw;letter-spacing:-.045em;margin-right:1%}.first-view-scene{aspect-ratio:1.44;background:transparent;overflow:hidden}.first-view-scene>img{object-fit:cover;object-position:center;clip-path:ellipse(91% 100% at 50% 100%)}.first-view-price{right:2.8%;bottom:4%;width:49%;border:0;box-shadow:none;background:#ffffffdc}.first-view-price h2{font-size:3.65cqw;line-height:1.25;padding:2% 1%;background:#006eb3;letter-spacing:-.025em}.first-view-price>p{font-size:2.65cqw;white-space:nowrap;letter-spacing:-.045em;color:#006eb3;margin:2% 0 0;line-height:1.5}.first-view-price .saving{margin:0;gap:0;padding:0 1%;align-items:center}.first-view-price .saving b{font-size:9.2cqw;letter-spacing:-.065em;color:#df4b0a;text-shadow:1px 1px white}.first-view-price .saving>span{font-size:3.65cqw;color:#006eb3;font-weight:900}.first-view-price .saving .saving-per{font-size:4.4cqw;line-height:1.05;margin-right:1%}.saving-per small{display:block;font-size:2.4cqw}.saving-unit{line-height:1.1}.saving-unit small{display:block;font-size:1.8cqw;color:#df4b0a}.hero-award{left:18%;bottom:8%;width:24%}.hero-award-face>span{font-size:1.8cqw}.hero-award-face>strong{font-size:8.8cqw}.hero-award-face strong small{font-size:3.3cqw}.hero-award-face>b{font-size:3cqw}.hero-award-face>.award-stars{font-size:1.8cqw}.hero-award-ribbon{font-size:2.25cqw;padding:4% 1%}.first-view-caption{font-size:1.6cqw;left:1.3%;bottom:.8%}.hero-award-note{font-size:12px;line-height:1.5;padding:10px 16px}.masthead{padding:20px 30px;min-height:90px}.masthead-wordmark{font-size:29px}
@media(max-width:600px){.masthead{padding:13px 18px;min-height:65px}.masthead-wordmark{font-size:21px}.hero-award-note{font-size:10px;padding:8px 11px}}
.first-view-price .saving small{border:0;margin:0;padding:0;line-height:1.1}.first-view-price .saving-per small{color:#006eb3}.first-view-price .saving-unit small{color:#df4b0a}
/* Keep the medal stars clear of the ribbon and prices inside the card. */
.hero-award-face{padding:8% 5% 22%}.hero-award-face>strong{font-size:7.8cqw;margin:2px 0}.hero-award-face>b{font-size:2.7cqw}.hero-award-face>.award-stars{margin-top:1%;line-height:1.2}.hero-award-ribbon{bottom:-8%;padding:3% 1%}.first-view-price{bottom:5%;padding-bottom:2%;box-sizing:border-box}.first-view-price .saving{padding:1% 2% 0;line-height:1.15;min-width:0}.first-view-price .saving b{font-size:8.15cqw;line-height:1.15;letter-spacing:-.065em}.first-view-price .saving .saving-per{font-size:3.9cqw;flex-shrink:0}.first-view-price .saving>span.saving-unit{font-size:3.15cqw;flex-shrink:0}.first-view-price .saving-per small{font-size:2.1cqw}.first-view-price .saving-unit small{font-size:1.7cqw}
/* Sculpted gold medal with a dimensional ribbon. */
.hero-award{isolation:isolate;filter:drop-shadow(0 3px 2px #18364e55)}.hero-award-face{inset:0;border:0;padding:12% 8% 21%;background:radial-gradient(circle at 36% 25%,#087db8 0%,#005287 55%,#002f59 100%);box-shadow:inset 0 0 0 1px #694a0b,inset 0 0 0 3px #fff1b2;z-index:1}.hero-award-face:before{content:'';position:absolute;inset:-5%;border-radius:50%;z-index:-1;background:conic-gradient(from 10deg,#a97722,#fff1ac 12%,#bc8830 23%,#ffedaa 35%,#906016 47%,#f9d779 59%,#fff4be 72%,#b37b20 85%,#f7d879);box-shadow:0 0 0 1px #835519,inset 0 0 0 2px #f8e3a0}.hero-award-face:after{content:'';position:absolute;inset:0;border-radius:50%;z-index:-1;background:radial-gradient(circle at 35% 22%,#147fb9,#005087 60%,#00345d);box-shadow:inset 0 0 0 2px #fae6a4,inset 0 0 8px #00182d88}.hero-award-face>span{font-size:2.1cqw;white-space:nowrap;color:white;line-height:1.35;text-shadow:0 1px 1px #003458}.hero-award-face>strong{font-size:10.4cqw;line-height:.98;letter-spacing:-.07em;margin:1% 0 0;color:#ffe583;text-shadow:0 2px 1px #826022}.hero-award-face strong small{font-size:4.7cqw;letter-spacing:-.05em;margin-left:3%}.hero-award-face>b{font-size:2.65cqw;color:#fff;line-height:1.3;margin-top:2%;text-shadow:0 1px 1px #003458}.hero-award-face sup{font-size:1.4cqw;vertical-align:super;margin-left:2px}.hero-award-ribbon{bottom:-2%;left:-17%;width:134%;height:27%;padding:0;clip-path:polygon(0 9%,17% 15%,17% 0,83% 0,83% 15%,100% 9%,93% 49%,100% 100%,79% 84%,21% 84%,0 100%,7% 49%);background:linear-gradient(100deg,#b17b25 0%,#f8d887 10%,#8e5b15 18%,#e5b657 25%,#ffeab0 46%,#d4a044 75%,#8e5b15 82%,#f7d784 91%,#b17b25);z-index:3;color:#986519;text-shadow:0 1px #fff0b0;font-size:3.6cqw;line-height:1;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 1px #7f561b66)}.hero-award-ribbon>span{display:block;transform:translateY(-7%);font-weight:900;letter-spacing:.1em}.hero-award-note{padding-top:12px}
.hero-award.medal-art{display:block;height:auto;aspect-ratio:1;overflow:visible;left:16%;bottom:5%;width:28%;filter:drop-shadow(0 2px 2px #17374d55)}
/* Strengthen the hero headline even on systems without a Japanese black weight. */
.first-view h1{font-family:'Arial Black','Noto Sans JP','Yu Gothic','Meiryo',sans-serif;font-weight:900;-webkit-text-stroke:.018em currentColor;paint-order:stroke fill}
/* Match the reference's heavy Japanese Gothic headline treatment. */
.first-view-copy{font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic','Meiryo',sans-serif}.first-view-kicker,.first-view-brand{font-weight:900;-webkit-text-stroke:.012em currentColor;paint-order:stroke fill}.first-view h1{font-family:inherit;font-weight:900;letter-spacing:-.045em;-webkit-text-stroke:.022em currentColor}.first-view-brand strong{font-weight:900;-webkit-text-stroke:.016em currentColor}
/* Keep the reference proportions at every width, rather than shrinking only the type. */
.first-view-copy{padding:4.3% 5.5% 3.8%}.first-view-kicker{font-size:4.25cqw;letter-spacing:-.035em;font-weight:800;-webkit-text-stroke:0;margin-bottom:2.3%}.first-view-kicker em{font-size:4.8cqw}.first-view h1{font-size:7.65cqw;letter-spacing:-.055em;-webkit-text-stroke:.008em currentColor;padding:1% .3% 1.6%}.first-view-brand{font-size:6.6cqw;letter-spacing:-.04em;-webkit-text-stroke:0;margin-top:2.4%}.first-view-brand strong{font-size:8.9cqw;-webkit-text-stroke:0}.first-view-contact{padding:24px 6% 0}.hero-booking-link{gap:10px;min-height:94px}.booking-guide{width:27%;font-size:15px;border-radius:0 42% 42% 0}.hero-booking-link strong{font-size:28px}.contact-catch{font-size:22px}.hero-phone{margin:20px -6.82% 0;padding:22px 10px}.hero-phone p{font-size:20px}.hero-phone .phone-hours{font-size:15px}
@media(max-width:600px){.first-view-contact{padding:20px 5% 0}.contact-catch{font-size:clamp(13px,4vw,21px);margin-bottom:10px}.hero-booking-link{min-height:74px;gap:7px}.booking-guide{font-size:clamp(10px,2.8vw,14px);width:27%}.hero-booking-link strong{font-size:clamp(17px,4.8vw,25px)}.hero-phone{margin:16px -5.56% 0;padding:19px 9px}.hero-phone p{font-size:clamp(12px,3.65vw,18px)}.hero-phone .phone-hours{font-size:clamp(11px,3vw,14px)}}
