/* IONO / NUNO parent shared stylesheet.
 * Single source for both natural and polyester parent pages.
 * Polyester layout is the visual baseline.
 */

/* Parent embed shell; moved from inline style attributes. */
#nstudioEmbedWrap { width:100%; max-width:100%; }
#nstudioFrame { display:block; width:100%; height:900px; margin:0; padding:0; border:0; overflow:hidden; background:transparent; }

#onstudiowrap,
#polyOnstudioWrap {
      max-width: 1240px;
      margin: 0 auto;
    }

    #nstudioQuoteProjects {
      width: 100%;
      max-width: 100%;
      margin: 28px auto 34px;
      padding: 20px;
      border: 1px solid #d7dde6;
      border-radius: 12px;
      background: #f7f8fa;
      box-shadow: 0 4px 18px rgba(31, 45, 61, .06);
      box-sizing: border-box;
    }

    #nstudioQuoteProjects * {
      box-sizing: border-box;
    }

    .nstudio-quote-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 14px;
    }

    .nstudio-quote-title {
      color: #27384d;
      font-size: 18px;
      font-weight: 700;
    }

    #nstudioQuoteCount {
      margin-left: 8px;
      color: #687383;
      font-size: 13px;
      font-weight: 500;
    }

    #nstudioQuoteGrid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 34px;
      align-items: stretch;
    }

    #nstudioQuoteList {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 24px;
    }

    .nstudio-quote-item {
      display: grid;
      grid-template-columns: 148px minmax(0, 1fr) 84px;
      grid-template-areas:
        "title title title"
        "thumb body actions"
        "commerce commerce commerce";
      gap: 14px 16px;
      align-items: start;
      padding: 16px;
      border: 1px solid #cfd6df;
      border-radius: 10px;
      background: #fff;
      box-shadow: 0 2px 8px rgba(31, 45, 61, .04);
    }

    .nstudio-quote-item.is-current {
      border: 3px solid #304b6a;
      background: #f5f7fa;
      box-shadow: 0 7px 20px rgba(42, 61, 84, .14);
    }

    .nstudio-quote-item.is-current .nstudio-quote-item-name {
      color: #203a59;
    }

    .nstudio-quote-item.is-current .nstudio-quote-badge:first-child {
      padding: 4px 10px;
      background: #304b6a;
      color: #fff;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: .02em;
    }

    .nstudio-quote-item-head {
      grid-area: title;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding-bottom: 11px;
      border-bottom: 1px solid #e1e6e3;
    }

    .nstudio-quote-thumb {
      grid-area: thumb;
      width: 148px;
      min-height: 148px;
      aspect-ratio: 1 / 1;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      border-radius: 7px;
      background: #f5f7f6;
    }

    .nstudio-quote-thumb img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: contain;
    }

    .nstudio-quote-thumb-empty {
      padding: 10px;
      color: #7a837f;
      font-size: 12px;
      line-height: 1.5;
      text-align: center;
    }

    .nstudio-quote-item-body {
      grid-area: body;
      min-width: 0;
    }

    .nstudio-quote-item-name {
      margin: 0;
      font-size: 16px;
      font-weight: 700;
      line-height: 1.45;
    }

    .nstudio-quote-badges {
      min-height: 0;
      margin: 0;
      text-align: right;
    }

    .nstudio-quote-badge {
      display: inline-block;
      margin: 0 6px 4px 0;
      padding: 2px 7px;
      border-radius: 999px;
      background: #e8ebef;
      color: #505b68;
      font-size: 11px;
      line-height: 1.6;
    }

    .nstudio-quote-spec-label {
      margin: 3px 0 4px;
      color: #4c5968;
      font-size: 12px;
      font-weight: 700;
    }

    .nstudio-quote-spec {
      color: #626d79;
      font-size: 12px;
      line-height: 1.65;
      white-space: pre-line;
      overflow-wrap: anywhere;
    }

    .nstudio-quote-actions {
      grid-area: actions;
      display: flex;
      flex-direction: column;
      gap: 7px;
      min-width: 74px;
    }

    .nstudio-quote-commerce-wrap {
      grid-area: commerce;
      min-width: 0;
    }

    .nstudio-quote-commerce {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
      gap: 10px;
      padding-top: 13px;
      border-top: 1px solid #e1e6e3;
    }

    .nstudio-quote-commerce-card {
      min-width: 0;
      padding: 12px 14px;
      border: 1px solid #d8dfdb;
      border-radius: 8px;
    }

    .nstudio-quote-commerce-card.is-hand-dye {
      border-color: #ead7bd;
      background: #fff8ef;
    }

    .nstudio-quote-commerce-card.is-print {
      border-color: #cbddef;
      background: #f2f8ff;
    }

    .nstudio-quote-commerce-card.is-weight {
      border-color: #d2ddd7;
      background: #f3f7f5;
    }

    .nstudio-quote-commerce-card.is-neutral {
      border-color: #d6ddd9;
      background: #f7f9f8;
    }

    .nstudio-quote-commerce-title {
      margin-bottom: 8px;
      font-size: 13px;
      font-weight: 700;
      line-height: 1.4;
    }

    .is-hand-dye .nstudio-quote-commerce-title {
      color: #80562f;
    }

    .is-print .nstudio-quote-commerce-title {
      color: #3e6488;
    }

    .is-weight .nstudio-quote-commerce-title {
      color: #4d665a;
    }

    .is-neutral .nstudio-quote-commerce-title {
      color: #46564f;
    }

    .nstudio-quote-commerce-row {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 12px;
      margin-top: 5px;
    }

    .nstudio-quote-commerce-label {
      flex: 0 0 auto;
      color: #6d7772;
      font-size: 11px;
    }

    .nstudio-quote-commerce-value {
      min-width: 0;
      color: #29312e;
      font-size: 14px;
      font-weight: 700;
      line-height: 1.45;
      text-align: right;
      overflow-wrap: anywhere;
    }

    .nstudio-quote-commerce-tax {
      color: #66706b;
      font-size: 11px;
      font-weight: 400;
      white-space: nowrap;
    }

    .nstudio-quote-options {
      display: flex;
      align-items: flex-start;
      gap: 8px;
      margin-top: 10px;
      padding: 10px 0 0;
      border-top: 1px dashed #d9cdbd;
      color: #594a3c;
      font-size: 12px;
      line-height: 1.45;
    }

    .nstudio-quote-options-title {
      flex: 0 0 auto;
      padding: 7px 10px;
      border: 1px solid #bba88f;
      border-radius: 6px;
      background: #8b7257;
      color: #fffaf3;
      font-size: 12px;
      font-weight: 700;
      white-space: nowrap;
    }

    .nstudio-quote-options-list {
      min-width: 0;
      display: flex;
      flex: 1 1 auto;
      flex-wrap: wrap;
      gap: 7px;
    }

    .nstudio-quote-option-card {
      min-width: 0;
      display: flex;
      align-items: baseline;
      flex-wrap: wrap;
      gap: 3px 10px;
      padding: 7px 10px;
      border: 1px solid #d8c8b4;
      border-radius: 6px;
      background: #f5ede2;
    }

    .nstudio-quote-option-name {
      min-width: 0;
      color: #6f5843;
      font-weight: 700;
      overflow-wrap: anywhere;
    }

    .nstudio-quote-option-price {
      flex: 0 0 auto;
      color: #4e3f32;
      font-weight: 700;
      white-space: nowrap;
    }

    .nstudio-quote-option-note {
      flex: 0 0 100%;
      margin: 0;
      color: #7a6a5b;
      font-size: 12px;
      line-height: 1.4;
    }

    @media (max-width: 640px) {
      .nstudio-quote-options {
        flex-wrap: wrap;
      }

      .nstudio-quote-options-list {
        flex-basis: 100%;
      }
    }

    .nstudio-quote-commerce-note {
      grid-column: 1 / -1;
      margin: 0;
      color: #6d7772;
      font-size: 11px;
      line-height: 1.65;
    }

    .nstudio-quote-actions button,
    #nstudioAddProject {
      appearance: none;
      border: 1px solid #bfc7d1;
      border-radius: 6px;
      background: #fff;
      padding: 8px 12px;
      color: #334155;
      cursor: pointer;
      font: inherit;
    }

    .nstudio-quote-actions button:hover {
      border-color: #8795a7;
      background: #f2f4f7;
    }

    .nstudio-quote-actions button:disabled {
      opacity: .45;
      cursor: default;
    }

    #nstudioAddProject {
      width: 100%;
      min-height: 64px;
      margin: 0;
      padding: 14px 18px;
      border-color: #304b6a;
      background: #304b6a;
      color: #fff;
      box-shadow: 0 5px 14px rgba(42, 61, 84, .16);
      font-weight: 700;
      align-self: stretch;
    }

    #nstudioAddProject:hover {
      border-color: #223a56;
      background: #223a56;
    }

    #nstudioAddProject:disabled {
      opacity: .55;
      cursor: default;
    }

    #nstudioQuoteMessage {
      min-height: 1.4em;
      margin-top: 8px;
      color: #66706b;
      font-size: 12px;
    }

    #nstudioPostSubmitPanel {
      width: min(100%, 620px);
      margin: 12px auto 0;
      padding-top: 10px;
      border-top: 1px solid #d9dedb;
      color: #303834;
      font-size: 14px;
      line-height: 1.7;
    }

    #nstudioPostSubmitPanel[hidden] {
      display: none !important;
    }

    #nstudioPostSubmitPanel p {
      margin: 0 0 6px;
    }

    .nstudio-post-submit-links {
      display: flex;
      flex-wrap: wrap;
      gap: 4px 14px;
      margin-top: 2px;
    }

    .nstudio-post-submit-links button {
      appearance: none;
      border: 0;
      background: transparent;
      padding: 2px 0;
      color: #294f73;
      font: inherit;
      font-weight: 600;
      text-decoration: underline;
      text-underline-offset: 2px;
      cursor: pointer;
    }

    .nstudio-post-submit-links button:hover {
      text-decoration-thickness: 2px;
    }

    #nstudioSubmissionChoice {
      width: min(92vw, 520px);
      border: 1px solid #cbd3cf;
      border-radius: 8px;
      padding: 18px;
      background: #fff;
      color: #26312c;
      box-shadow: 0 18px 50px rgba(0,0,0,.18);
    }

    #nstudioSubmissionChoice::backdrop {
      background: rgba(0,0,0,.26);
    }

    #nstudioSubmissionChoice p {
      margin: 0 0 16px;
      font-size: 15px;
      line-height: 1.75;
    }

    .nstudio-submission-choice-actions {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 9px;
    }

    .nstudio-submission-choice-actions button {
      appearance: none;
      min-width: 124px;
      border: 1px solid transparent;
      border-radius: 6px;
      padding: 9px 14px;
      font: inherit;
      font-size: 14px;
      font-weight: 700;
      cursor: pointer;
    }

    .nstudio-submission-choice-actions [data-submission-choice="revision"] {
      border-color: #315f8c;
      background: #fff;
      color: #315f8c;
    }

    .nstudio-submission-choice-actions [data-submission-choice="addition"] {
      border-color: #3f7258;
      background: #fff;
      color: #3f7258;
    }

    .nstudio-submission-choice-actions [data-submission-choice="cancel"] {
      margin-left: 14px;
      border-color: #555;
      background: #fff;
      color: #555;
      font-size: 14px;
      font-weight: 700;
    }

    .nstudio-submission-choice-actions [data-submission-choice="revision"]:hover {
      background: #f3f7fb;
    }

    .nstudio-submission-choice-actions [data-submission-choice="addition"]:hover {
      background: #f3f8f5;
    }

    .nstudio-submission-choice-actions [data-submission-choice="cancel"]:hover {
      background: #f5f5f5;
    }

    #nstudioRecoveryPanel {
      margin-top: 14px;
      padding: 14px 16px;
      border: 1px solid #d6b66f;
      border-radius: 8px;
      background: #fffaf0;
      color: #493f2f;
    }

    #nstudioRecoveryPanel[hidden] {
      display: none !important;
    }

    #nstudioRecoveryPanel .nstudio-recovery-title {
      margin: 0 0 7px;
      font-size: 14px;
      font-weight: 700;
    }

    #nstudioRecoveryPanel .nstudio-recovery-help {
      margin: 0 0 10px;
      font-size: 12px;
      line-height: 1.7;
    }

    #nstudioRecoveryText {
      max-height: 220px;
      margin: 0 0 10px;
      padding: 10px;
      overflow: auto;
      border: 1px solid #e1d5bb;
      border-radius: 6px;
      background: #fff;
      white-space: pre-wrap;
      overflow-wrap: anywhere;
      font: 12px/1.65 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    }

    #nstudioRecoveryCopy {
      appearance: none;
      border: 1px solid #9e895e;
      border-radius: 6px;
      background: #fff;
      padding: 8px 13px;
      color: #493f2f;
      cursor: pointer;
      font: inherit;
      font-size: 12px;
      font-weight: 700;
    }

