/* Responsive refinements: preserve the desktop composition and keep touch controls usable. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.hero,.detail,.cafe-grid,.about-intro,.contact-layout,.checkout-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.detail{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.checkout-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.detail>*,.cafe-grid>*,.about-intro>*,.contact-layout>*,.checkout-layout>*,.form-field,.cart-line-info,.product-meta>div{min-width:0}
.page-title,.article h1,.detail-copy h1,.contact-layout h1,.about-intro h1,.order-ready h1,.success-page h1{overflow-wrap:break-word}
.search-row>input{min-width:140px;flex:1 1 200px}.search-row>select{min-width:0;max-width:100%}
.phone-input input{font-variant-numeric:tabular-nums}
dialog{max-height:100vh;max-height:100dvh;overscroll-behavior:contain}
.cart-dialog{height:100vh;height:100dvh;padding-bottom:env(safe-area-inset-bottom,0px)}
.info-dialog{max-height:85vh;max-height:85dvh}
.dialog-head{position:sticky;top:0;background:var(--paper);z-index:2}
.close{width:44px;height:44px;flex-shrink:0}
.info-body textarea{font:16px/1.6 var(--sans)}
@media(pointer:coarse){input,select,textarea,.form-field input,.form-field select,.form-field textarea,.form-field .phone-input input,.search-row input,.price-filter{font-size:16px}}
.size-options{flex-wrap:wrap}.size-option{flex:1;min-width:0}
.footer-top a[href^="tel:"]{white-space:nowrap}
@media(max-width:1100px){
  .desktop-nav{display:none}.text-contact{display:none}
  .menu-button{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;width:44px;height:44px;padding:10px}
  .menu-button span{width:22px;height:1px;background:var(--green)}
  .mobile-nav{max-height:calc(100vh - 140px);max-height:calc(100dvh - 140px);overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(20px,env(safe-area-inset-bottom,0px))}
  .mobile-nav a{min-height:48px;display:flex;align-items:center;font-size:15px}
  .header-actions{gap:12px}.bag-button{min-width:44px;min-height:44px;justify-content:center;padding:10px 5px}
  .search-row{flex-wrap:wrap}.search-row>select{flex:1 1 150px}
}
@media(min-width:561px) and (max-width:900px){
  .hero{grid-template-columns:minmax(0,1fr)}
  .hero .hero-brand{font-size:clamp(65px,9.5vw,86px);letter-spacing:-2px}
  .hero-brand>span{display:block;white-space:nowrap}.hero-brand>span:before{content:none}
  .hero-visual{height:clamp(450px,65vw,550px)}
}
@media(max-width:800px){
  .checkout-layout{grid-template-columns:minmax(0,1fr)}
  .checkout-aside{position:static}
  .header-inner{gap:15px}.header .brand{flex-shrink:0}
  input,select,textarea,.form-field input,.form-field select,.form-field textarea,.search-row input,.price-filter{font-size:16px}
  .form-field .phone-input input{font-size:16px}
  .checkout-aside .edit-link{min-height:44px;font-size:12px;padding:10px 0}
  .filter-chip,.quick-dates button{min-height:44px}
  .add-round{width:44px;height:44px}.product-meta{gap:8px}
  .product h3{font-size:clamp(23px,3.8vw,30px)}
  .product-sub,.stock-status{font-size:11px}.product-price{font-size:13px}
  .stepper button,.cart-line .stepper button{min-width:40px;min-height:44px}
  .remove-line{min-height:44px;padding:10px 0;font-size:12px}
  .section-nav-inner{overflow-x:auto;white-space:nowrap;gap:20px;scrollbar-width:none}
  .section-nav-inner>*{flex-shrink:0}.section-nav-inner::-webkit-scrollbar{display:none}
  .section-nav button{min-height:37px;padding:8px 2px;font-size:11px}
  .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .choice-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .choice{min-width:0}.choice input{flex-shrink:0}
}
@media(max-width:560px){
  .wrap{padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
  .header-inner{height:72px;gap:8px}.header .brand{font-size:27px;letter-spacing:-1px}.header .brand small{font-size:7px;letter-spacing:.2em}
  .header-actions{gap:4px}.topline .wrap{height:auto;min-height:30px;gap:8px}.topline button{min-height:30px;padding:3px 0;text-align:right}
  .hero,.detail,.cafe-grid,.about-intro,.contact-layout,.checkout-layout{grid-template-columns:minmax(0,1fr)}
  .hero .hero-brand{font-size:clamp(61px,18vw,82px)}
  .hero-brand>span{white-space:nowrap}
  .hero-switch>a{font-size:11px;padding:12px 10px;gap:6px;min-height:54px}
  .hero-visual{height:clamp(350px,108vw,460px)}
  .page-title,.flower-types-page .page-title,.article h1,.contact-layout h1,.about-intro h1,.detail-copy h1{font-size:clamp(42px,12vw,54px);letter-spacing:-1.2px}
  .section-heading h2,.cafe-copy h2,.cafe-menu .section-heading h2{font-size:clamp(36px,10.5vw,46px)}
  .page-lead,.article p,.cafe-copy p,.about-intro p{font-size:13px}
  .products,.catalog-section .products{gap:28px 14px}
  .product-image,.catalog-section .product-image{height:auto;aspect-ratio:3/4}
  .product-meta{display:block;position:relative;padding-bottom:50px}
  .product h3{font-size:25px;line-height:1.08;letter-spacing:-.5px}
  .product .add-round{position:absolute;left:0;bottom:0}
  .product-sub{font-size:11px;line-height:1.6}.stock-status{font-size:10px;flex-wrap:wrap}
  .product-badge{max-width:calc(100% - 16px);line-height:1.5;top:8px;left:8px;font-size:9px}
  .flower-type-image{height:auto;aspect-ratio:3/4}
  .flower-type-title h2{font-size:clamp(24px,7vw,30px);overflow-wrap:break-word}
  .flower-type>p{font-size:11px}.flower-type-title{gap:4px}.flower-type-title>span{flex-shrink:0}
  .catalog-paths a,.catalog-result-row>button{min-height:44px;display:inline-flex;align-items:center;font-size:12px}
  .catalog-paths{gap:0 20px;margin:15px 0}
  .budget-shortcuts button{min-height:48px;font-size:12px}
  .availability-row label{min-height:44px;font-size:13px}.availability-row>span{font-size:10px}
  .catalog-result-row{gap:10px}.catalog-result-row .result-count{font-size:11px}
  .filter-chip{font-size:12px;padding:10px 14px}
  .search-row>input,.search-row>select{flex:1 1 100%;min-height:48px;width:100%;font-size:16px}
  .detail-photo{height:auto;aspect-ratio:4/5}.detail-photo .photo-tag{max-width:calc(100% - 30px);font-size:9px}
  .detail-actions{flex-wrap:wrap}.detail-actions .btn{flex:1 1 170px;min-width:0;padding:14px 12px;font-size:12px;gap:8px}
  .detail-actions .stepper{flex:0 0 auto}.size-options{gap:8px}.size-option{padding:12px 10px;min-height:66px}
  .size-option span{font-size:11px}.detail-note{font-size:11px}
  summary{font-size:14px;min-height:30px;align-items:center}details p{font-size:12px}
  .contact-layout .hero-actions{align-items:stretch;flex-direction:column}.contact-layout .btn{width:100%;font-size:13px}
  .contact-layout .entrance{height:clamp(350px,110vw,470px)}
  .checkout-layout{padding-top:15px}.checkout-aside{padding:20px}.checkout-aside .cart-line h3{font-size:24px}
  .form-grid{grid-template-columns:minmax(0,1fr)}.form-field{grid-column:auto;font-size:13px}
  .form-field.wide{grid-column:1/-1}.form-field input,.form-field select,.form-field textarea{min-height:50px;font-size:16px}
  .form-field input[type=date]{min-width:0;-webkit-appearance:none;appearance:none;display:block;text-align:left}
  .choice-row{gap:10px}.choice{font-size:13px;padding:12px 10px}.choice small{font-size:11px}
  .check-option,.consent{font-size:12px}.check-option{padding:5px 0}.check-option small{font-size:11px}
  .check-option input,.choice input,.consent input,.availability-row input{width:20px;height:20px;flex-shrink:0}
  .phone-hint,.form-field .phone-hint,.field-error{font-size:11px}.phone-prefix{padding-left:12px;padding-right:12px;font-size:16px}
  .phone-count{font-size:10px;padding-right:9px}.form-field .phone-input input{letter-spacing:.04em;padding:10px 8px}
  .payment-note p,.checkout-form .form-note,.small-note{font-size:11px}
  .custom-flower-options span{min-height:44px;font-size:12px}.custom-form legend{font-size:29px}
  .cart-line{gap:12px}.cart-line img{width:65px;height:88px}.cart-line h3{font-size:25px}
  .cart-line .line-bottom{flex-wrap:wrap;gap:10px}.cart-line small{font-size:11px}
  .dialog-head{padding:16px 20px}.dialog-head h2{font-size:30px;min-width:0}
  .cart-summary{padding-bottom:max(24px,env(safe-area-inset-bottom,0px))}
  .info-body{font-size:13px;overflow-wrap:anywhere}
  .footer-top{gap:24px 16px}.footer-top .brand{font-size:24px}.footer-top>p{font-size:24px}
  .footer-top>div{font-size:12px;gap:0}.footer-top>div a{padding:9px 0;min-height:40px}
  .footer-bottom{font-size:10px}.footer-bottom a,.footer-bottom button{min-height:44px;display:inline-flex;align-items:center;font-size:11px}
  .toast{bottom:calc(15px + env(safe-area-inset-bottom,0px));max-width:calc(100vw - 32px)}
}
@media(max-width:350px){
  .wrap{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
  .header .brand{font-size:23px}.header .brand small{font-size:6px}.header-inner{gap:2px}.header-actions{gap:0}
  .hero-switch>a{font-size:10px;padding:10px 7px}.hero .hero-brand{font-size:60px}
  .products,.catalog-section .products{gap:24px 10px}.product h3{font-size:23px}
  .footer-top{grid-template-columns:minmax(0,1fr)}.footer-top .brand{justify-self:start}
  .choice-row{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:950px) and (max-height:500px) and (orientation:landscape){
  .form-field input,.form-field select,.form-field textarea,.form-field .phone-input input,.search-row input,.price-filter{font-size:16px}
  .topline{display:none}.header-inner{height:60px}.brand small{display:none}
  .mobile-nav{max-height:calc(100vh - 65px);max-height:calc(100dvh - 65px)}
  .scrolled .section-nav{height:0;border:0}
}
