/* Shared colors. Geometry and typography are section-owned. */
.design-casa {
    --dc-color-ink: #3d3d3d;
    --dc-color-muted: #616161;
    --dc-color-surface: #ebebe9;
}

/* PC canvas scales with its containing viewport (1440px Figma reference). */
.has-design-casa {
    margin:0;
    /* Match the contact section behind the floating catalog clearance. */
    background:#ebebe9;
}
.has-design-casa .header {
    transform:translateY(-110%);
    visibility:hidden;
    pointer-events:none;
    transition:transform .3s ease,visibility .3s;
}
.has-design-casa.casa-scrolled .header {
    transform:translateY(0);
    visibility:visible;
    pointer-events:auto;
}
.has-design-casa .design-casa {
    /* White Figma canvas; individual sections own their background colors. */
    background:#fff;
    container-type:inline-size;
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
    color:var(--dc-color-ink);
    font-family:'Zen Kaku Gothic New',sans-serif;
    font-weight:500;
    line-height:1.5;
    overflow:hidden;
}
.design-casa *, .design-casa *::before, .design-casa *::after {
    box-sizing:border-box;
}
.design-casa p,.design-casa h1,.design-casa h2,.design-casa h3,.design-casa figure {
    margin:0;
    padding:0;
}
.design-casa img {
    display:block;
    border:0;
}
.design-casa button {
    appearance:none;
    border:0;
    padding:0;
    background:none;
    cursor:pointer;
    font:inherit;
    color:inherit;
}
.design-casa button:focus-visible,.design-casa a:focus-visible {
    outline:2px solid #164773;
    outline-offset:4px;
}
.design-casa .dc-top-gallery [data-casa-rail] {
    top:1.736111cqw;
}
.design-casa .dc-features {
    margin-left:.972222cqw;
}
.design-casa .dc-gallery {
    width:100%;
    align-items:center;
    translate:0;
    background:linear-gradient(var(--dc-color-surface),white 93.926%);
}
.has-design-casa .floating-btns {
    display:none!important;
}
.design-casa [data-casa-rail] {
    display:flex;
    justify-content:flex-start;
    width:max-content;
    left:0;
    translate:0;
    will-change:transform;
}
.design-casa [data-casa-rail] > * {
    flex-shrink:0;
}
.design-casa [data-casa-thumbs] button {
    position:relative;
}
.design-casa [data-casa-thumbs] button[aria-pressed=true]::after {
    content:'';
    position:absolute;
    bottom:-.8cqw;
    left:0;
    width:100%;
    border-bottom:1px solid var(--dc-color-ink);
}
.design-casa .dc-case-salon__click-hint,.design-casa .dc-case-outdoor__click-hint,.design-casa .dc-cases__salon-click-art,.design-casa .dc-cases__outdoor-click-art {
    display:none;
}
.design-casa .dc-dots {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.486111cqw;
    width:100%;
    height:.555556cqw;
    margin-top:2.430556cqw;
}
.design-casa .dc-dots button {
    width:.555556cqw;
    height:.555556cqw;
    border-radius:50%;
    background:var(--dc-color-surface);
}
.design-casa .dc-dots button[aria-pressed=true] {
    background:var(--dc-color-ink);
}
.design-casa .dc-contact {
    background:var(--dc-color-surface);
    padding:6.736111cqw 0 6.805556cqw;
    height:auto;
    min-height:118.472222cqw;
}
.design-casa .dc-contact-card {
    width:78.472222cqw;
    margin-left:10.486111cqw;
    background:#fff;
    padding:5.555556cqw 0;
    scroll-margin-top:100px;
}
.design-casa .dc-contact-heading {
    position:relative;
    width:45.76344cqw;
    height:11.666789cqw;
    margin:auto;
    border-bottom:1px solid #c1c8cc;
    text-align:center;
}
.design-casa .dc-contact-heading span {
    position:absolute;
    top:.6cqw;
    left:9cqw;
    rotate:-5deg;
    font:400 3.611111cqw/1.3 'Corinthia',cursive;
    letter-spacing:.180556cqw;
}
.design-casa .dc-contact-heading h2 {
    padding-top:2.298611cqw;
    font:700 5cqw/1.3 'EB Garamond',serif;
    letter-spacing:.25cqw;
}
.design-casa .dc-contact-heading p {
    width:15.972222cqw;
    margin:-.4cqw auto 0;
    font:400 .972222cqw/1.5 'Zen Old Mincho',serif;
    letter-spacing:.194444cqw;
    background:var(--dc-color-ink);
    color:white;
}
.design-casa .dc-contact-description {
    margin:4.236111cqw auto;
    width:56.944444cqw;
    text-align:center;
    font:400 1.111111cqw/1.6 'Zen Kaku Gothic New',sans-serif;
    letter-spacing:.111111cqw;
    color:var(--dc-color-muted);
}
.design-casa .dc-form {
    width:56.944444cqw;
    margin:auto;
    color:var(--dc-color-muted);
    font:400 .972222cqw/2 'Zen Kaku Gothic New',sans-serif;
}
.design-casa .dc-field {
    position:relative;
    display:block;
    margin-bottom:1.388889cqw;
}
.design-casa .dc-field input,.design-casa .dc-field textarea {
    display:block;
    width:100%;
    height:3.888889cqw;
    border:2px solid var(--dc-color-muted);
    border-radius:.347222cqw;
    padding:.8cqw 6cqw .8cqw 1.736111cqw;
    background:#fff;
    color:var(--dc-color-ink);
    font:inherit;
}
.design-casa .dc-field textarea {
    height:14.583333cqw;
    padding:1.25cqw 1.388889cqw;
    resize:vertical;
}
.design-casa .dc-field input::placeholder,.design-casa .dc-field textarea::placeholder {
    color:#7b7b7b;
    opacity:1;
}
.design-casa .dc-required {
    position:absolute;
    top:.694444cqw;
    right:1.041667cqw;
    width:3.472222cqw;
    height:2.5cqw;
    display:grid;
    place-items:center;
    border-radius:.347222cqw;
    background:#da0000;
    color:#fff;
    pointer-events:none;
}
.design-casa .dc-privacy {
    margin-top:4.236111cqw;
    text-align:center;
    font-size:1.111111cqw;
    line-height:1.6;
    letter-spacing:.111111cqw;
}
.design-casa .dc-privacy a {
    color:inherit;
    text-decoration:underline;
}
.design-casa .dc-submit {
    position:relative;
    text-align:center;
    margin:2.083333cqw auto 0;
    width:17.433681cqw;
}
.design-casa .dc-submit::after {
    content:'';
    position:absolute;
    top:1.3cqw;
    right:1.1cqw;
    border-top:.27cqw solid transparent;
    border-bottom:.27cqw solid transparent;
    border-left:.4cqw solid #fff;
    pointer-events:none;
}
.design-casa input.wpcf7-submit {
    width:100%;
    height:3.055556cqw;
    padding:0;
    border:0;
    border-radius:0;
    background:var(--dc-color-ink);
    color:white;
    font:500 .972222cqw/2 'Zen Kaku Gothic New',sans-serif;
    letter-spacing:.097222cqw;
    cursor:pointer;
}
.design-casa .wpcf7-spinner {
    position:absolute;
}
.design-casa .dc-sr-only {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
}
.design-casa .wpcf7-not-valid-tip {
    font-size:1cqw;
}
@media (prefers-reduced-motion:reduce) {
    .has-design-casa .header {
        transition:none;
    }
}
/* Shared form minimum sizes;
mobile composition follows in design-casa-sp.css. */
@media(max-width:767px) {
    .design-casa .dc-form,.design-casa .dc-contact-description {
        width:90%;
        font-size:12px;
    }
    .design-casa .dc-field input {
        min-height:44px;
        font-size:12px;
        padding:10px 60px 10px 12px;
    }
    .design-casa .dc-field textarea {
        min-height:140px;
        font-size:12px;
    }
    .design-casa .dc-required {
        top:8px;
        right:8px;
        width:40px;
        height:28px;
        font-size:12px;
    }
    .design-casa .dc-privacy {
        font-size:12px;
    }
    .design-casa .dc-submit {
        width:200px;
    }
    .design-casa input.wpcf7-submit {
        height:44px;
        font-size:13px;
    }
}
/* Manual galleries retain the original composition. */
.design-casa .dc-manual-gallery {
    cursor:grab;
    touch-action:pan-y;
    user-select:none;
}
.design-casa .dc-manual-gallery.is-dragging {
    cursor:grabbing;
}
.design-casa .dc-manual-gallery img {
    -webkit-user-drag:none;
}
@media (min-width:768px) {
    /* Intro line extends into Architects (1440px Figma: x144, y138, h569). */
    .design-casa .dc-intro::before {
        content:"";
        position:absolute;
        z-index:1;
        top:9.5833333cqw;
        left:10cqw;
        width:1px;
        height:39.5138889cqw;
        background:var(--dc-color-ink);
        pointer-events:none;
    }
    .design-casa .dc-hero {
        width:100%;
        /* Fill the visible viewport while preserving the photo aspect ratio. */
        height:100vh;
        height:100dvh;
        overflow:hidden;
    }
    .design-casa .dc-hero .dc-hero__background {
        top:0;
        left:0;
        width:100%;
        height:100%;
    }
    .design-casa .dc-hero .dc-hero__base-image,
    .design-casa .dc-hero .dc-hero__photo,
    .design-casa .dc-hero .dc-hero__evening-photo {
        inset:0;
        width:100%;
        height:100%;
        object-fit:cover;
        object-position:center;
    }
    .design-casa .dc-hero .dc-hero__copyright {
        top:auto;
        bottom:1.0416667cqw;
    }
}
/* Decorative catalog layers must not intercept gallery controls. */
.design-casa .dc-catalog__book-back, .design-casa .dc-catalog__book-front {
    pointer-events:none;
}
.design-casa .dc-gallery > [data-casa-rail] {
    align-self:flex-start;
}