/* NUNO内部送信用。Forminatorのフィールド自体は残し、行だけ非表示にする。
   textareaをdisabled/type=hiddenへ変えないので、従来どおりForminator送信値として利用できる。 */
    .onformbox form.forminator-custom-form .forminator-row:has(#textarea-1),
    .onformbox form.forminator-custom-form .forminator-row:has(#textarea-3),
    .onformbox form.forminator-custom-form .forminator-row:has([name="text-4"]) {
      display: none !important;
    }

    /* 件名(text-1)は値をJS/Forminatorで利用するためDOMに残し、表示だけ行ごと隠す。 */
    .onformbox form.forminator-custom-form .forminator-row:has(#text-1),
    .onformbox form.forminator-custom-form .forminator-row:has(.your-subject),
    .onformbox form.forminator-custom-form .forminator-row:has([name="text-1"]) {
      display: none !important;
    }

    /* Forminator本体のsubmitはJSからだけ押す。フォームIDには依存しない。
   JSでNUNO見積フォームと判定したform配下の純正submitをすべて隠し、proxyだけをユーザーに見せる。 */
    .onformbox form.forminator-custom-form button.forminator-button-submit,
    .onformbox form.forminator-custom-form [data-nstudio-real-submit="1"] {
      display: none !important;
    }

    /*
     * NUNO見積フォームの見た目はForminatorのフォームID / Appearance設定に依存させない。
     * Forminatorは入力・バリデーション・送信エンジンとして利用し、見た目は親ページ側で固定する。
     */
    .onformbox {
      width: 100% !important;
      max-width: 940px !important;
      margin: 42px auto 0 !important;
      padding: 28px 28px 30px !important;
      border: 1px solid #d7e0db !important;
      border-radius: 16px !important;
      background: #f2f5f3 !important;
      box-shadow: 0 8px 26px rgba(42,65,56,.07) !important;
      box-sizing: border-box !important;
    }

    .onformbox form.forminator-custom-form {
      --nstudio-form-accent: #304b6a;
      --nstudio-form-accent-dark: #223a56;
      --nstudio-form-text: #303b49;
      --nstudio-form-muted: #687383;
      --nstudio-form-border: #cfd6df;
      --nstudio-form-border-focus: #304b6a;
      --nstudio-form-bg: #fff;
      color: var(--nstudio-form-text) !important;
      font-family: inherit !important;
    }

    .onformbox form.forminator-custom-form .forminator-row:not([hidden]) {
      margin-bottom: 12px !important;
      padding: 15px 16px !important;
      border: 1px solid #e0e6e2 !important;
      border-radius: 10px !important;
      background: rgba(255,255,255,.82) !important;
      box-sizing: border-box !important;
    }

    .onformbox form.forminator-custom-form .forminator-field {
      color: var(--nstudio-form-text) !important;
      font-family: inherit !important;
    }

    .onformbox form.forminator-custom-form .forminator-label {
      display: block !important;
      margin: 0 0 7px !important;
      color: var(--nstudio-form-text) !important;
      font-family: inherit !important;
      font-size: 15px !important;
      font-weight: 700 !important;
      line-height: 1.55 !important;
    }

    .onformbox form.forminator-custom-form .forminator-description,
    .onformbox form.forminator-custom-form .forminator-field--helper,
    .onformbox form.forminator-custom-form .forminator-checkbox-label,
    .onformbox form.forminator-custom-form .forminator-radio-label {
      color: var(--nstudio-form-muted) !important;
      font-family: inherit !important;
      font-size: 14px !important;
      line-height: 1.65 !important;
    }

    .onformbox form.forminator-custom-form input.forminator-input,
    .onformbox form.forminator-custom-form textarea.forminator-textarea,
    .onformbox form.forminator-custom-form select.forminator-select--field {
      max-width: 100% !important;
      min-height: 46px !important;
      margin: 0 !important;
      padding: 10px 12px !important;
      border: 1px solid var(--nstudio-form-border) !important;
      border-radius: 6px !important;
      outline: 0 !important;
      background: var(--nstudio-form-bg) !important;
      box-shadow: none !important;
      color: var(--nstudio-form-text) !important;
      font-family: inherit !important;
      font-size: 15px !important;
      font-weight: 400 !important;
      line-height: 1.5 !important;
      box-sizing: border-box !important;
    }

    .onformbox form.forminator-custom-form textarea.forminator-textarea {
      min-height: 130px !important;
      resize: vertical !important;
    }

    .onformbox form.forminator-custom-form input.forminator-input::placeholder,
    .onformbox form.forminator-custom-form textarea.forminator-textarea::placeholder {
      color: #7b8796 !important;
      opacity: 1 !important;
    }

    .onformbox form.forminator-custom-form input.forminator-input:focus,
    .onformbox form.forminator-custom-form textarea.forminator-textarea:focus,
    .onformbox form.forminator-custom-form select.forminator-select--field:focus {
      border-color: var(--nstudio-form-border-focus) !important;
      box-shadow: 0 0 0 3px rgba(48, 75, 106, .12) !important;
    }

    .onformbox form.forminator-custom-form .select2-container {
      width: 100% !important;
      font-family: inherit !important;
    }

    .onformbox form.forminator-custom-form .select2-container .select2-selection--single,
    .onformbox form.forminator-custom-form .select2-container .select2-selection--multiple {
      min-height: 46px !important;
      border: 1px solid var(--nstudio-form-border) !important;
      border-radius: 6px !important;
      background: var(--nstudio-form-bg) !important;
      box-shadow: none !important;
      color: var(--nstudio-form-text) !important;
      box-sizing: border-box !important;
    }

    .onformbox form.forminator-custom-form .select2-container .select2-selection--single .select2-selection__rendered {
      min-height: 44px !important;
      padding: 10px 38px 10px 12px !important;
      color: var(--nstudio-form-text) !important;
      font-size: 15px !important;
      line-height: 24px !important;
    }

    .onformbox form.forminator-custom-form .select2-container .select2-selection--single .select2-selection__arrow {
      top: 0 !important;
      bottom: 0 !important;
      right: 12px !important;
      width: 20px !important;
      height: 20px !important;
      margin: auto 0 !important;
      transform: none !important;
    }

    .onformbox form.forminator-custom-form .select2-container--focus .select2-selection--single,
    .onformbox form.forminator-custom-form .select2-container--focus .select2-selection--multiple,
    .onformbox form.forminator-custom-form .select2-container--open .select2-selection--single,
    .onformbox form.forminator-custom-form .select2-container--open .select2-selection--multiple {
      border-color: var(--nstudio-form-border-focus) !important;
      box-shadow: 0 0 0 3px rgba(48, 75, 106, .12) !important;
    }

    .onformbox form.forminator-custom-form .forminator-checkbox-box,
    .onformbox form.forminator-custom-form .forminator-radio-bullet {
      border-color: #b7c0ca !important;
      background: #fff !important;
    }

    .onformbox form.forminator-custom-form .forminator-checkbox input:checked + .forminator-checkbox-box,
    .onformbox form.forminator-custom-form .forminator-radio input:checked + .forminator-radio-bullet {
      border-color: var(--nstudio-form-accent) !important;
      background-color: var(--nstudio-form-accent) !important;
    }

    .onformbox form.forminator-custom-form .forminator-error-message {
      margin-top: 6px !important;
      color: #b42318 !important;
      font-family: inherit !important;
      font-size: 13px !important;
      font-weight: 600 !important;
      line-height: 1.5 !important;
    }

    .onformbox form.forminator-custom-form .forminator-has_error input.forminator-input,
    .onformbox form.forminator-custom-form .forminator-has_error textarea.forminator-textarea,
    .onformbox form.forminator-custom-form .forminator-has_error .select2-selection {
      border-color: #b42318 !important;
    }

    .onformbox form.forminator-custom-form .forminator-file-upload {
      display: flex !important;
      flex-wrap: wrap !important;
      align-items: center !important;
      gap: 10px !important;
      min-width: 0 !important;
    }

    .onformbox form.forminator-custom-form .forminator-button-upload {
      display: inline-flex !important;
    }

    .onformbox form.forminator-custom-form .forminator-button-upload,
    .onformbox form.forminator-custom-form .forminator-button-delete {
      align-items: center !important;
      justify-content: center !important;
      flex: 0 0 auto !important;
      width: auto !important;
      min-width: max-content !important;
      padding: 10px 16px !important;
      border: 1px solid #b8c1cc !important;
      border-radius: 7px !important;
      background: #f4f6f8 !important;
      color: #304156 !important;
      font-family: inherit !important;
      font-size: 14px !important;
      font-weight: 700 !important;
      line-height: 1.4 !important;
      white-space: nowrap !important;
      word-break: keep-all !important;
    }

    .onformbox form.forminator-custom-form .forminator-button-upload:hover,
    .onformbox form.forminator-custom-form .forminator-button-delete:hover {
      border-color: var(--nstudio-form-accent) !important;
      background: #e9eef4 !important;
    }

    /* Forminator single-file upload: on narrow screens the upload button +
       filename text + delete button can exceed the viewport. Stack only this
       control on mobile; do not hide overflow or alter the NUNO iframe. */
    @media (max-width: 720px) {
      .onformbox form.forminator-custom-form .forminator-row:not([hidden]) {
        padding: 13px 11px !important;
      }

      .onformbox form.forminator-custom-form .forminator-file-upload {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 8px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
      }

      .onformbox form.forminator-custom-form .forminator-file-upload > span {
        flex: 1 1 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
        box-sizing: border-box !important;
      }

      .onformbox form.forminator-custom-form .forminator-file-upload .forminator-button-upload,
      .onformbox form.forminator-custom-form .forminator-file-upload .forminator-button-delete {
        flex: 0 0 auto !important;
        max-width: 100% !important;
      }

      .onformbox form.forminator-custom-form .forminator-file-upload input[type="file"] {
        max-width: 100% !important;
      }
    }

    /* NUNO送信準備ボタンの見た目。Forminator純正submitにはこの表示ルールを当てない。 */
    .onformbox form.forminator-custom-form .nstudio-forminator-submit-proxy {
      display: block !important;
      width: 100% !important;
      max-width: 420px !important;
      min-height: 52px !important;
      margin: 0 auto !important;
      padding: 12px 28px !important;
      color: #fff !important;
      background: var(--nstudio-form-accent) !important;
      border: 1px solid var(--nstudio-form-accent) !important;
      border-radius: 7px !important;
      box-shadow: 0 4px 12px rgba(48, 75, 106, .12) !important;
      font-family: inherit !important;
      font-size: 16px !important;
      font-weight: 700 !important;
      cursor: pointer;
      transition: background .15s ease, box-shadow .15s ease, transform .1s ease;
    }

    .onformbox form.forminator-custom-form .nstudio-forminator-submit-proxy:hover:not(:disabled) {
      background: var(--nstudio-form-accent-dark) !important;
      border-color: var(--nstudio-form-accent-dark) !important;
      box-shadow: 0 5px 14px rgba(48, 75, 106, .18) !important;
    }

    .onformbox form.forminator-custom-form .nstudio-forminator-submit-proxy:disabled {
      opacity: .55 !important;
      cursor: wait !important;
    }

    .nstudio-form-section {
      margin: 0;
      padding: 0;
      border: 0;
      background: transparent;
      box-shadow: none;
    }

    .nstudio-form-head {
      margin: 0 0 22px;
      padding: 0 2px 18px;
      border-bottom: 1px solid #d7e0db;
      text-align: left;
    }

    .nstudio-form-head h2 {
      margin: 0 0 7px;
      color: #263b34;
      font-size: 26px;
    }

    .nstudio-form-head p {
      margin: 0;
      color: #5e6e67;
      font-size: 14px;
    }

    @media (max-width: 720px) {
      .onformbox {
        margin-top: 30px !important;
        padding: 20px 12px 22px !important;
        border-radius: 12px !important;
      }
    }


    /* IONO親ページ既存Bottom Bar。中身だけNUNO STUDIOの公開出力へ同期する。 */
    .bottom-box.ui {
      display: flex !important;
    }

    .bottom-box .bttextbox {
      min-width: 0;
    }

    .default-box {
      margin-bottom: 30px;
      max-width: 400px;
      margin: 0 auto;
    }

    .selectform {
      display:none;
    }

    @media (max-width: 720px) {
      #nstudioQuoteProjects {
        margin-top: 22px;
        margin-bottom: 28px;
        padding: 12px;
      }

      #nstudioQuoteGrid {
        gap: 28px;
      }

      #nstudioQuoteList {
        gap: 20px;
      }

      .nstudio-quote-item {
        grid-template-columns: 88px minmax(0, 1fr);
        grid-template-areas:
          "title title"
          "thumb body"
          "actions actions"
          "commerce commerce";
        gap: 11px;
        padding: 11px;
      }

      .nstudio-quote-item-head {
        align-items: flex-start;
      }

      .nstudio-quote-item-name {
        font-size: 15px;
      }

      .nstudio-quote-badges {
        flex: 0 0 auto;
      }

      .nstudio-quote-thumb {
        width: 88px;
        min-height: 88px;
      }

      .nstudio-quote-actions {
        flex-direction: row;
      }

      .nstudio-quote-actions button {
        flex: 1;
      }

      .nstudio-quote-commerce {
        grid-template-columns: 1fr;
        gap: 8px;
      }

      .nstudio-quote-commerce-note {
        grid-column: 1;
      }
    }
