/* ==========================================================================
   Flower Form 共通スタイル（order-form.php / pickup-form.php 共通）
   baptiste.jp の style.css から抜き出したもの。CSS変数への依存なし（色は直書き）。
   ========================================================================== */

.flower-form *{box-sizing:border-box;margin:0;padding:0}
.flower-form .section-label{font-size:1.2rem;font-weight:500;letter-spacing:0.05em;color:#917347;padding-bottom:0.75rem;border-bottom:1px solid #e8e8e8;margin-top:3rem}
.flower-form .f-error-banner + .section-label{margin-top:0}
.flower-form .req-note{font-size:13px;color:#666;margin:8px 0 0}
.flower-form .req{color:#c0392b;font-weight:700;margin-left:3px}
.flower-form .f-row{display:block;padding:0.55rem 0}
.flower-form .f-ipt{display:block!important;width:100%!important;height:64px!important;padding:24px 18px 8px!important;border:none!important;border-radius:8px!important;font-size:1.15rem!important;font-family:'Yu Gothic','游ゴシック',YuGothic,sans-serif!important;background:#f0f0f0!important;color:#1a1a1a!important;outline:none!important;box-shadow:none!important;-webkit-appearance:none!important;appearance:none!important;transition:background .15s,box-shadow .15s!important}
.flower-form .f-ipt:focus{background:#e8e8e8!important}
.flower-form textarea.f-ipt{height:auto!important;min-height:132px!important;padding:28px 18px 12px!important;resize:vertical!important;line-height:1.6!important}
.flower-form .qty-ipt{width:140px!important;text-align:center!important}
.flower-form .float-qty{width:140px}

.flower-form .float-field{position:relative;width:100%}
.flower-form .float-label{position:absolute;left:18px;top:50%;transform:translateY(-50%);font-size:1.5rem!important;color:#8a8a8a;pointer-events:none;transform-origin:left center;transition:top .16s ease,transform .16s ease,font-size .16s ease,color .16s ease;max-width:calc(100% - 48px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.flower-form .float-textarea .float-label{top:18px;transform:none}
.flower-form .float-field:focus-within .float-label,
.flower-form .float-field.is-filled .float-label,
.flower-form .float-field .f-ipt:not(select):not(:placeholder-shown) + .float-label{top:8px;transform:none;font-size:11px!important;letter-spacing:0.04em;color:#917347}
.flower-form .float-field .f-ipt::placeholder{color:transparent}
.flower-form .float-field:focus-within .f-ipt::-webkit-input-placeholder{color:#555}
.flower-form .float-field:focus-within .f-ipt::-moz-placeholder{color:#555;opacity:1}
.flower-form .float-field:focus-within .f-ipt::placeholder{color:#555}
.flower-form .date-field .f-ipt{padding-right:52px!important;cursor:pointer}

.flower-form .select-wrap{position:relative;width:100%}
.flower-form .select-wrap::after{content:'▾';position:absolute;right:16px;top:50%;transform:translateY(-50%);color:#917347;font-size:16px;pointer-events:none}
.flower-form .pickup-note{font-size:1.2rem;color:#666;margin:0 0 3rem;padding:16px 20px;background:#f7f4ef;border-radius:8px;line-height:1.7;text-align:center}
.flower-form .price-wrap{display:block!important;width:100%!important;margin-top:1.5rem!important}
.flower-form .price-wrap .p-row{display:flex!important;justify-content:space-between!important;align-items:center!important;min-height:unset!important;grid-template-columns:unset!important;padding:14px 0!important;border-bottom:1px solid #f0f0f0!important;font-size:1.1rem!important}
.flower-form .price-wrap .p-row.total{font-size:1.3rem!important;font-weight:500!important;border-bottom:none!important;padding-top:20px!important}
.flower-form .price-wrap .p-label{color:#1a1a1a!important;font-weight:400!important}
.flower-form .price-wrap .p-value{font-weight:500!important;color:#917347!important}
.flower-form .f-error{display:none;font-size:14px;color:#c0392b;margin-top:8px;padding:0 4px;line-height:1.6;font-weight:500}
.flower-form .f-error.is-visible{display:block}
.flower-form .float-field.is-locked{cursor:pointer}
.flower-form .float-field.is-locked .f-ipt,
.flower-form .date-field.is-locked .date-cal-btn{pointer-events:none}
.flower-form .f-error-banner{display:none;background:#fdf2f2;border:1px solid #e6b8b8;border-radius:8px;padding:16px 20px;margin-bottom:2rem;color:#c0392b;font-size:14px;line-height:1.9}
.flower-form .f-error-banner strong{display:block;margin-bottom:4px;font-size:15px}
.flower-form .f-ipt.field-error{background:#fdf2f2!important;box-shadow:0 0 0 2px #e6b8b8 inset!important}
.flower-form .float-field:has(.f-ipt.field-error) .float-label{color:#c0392b}
.flower-form .submit-btn{display:block;width:100%;height:64px;background:#917347;color:#fff;border:none;border-radius:8px;font-size:17px;font-family:'Yu Gothic','游ゴシック',YuGothic,sans-serif;font-weight:500;cursor:pointer;margin-top:1.5rem;letter-spacing:0.04em}
.flower-form .submit-btn:disabled{background:#ccc;cursor:not-allowed}
.flower-form .komoju-note{display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;color:#000;margin-top:1rem}

.flower-form .date-field{position:relative}
.flower-form .date-cal-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:44px;height:44px;padding:0;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center}
.flower-flatpickr{z-index:100000!important}

@media(max-width:1024px){
    .flower-form{padding:2rem 1.5rem}
    .flower-form .zip-row{flex-wrap:wrap}
    .flower-form .zip-row .float-field{width:100%}
    .flower-form .zip-row .f-ipt{width:100%!important}
    .flower-form .zip-btn{width:100%;text-align:center}
    .flower-form .f-error{font-size:16px;margin-top:10px}
    .flower-form .float-label{font-size:1.5rem!important}
    .flower-form .float-field:focus-within .float-label,
    .flower-form .float-field.is-filled .float-label,
    .flower-form .float-field .f-ipt:not(select):not(:placeholder-shown) + .float-label{font-size:11px!important}
    .flower-flatpickr{width:min(360px, calc(100vw - 48px))!important;max-width:calc(100vw - 48px)!important}
}

@media(max-width:600px){
    .flower-form{padding:1.5rem 1rem}
    .flower-form .f-error{font-size:15px}
    .flower-form .float-label{font-size:1.5rem!important}
    .flower-form .float-field:focus-within .float-label,
    .flower-form .float-field.is-filled .float-label,
    .flower-form .float-field .f-ipt:not(select):not(:placeholder-shown) + .float-label{font-size:11px!important}
    .flower-flatpickr{width:min(307px, calc(100vw - 24px))!important;max-width:calc(100vw - 24px)!important}
}

.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.selected:focus{background:#917347!important;border-color:#917347!important}
.flatpickr-day.today{border-color:#917347!important}
.flatpickr-day.today:hover{background:#f5f0e8!important;border-color:#917347!important;color:#917347!important}

.flower-form .zip-row{display:flex;align-items:stretch;gap:12px}
.flower-form .zip-row .float-field{flex:1;min-width:0}
.flower-form .zip-row .f-ipt{width:100%!important}
.flower-form .zip-btn{height:64px;padding:0 20px;background:#f0f0f0;border:none;border-radius:8px;font-size:14px;font-family:inherit;color:#917347;cursor:pointer;white-space:nowrap;transition:background .15s;flex-shrink:0}
.flower-form .zip-btn:hover{background:#e4e4e4}
.flower-form .area-outside{display:none;font-size:13px;margin-top:8px;color:#888}
.flower-form .area-outside a{color:#917347;text-decoration:underline}
.flower-form .gift-toggle{display:flex;align-items:center;gap:10px;cursor:pointer}
.flower-form .gift-toggle input[type=checkbox]{width:18px;height:18px;accent-color:#917347}
.flower-form .gift-toggle span{font-size:1.1rem;color:#1a1a1a}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover{color:#ddd!important;background:transparent!important}