/* カタログ請求フローティング：PCは右下、SPは画面下いっぱいに表示 */
.dc-floating-catalog {
    /* Scale the complete PC composition from the 1440px Figma canvas. */
    --dc-floating-unit:max(1px, .0694444444vw);
    position:fixed;
    z-index:100;
    right:0;
    bottom:0;
    width:calc(340 * var(--dc-floating-unit));
    height:calc(92 * var(--dc-floating-unit));
    color:#fff;
    isolation:isolate;
}
.dc-floating-catalog::before {
    content:"";
    position:absolute;
    inset:calc(51 * var(--dc-floating-unit)) 0 0;
    background:rgba(14,45,79,.9);
    z-index:-1;
}
.dc-floating-catalog__label {
    position:absolute;
    left:calc(24 * var(--dc-floating-unit));
    top:calc(61 * var(--dc-floating-unit));
    font:500 calc(14 * var(--dc-floating-unit))/1.5 "Zen Old Mincho",serif;
    letter-spacing:calc(1.4 * var(--dc-floating-unit));
    white-space:nowrap;
}
.dc-floating-catalog__books { pointer-events:none; }
.dc-floating-catalog__books img {
    position:absolute;
    max-width:none;
    height:auto;
}
.dc-floating-catalog__back {
    left:calc(210.2 * var(--dc-floating-unit));
    top:calc(-8.6 * var(--dc-floating-unit));
    width:calc(143.195 * var(--dc-floating-unit));
    transform:rotate(18.14deg);
}
.dc-floating-catalog__middle {
    left:calc(208.16 * var(--dc-floating-unit));
    top:calc(-11.38 * var(--dc-floating-unit));
    width:calc(143.195 * var(--dc-floating-unit));
    transform:rotate(18.14deg);
}
.dc-floating-catalog__front {
    left:calc(194.34 * var(--dc-floating-unit));
    top:calc(13.41 * var(--dc-floating-unit));
    width:calc(108.961 * var(--dc-floating-unit));
    transform:skewX(.15deg);
}
.dc-floating-catalog:focus-visible { outline:calc(3 * var(--dc-floating-unit)) solid #af9570; outline-offset:calc(-3 * var(--dc-floating-unit)); }
.has-design-casa { padding-bottom:max(41px, 2.8472222vw); }
@media (max-width:767px) {
    .dc-floating-catalog {
        container-type:inline-size;
        width:100%;
        height:calc(16vw + env(safe-area-inset-bottom, 0px));
    }
    .dc-floating-catalog::before { inset:0; }
    .dc-floating-catalog__label {
        left:5.07cqw;
        top:5.07cqw;
        font-size:4cqw;
        line-height:1.4;
        letter-spacing:.4cqw;
    }
    .dc-floating-catalog__back {
        left:61.39cqw;
        top:-10.83cqw;
        width:38.185cqw;
    }
    .dc-floating-catalog__middle {
        left:60.84cqw;
        top:-11.59cqw;
        width:38.185cqw;
    }
    .dc-floating-catalog__front {
        left:55.467cqw;
        top:-5.333cqw;
        width:29.155cqw;
        transform:none;
    }
    .has-design-casa { padding-bottom:calc(16vw + env(safe-area-inset-bottom, 0px)); }
}

/* Mobile FV geometry is defined in design-casa-sp.css (375 × 384 Figma canvas). */

/* FV photo rail: use one consistent credit, anchored to each photo edge. */
.design-casa .dc-top-gallery__copyright {
    position: absolute;
    right: 0.5cqw;
    bottom: 0.4cqw;
    z-index: 1;
    color: #fff;
    font: 700 0.6cqw/1 Arial, sans-serif;
    letter-spacing: 0;
    white-space: nowrap;
    pointer-events: none;
}
@media (max-width: 767px) {
    .design-casa .dc-sp-rail-top .dc-sp-rail-photo { overflow: hidden; }
    /* Embedded credits are outside this crop; the same credit is shown above it. */
    .design-casa .dc-sp-rail-top .dc-sp-rail-photo-trim {
        transform: scale(1.16);
        transform-origin: center top;
    }
    .design-casa .dc-sp-rail-top .dc-sp-copyright {
        right: 1.333333cqw;
        bottom: 1.066667cqw;
        font: 700 1.6cqw/1 Arial, sans-serif;
        letter-spacing: 0;
        white-space: nowrap;
    }
}