/* Polyester-only existing presentation. */
#polyOnstudioWrap .nstudio-quote-commerce-note { display:none !important; }

/* Semantic UI Accordion replacement: behavior only, existing markup/classes remain unchanged. */
    .ui.accordion > .title {
      position: relative;
      cursor: pointer;
      padding-right: 28px;
      user-select: none;
    }

    .ui.accordion > .title::after {
      content: "";
      position: absolute;
      top: 50%;
      right: 8px;
      width: 8px;
      height: 8px;
      border-right: 2px solid currentColor;
      border-bottom: 2px solid currentColor;
      transform: translateY(-70%) rotate(45deg);
      transform-origin: center;
      transition: transform .18s ease;
      pointer-events: none;
    }

    .ui.accordion > .title.active::after {
      transform: translateY(-25%) rotate(225deg);
    }

    /* Semantic's dropdown icon is no longer needed. */
    .ui.accordion > .title > .dropdown.icon {
      display: none !important;
    }

    .ui.accordion > .content {
      overflow: hidden;
    }

    .ui.accordion > .content:not(.active) {
      display: none;
    }

    @media (prefers-reduced-motion: reduce) {
      .ui.accordion > .title::after {
        transition: none;
      }
    }

.bguibox {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 220px;
	gap: 20px;
	align-items: start;
	width: 100%;
  margin-top:30px;
}

.bguibox > div:first-child {
	min-width: 0;
}

.bguibox .npreviewbox {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border: 1px solid #d8dfdb;
	border-radius: 8px;
	background: #f7f9f8;
}

.bguibox .npreview {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

@media (max-width: 700px) {
	.bguibox {
		grid-template-columns: 1fr;
	}

	.bguibox .npreviewbox {
		max-width: 320px;
		margin: 0 auto;
	}
}
/* Preview zoom; previously injected at runtime by onstudio-common.inc.php. */
.nstudio-parent-preview-zoom{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.82);cursor:zoom-out}
.nstudio-parent-preview-zoom[hidden]{display:none}
.nstudio-parent-preview-zoom img{display:block;max-width:min(94vw,1400px);max-height:92vh;width:auto;height:auto;object-fit:contain;box-shadow:0 10px 42px rgba(0,0,0,.35)}
.npreview{cursor:zoom-in}

